深度学习笔记(一):神经网络的反向传播算法

前向传播神经网络的目标函数

对于一系列的训练样本 X,期望的输入为 t = ( t 1 , . . . , t c ) t=(t_1,...,t_c) t=(t1,...,tc),网络的实际输出 z = ( z 1 , . . . , z c ) z=(z_1,...,z_c) z=(z1,...,zc),定义目标函数为
J ( w ) = 1 2 ∣ ∣ t − z ∣ ∣ 2 = 1 2 ∑ k = 1 c ( t k − z k ) 2 J(w)=\frac{1}{2}||t-z||^2=\frac{1}{2}\sum^c_{k=1}(t_k-z_k)^2 J(w)=21tz2=21k=1c(tkzk)2
即各输出误差的平方的累加,由此产生的问题是:如何计算目标函数的最小值?
常用的方法为 梯度下降法

梯度下降

在这里插入图片描述
如图表示的是参数 w w w 与目标函数 J ( w ) J(w) J(w) 的关系图,红色部分表示目标函数有着较高的取值,需要使目标函数的值尽量的低,也就是深蓝色的部分, w 1 , w 2 w_1,w_2 w1,w2 表示 w w w
向量的两个维度。

梯度下降 的步骤是:先确定一个初始点,将 w w w 按照梯度下降的方向进行调整,就会使得 J ( w ) J(w) J(w) 往更低的方向进行变化,算法的结束将是在 w w w 下降到无法继续下降为止。
w ( m + 1 ) = w ( m ) + Δ w ( m ) = w ( m ) − η ∂ J ∂ w w(m+1)=w(m)+\Delta w(m)=w(m)-\eta\frac{\partial J}{\partial w} w(m+1)=w(m)+Δw(m)=w(m)ηwJ

输出层权重改变量

在这里插入图片描述
由链式求导法则,目标函数 J ( w ) J(w) J(w) w k j w_{kj} wkj(对应隐藏层与输出层之间的权重) 求偏导为
在这里插入图片描述
在这里插入图片描述
其中 f ′ ( n e t k ) f'(net_k) f(netk) 对应输出层激活函数的导数,
如 Sigmoid 函数, z k = f ( n e t k ) = S i g m o i d ( n e t k ) z_k=f(net_k)=Sigmoid(net_k) zk=f(netk)=Sigmoid(netk)

隐藏层权重改变量

在这里插入图片描述
由目标函数 J J J w j i w_{ji} wji(输入层与隐藏层之间的权重)求导可得
在这里插入图片描述
其中 n e t j = ∑ m = 1 d W j m X m net_j = \sum^d_{m=1}W_{jm}X_m netj=m=1dWjmXm 表示隐藏层单元的总输入
在这里插入图片描述
由此计算隐藏层权重改变量,其中
在这里插入图片描述

在这里插入图片描述

误差传播迭代公式

在这里插入图片描述
在这里插入图片描述

输出层和隐藏层的误差传播公式可统一为:
  • 权重增量 = -1 × \times × 学习步长 × \times × 目标函数对权重的偏导数
  • 目标函数对权重的偏导数 = -1 × \times × 残差 × \times × 当前层的输入
  • 残差 = 当前层激励函数的导数 × \times × 上层反传来的误差
  • 上层反传来的误差 = 上层残差的加权和

隐藏层误差反向传播示意

在这里插入图片描述

反向传播算法举例

在这里插入图片描述
假定输入样本的自变量为 (0.35, 0.9),因变量为 0.5,初始的权重函数如上图所示

AP = 0.1; AQ = 0.4; PO = 0.3
BP = 0.8; BQ = 0.6; QO = 0.9

三个神经元都使用 Sigmoid 函数作为激活函数 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1,X 等于输入的权重和。
将 P 上的函数记为 p,Q 上的函数记为 q,O 上的函数记为 o,例如
P ( A , B ) = 1 1 + e − ( A P ∗ A + B P ∗ B ) = 1 1 + e − ( 0.1 ∗ 0.35 + 0.9 ∗ 0.8 ) = 0.68 P(A, B)=\frac{1}{1+e^{-(AP*A+BP*B)}}=\frac{1}{1+e^{-(0.1*0.35+0.9*0.8)}}=0.68 P(A,B)=1+e(APA+BPB)1=1+e(0.10.35+0.90.8)1=0.68
同理计算:
P ( A , B ) = 0.68 ; Q ( A , B ) = 0.6637 ; O ( P , Q ) = 0.69 \mathrm{P}(\mathrm{A}, \mathrm{B})=0.68 ; \quad \mathrm{Q}(\mathrm{A}, \mathrm{B})=0.6637 ; \quad \mathrm{O}(\mathrm{P}, \mathrm{Q})=0.69 P(A,B)=0.68;Q(A,B)=0.6637;O(P,Q)=0.69
计算目标损失函数 ξ = 1 2 e 2 = 1 2 ( 0.69 − 0.5 ) 2 = 0.01805 \xi=\frac{1}{2} e^{2}=\frac{1}{2}(0.69-0.5)^{2}=0.01805 ξ=21e2=21(0.690.5)2=0.01805,我们希望通过调节 PO,QO 使其变小。
使用梯度下降法
∂ ξ ∂ P O = ∂ ξ ∂ e ∗ ∂ e ∂ o ∗ ∂ o ∂ P O = { e } ∗ { O ∗ ( 1 − O ) } ∗ { P } \frac{\partial \xi}{\partial \mathrm{PO}}=\frac{\partial \xi}{\partial \mathrm{e}} * \frac{\partial \mathrm{e}}{\partial \mathrm{o}} * \frac{\partial \mathrm{o}}{\partial \mathrm{P} \mathrm{O}}=\{\mathrm{e}\} *\{O *(1-O)\} *\{\mathrm{P}\} POξ=eξoePOo={e}{O(1O)}{P}
= ( 0.69 − 0.5 ) ∗ 0.69 ∗ ( 1 − 0.69 ) ∗ 0.68 = 0.02763 =(0.69-0.5) * 0.69 *(1-0.69) * 0.68=0.02763 =(0.690.5)0.69(10.69)0.68=0.02763
∂ ξ ∂ Q O = e ∗ f ( x ) ( 1 − f ( x ) ) ∗ Q = ( 0.69 − 0.5 ) ∗ 0.69 ∗ ( 1 − 0.69 ) ∗ 0.6673 = 0.02711 \frac{\partial \xi}{\partial Q O}=e * f(x)(1-f(x)) * Q=(0.69-0.5) * 0.69 *(1-0.69) * 0.6673=0.02711 QOξ=ef(x)(1f(x))Q=(0.690.5)0.69(10.69)0.6673=0.02711
更新隐藏层与输出层权重 P O PO PO Q O QO QO
P O ∗ = P O − ∂ ξ ∂ P O = 0.2723 PO^*=PO-\frac{\partial\xi}{\partial PO}=0.2723 PO=POPOξ=0.2723
Q O ∗ = Q O − ∂ ξ ∂ Q O = 0.8730 QO^*=QO-\frac{\partial\xi}{\partial QO}=0.8730 QO=QOQOξ=0.8730
∂ ξ ∂ A P = ∂ ξ ∂ e ∗ ∂ e ∂ o ∗ ∂ o ∂ p ∗ ∂ p A P = { e } ∗ { O ( 1 − O ) } ∗ { P O ∗ } ∗ { ( 1 − P ) ∗ P } ∗ { A } \frac{\partial \xi}{\partial \mathrm{AP}}=\frac{\partial \xi}{\partial \mathrm{e}} * \frac{\partial \mathrm{e}}{\partial \mathrm{o}} * \frac{\partial \mathrm{o}}{\partial \mathrm{p}} * \frac{\partial \mathrm{p}}{\mathrm{AP}}=\{\mathrm{e}\} *\{\mathrm{O}(1-O)\} *\left\{\mathrm{PO}^{*}\right\} *\{(1-\mathrm{P}) * \mathrm{P}\} *\{\mathrm{A}\} APξ=eξoepoAPp={e}{O(1O)}{PO}{(1P)P}{A}
更新输入层与隐藏层权重 A P , B P , A Q , B Q AP,BP,AQ,BQ APBPAQBQ
A P ∗ = A P − ∂ ξ ∂ A P = 0.09916 AP^*=AP-\frac{\partial\xi}{\partial AP}=0.09916 AP=APAPξ=0.09916
B P ∗ = B P − ∂ ξ ∂ B P = 0.7978 BP^*=BP-\frac{\partial\xi}{\partial BP}=0.7978 BP=BPBPξ=0.7978
A Q ∗ = A Q − ∂ ξ ∂ A Q = 0.3972 AQ^*=AQ-\frac{\partial\xi}{\partial AQ}=0.3972 AQ=AQAQξ=0.3972
B Q ∗ = B Q − ∂ ξ ∂ B Q = 0.5928 BQ^*=BQ-\frac{\partial\xi}{\partial BQ}=0.5928 BQ=BQBQξ=0.5928
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值