13.3.1 反向传播算法推导
如下图所示为一个神经网络的结构图,由于本文主要探讨激活函数在反向传播过程中的作用,因此不会带入数值进行计算,而是以两个权重的更新为案例进行公式的推导,分别为如何通过反向传播算法更新和的值。
13.3.1.1 前向传播
首先,需要知道的是,整个网络中,以及所有的权重值均为定值,权重值为网络初始化时按照一定概率分布随机赋值的。则内部结构如下:
其中,表示加权后的值,表示加权计算后经过激活函数得到的值,表示标签的值。具体计算方法如下:
同理得到:
因此,我们可以知道对于输出层的误差可以按照如下公式计算出来:
13.3.1.2 反向传播
1.更新
首先我们计算如何更新权重。我们使用求解,参数对最终计算误差的影响程度。
则:
则,根据链式法则,我们可以将推导成:
如下图所示,展示了这个推导过程,其中橙色的箭头为推导路径。
接下来具体计算每个导数的值:由前向传播过程中误差值可以知道:
则:
由
则可以发现:
的值与其激活函数形式有关,我们这里暂且不做讨论,保留通用形式。
由
可以推导:
因此,对总误差的影响如下:
上述公式中,均为定值,因此成为影响该结果为唯一变量,由于该结果与激活函数有关,不同激活函数求导结果不同。
令η为学习率,则更新方法为:
2.更新
如下图所示,权重,将影响到和。因此通过计算出权重对总损失的影响。
由于:
则,根据导数加法原则有:
此时便可拆解为从两条路径独立的求解该权重对不同输出值得误差影响,最后将两个值加在一起即得到该权重对整体误差的影响。
首先解:
则,分别求解之
;
为变量,受激活函数控制;
由于,则:
;
为变量,其形式受激活函数控制;
由于,则:
。
故而:
同理得到:
因此:所以,的调整值为:
13.3.1.3 讨论
如上面公式所示,从输出层向前逐渐传导的方式进行权重参数的学习修正,但是随着神经网络层数越深,需要对激活函数求导的次数也就越多,因此在学习过程中,激活函数起到十分重要的作用。如果激活函数接近于0,则会导致也接近于0,通过公式:得知,基本不会产生多大的更新。这需要进一步对激活函数的性质进行探讨。