笔试准备(一)——前向传播算法(Forward propagation)与反向传播算法(Back propagation)

it2022-05-06  5

研一的时候上过深度学习的课,但是很久没复习忘得差不多了,趁着找工作准备笔试面试的机会把之前模糊的概念再复习一下。

假设初始的三层网络结构如图,其中激活函数为sigmod函数,损失函数C为均方误差。

首先进行前向传播:

同理,下一级:

最终的损失为:

先将链式法则中需要用到的函数列出:

然后根据链式法则,计算:

关于橙色部分的推导为:

则更新后的weights为:

其中,奇怪的希腊字母是学习率。

同理,可以计算其他所有的weights,这里再举一例:

-------------------------------------------------------------------------------------------

再从头理一遍:

前向传播的意思就是往前计算,即从x经过w到y的过程,y = wx

反向传播的意思就是往后计算,即通过y和y_out的偏差,反向推导出偏导数,来更新w成为w'的过程;

之后神经网络又通过更新了的参数w',计算y'=w'x

再反向,求出w''

……

如此循环往复,就会使得y'''''(很多')'''逐渐接近y_out

这就是BP算法。

-------------------------------

最后一个小点就是学习率(那个奇怪的希腊字母)

它控制的是参数更新的“步长”

图中黑色是要拟合的曲线,假设橙色的步长为0.001,绿色的步长为0.1,步长小的能够更好的拟合曲线,但是训练较慢,步长大的训练快,但是可能会错过最优解。

所以训练中一般是先用大的学习率,一段时间后将学习率逐步变小。

 

 

 

 


最新回复(0)