每天五分钟深度学习:前向算损失,反向算梯度,梯度下降更新参数
本文重点
在前面的课程中,我们已经学习了神经网络的前向传播算法、神经网络的反向传播算法、以及梯度更新算法,总结来说神经网络的训练就是前向传播计算损失,反向传播计算梯度,然后梯度下降完成参数更新。本文将所有过程统一起来,来看一下整个神经网络的训练过程。
神经网络的正向传播和反向传播(单样本)
我们还是以两层的神经网络来举例,也就是说只有一个隐藏层,和一个输出层的神经网络。
神经网络的正向传播的算法的过程是这样的:
总的来说就是:先计算z[1],然后计算a[1],然后计算z[2],然后计算a[2],最后计算神经网络的损失L。
神经网络的反向传播:先算出dz[2],此时可以计算dw[2]和db[2],然后计算da[1],dz[1],进而计算dw[1]和db[1]。注意:这里我们并没有计算da,而是将其包含在了dz里面了