Hello Deep Learning: Automatic differentiation, autograd - Bert Hubert's writings
a day ago
- 本章介绍了一个5层神经网络,能够以近乎完美的准确率识别所有10个手写数字,使用了109184个权重和202个偏置。
- 学习过程涉及梯度下降,计算所有参数相对于误差的导数,并以较小的学习率调整参数。
- 自动微分(autograd)是一种核心技术,通过构建操作的有向无环图(DAG),然后按拓扑顺序遍历以传播梯度,从而高效地计算导数。
- 该实现依赖于运算符重载和引用计数(例如在C++中)来惰性构建DAG,从而支持训练的前向和反向传播。
- 关键组件包括使用Eigen进行快速矩阵运算的Tensor类,以及用于前向传播的'assureValue'方法和用于反向传播的'doGrad'方法。