卷积神经网络的反向传播算法(笔记)
目录
- 全连接神将网络的反响传播算法
- 前向传播
- 反向传播
全连接神经网络的反向传播算法
前向传播
列举论文中的公式,并与上图所示流程一一对应:
代价函数:
EN=12∑n=1N∑k=1c(tnk−ynk)2
为简化分析,只考虑第n
个样本对应的代价函数:
En=12∑k=1c(tnk−ynk)2
公式中符号的意义:
N: 代表训练样本的个数c: 代表训练样本所对应的类标签的个数E: 代表代价函数tnk: 代表第n个样本对应的类标签的第k维ynk: 代表第n个样本对应的类标签的第k维的预测值
第l
层的输出计算公式:
xl=f(ul),其中,ul=Wlx+bl
计算到最后一层L
层时,也就计算出了神经网络的输出y
,至此,前向传播完成。
反向传播
首先计算代价函数关于偏移量的导数:
∂E∂b=∂E∂u∂u∂b=δ
这里的b
表示偏移量,u
是:
u=Wx+b
文中提到了一个灵敏度的问题,引用zouxy09的解释:
灵敏度的意思就是我们的基b变化多少,误差会变化多少,也就是误差对基的变化率,也就是导数了
根据u
的表达式,可以计算出
由于是反向传播算法,所以我们先计算输出神经元对应的
δL=f′(uL)⊙(yn−tn)
再往回计算时(反向),每一层神经元对应的
δl=(Wl+1)Tδl+1⊙f′(ul)
最后由计算出的
∂E∂Wl=xl−1(δl)T
给一个更新率
ΔWl=−η∂E∂Wl
使用该值对权值矩阵进行更新。
(Wl)′=W+ΔWl
至此,一轮的反向传播结束。在计算的过程中会发现,图示中的计算步骤与文字说明的计算过程稍有不同。在计算