一、链式法则
- 链式法则用于求符合函数的导数,广泛应用于神经网络中的反向传播算法。
- 链式法则:dydx=dydu∗dudx\frac{dy}{dx}=\frac{dy}{du}*\frac{du}{dx}dxdy=dudy∗dxdu
- 链式法则在神经网络中的应用:

∂E∂wjk1=∂E∂Ok1∂Ok1∂wjk1=∂E∂Ok2∂Ok2∂Ok1∂Ok1∂wjk1 \frac{\partial E}{\partial w_{jk}^{1}}=\frac{\partial E}{\partial O_{k}^{1}}\frac{\partial O_{k}^{1}}{\partial w_{jk}^{1}}=\frac{\partial E}{\partial O_{k}^{2}}\frac{\partial O_{k}^{2}}{\partial O_{k}^{1}}\frac{\partial O_{k}^{1}}{\partial w_{jk}^{1}} ∂wjk1∂E=∂Ok1∂E∂wjk1∂Ok1=∂Ok2∂E∂Ok1∂Ok2∂wjk1∂Ok1
二、反向传播原理引入(引自知乎)
- 以e=(a+b)∗(b+1)e=(a+b)*(b+1)e=(a+b)∗(b+1)的偏导为例,其复合关系图如下

当a=2,b=1时,e的梯度我们可以用偏导关系来表示

- 利用链式法则进行推导:
- ∂e∂a=∂e∂c∂c∂a=1∗2\frac{\partial e}{\partial a}=\frac{\partial e}{\partial c}\frac{\partial c}{\partial a}=1*2∂a∂e=∂c∂e∂a∂c=1∗2
- ∂e∂b=∂e∂c∂c∂b+∂e∂d∂d∂b=2∗1+3∗1=5\frac{\partial e}{\partial b}=\frac{\partial e}{\partial c}\frac{\partial c}{\partial b}+\frac{\partial e}{\partial d}\frac{\partial d}{\partial b}=2*1+3*1=5∂b∂e=∂c∂e∂b∂c+∂d∂e∂b∂d=2∗1+3∗1=5
- 规律总结:
- 求偏导,可以从当前点,一直累乘到叶子结点,并求和。
三、举个栗子
1、题目描述
- 现在有如下网络层

- 第一层:输入层;第二层:隐含层;第三层:输出层。
- 激活函数为:sigmoid函数
- 赋值后如下

- 目标:给定输入数据i1,i2(0.05,0.10),使输出尽可能与原始输出o1,o2(0.01和0.99)接近。
2、前向传播求解
- 输入层——>隐含层
- 计算神经元h1的输入加权求和:neth1=w1∗i1+w2∗i2+b1=0.05∗0.15+0.10∗0.25=0.3775net_{h1}=w_1*i_1+w_2*i_2+b_1=0.05*0.15+0.10*0.25=0.3775neth1=w1∗i1+w2∗i2+b1=0.05∗0.15+0.10∗0.25=0.3775
- 计算神经元h1的输出o1:
outh1=11+e−neth1=11+e−0.3775=0.593269992out_{h1}=\frac{1}{1+e^{-net_{h1}}}=\frac{1}{1+e^{-0.3775}}=0.593269992outh1=1+e

本文详细介绍了神经网络中的链式法则及其在反向传播算法中的应用。通过实例展示了如何利用链式法则计算复合函数的偏导数,并在神经网络中进行误差反向传播,以更新权重。内容涵盖了从输入层到输出层的前向传播和反向传播过程,以及权重更新的计算步骤。
最低0.47元/天 解锁文章
2519

被折叠的 条评论
为什么被折叠?



