Bootstrap

深度神经网络(DNN)的反向传播算法总结与图解


前言

其实,深度神经网络的反向传播我们只需知道这个算法的理念,即这个算法的目标方程是谁,对目标方程做什么运算,为什么这样做或者这样做的好处是什么?解决了以上三个问题,你也就相当于掌握了反向传播的精髓。


第一个问题

目标方程是损失函数(loss function),根据问题本身会有差异;比如分类问题,我们常用交叉熵(cross entropy)作为损失函数,这样能很好的预测分类结果的分布;如果是回归问题,我们常用mse(误差平方的平均值)作为损失函数,这样能很好的度量预测结果的准确度

第二个问题

反向传播算法的精髓就是就是采用梯度下降(grediant decent)的算法进行模型参数更新梯度下降本质就是用目标方程对模型参数求偏导运算,得到的结果再与学习率(learing rate,通常小于1)相乘,再乘以负1,整个结果加上模型初始化或者前一迭代步骤更新后的模型的参数,我们这样就完成了参数的更新,从模型层面讲,完成了模型训练。当然,对于损失函数的处理,也可采用牛顿法或类牛顿法,但最为常见,应用最广仍旧是梯度下降算法。
反向传播算法图解如下图,

;