[读书笔记]后向传播算法原理
2017-01-12 14:06
267 查看
[读书笔记]后向传播算法原理
k:输入层神经元
j:隐藏层神经元
i:输出层神经元
t,b: 偏置项(并未具体指定t,b是哪一层的偏置项)
以三层网络为例,推导出神经网络后向传播算法的一般规律。
首先,总体误差为:
E=12∑ζ,i(dζi−oζi)2
ζ:训练样本
dζi: 样本ζ在第i个神经元的标准值
oζi: 样本ζ在第i个神经元的预测值
后向传播细节
计算隐藏层-加权和netζj=∑kwkjoζk+bj
计算隐藏层-激励值
oζj=f(netζj)=f(∑kwkjoζk+bj)
计算输出层-加权和
netζi=∑kwjioζj+bi=∑jwji⋅f(∑kwkjoζk+tj)+bi
计算输出层-激励值
oζi=f(netζi)=f(∑jwjioζj+bi)=f(∑jwji⋅f(wkjoζk+tj)+bi)
所有公式代入E
E=12∑ζ,i[dζi−f(∑jwji⋅f(∑kwkjoζk+tj)+bi)]2
计算输出层和隐藏层的权重梯度
计算ΔWji
∂E∂wji=∂E∂oζi⋅∂oζi∂netζi⋅∂netζi∂wji=−∑ζ(dζi−oζi)⋅f′(netζi)⋅oζj=−∑ζδζi⋅oζjΔwji=−η⋅∂E∂wji=η⋅∑ζδζi⋅oζj
where
δζi=(dζi−oζi)⋅f′(netζi)
for output neuron
Δwkj
∂E∂wkj=∂E∂oζj⋅∂oζj∂netζj⋅∂netζj∂wkj=−∑ζ,i(dζi−oζi)⋅f′(netζi)⋅wji⋅f′(netζj)⋅oζk=−∑ζ,iδζi⋅wji⋅f′(netζj)⋅oζk=−∑ζδζj⋅oζkΔwkj=−η⋅∂E∂wkj=η⋅∑ζδζj⋅oζk
where
δζj=f′(netζj)⋅∑iwji⋅δζi
for hidden neuron
一般地,对于一条权边p→q:
Δwpq=η⋅∑ζδq⋅opwnewpq=woldpq+Δwpq
其中,
o为激励值,
δ若于输出层,则为公式7;若于隐藏层,则为公式8.
sigmoid函数求导技巧
oζl=f(netζl)=11+e−netζlf′(netζl)=e−netζl(1+e−netζl)2=oζl⋅(1−oζl)
所以前面公式可以改写为:
for output neuron
δζi=(dζi−oζi)⋅oζi⋅(1−oζi)Δwji=η⋅∑ζ(dζi−oζi)⋅oζi⋅(1−oζi)
for hidden neuron
δζj=oζj⋅(1−oζj)⋅∑iwji⋅δζiΔwkj=η⋅∑ζδζj⋅oζk=η⋅∑ζoζj⋅(1−oζj)⋅∑iwji⋅δζi⋅oζk
后向传播总结
Repeat until termination criterion satisfied1.forward pass
calculate actual output for every layer:o
2.backward pass
wpq(t+1)=wpq(t)+Δwpg
Δwpq=η⋅δq⋅op
δi=(di−oi)⋅oi⋅(1−oi)
δj=oj⋅(1−oj)⋅∑iwji⋅δi
参考: http://sydney.edu.au/engineering/it/courses/comp4302/ann4-6s.pdf/
相关文章推荐
- 反向传播(Backpropagation)算法的数学原理
- 《机器学习:算法原理与编程实践》的读书笔记:SMO部分最难,大部分代码基于Scikit-Learn,决策树其实用处不大
- Adaboost 算法的原理与推导(读书笔记)
- Adaboost 算法的原理与推导(读书笔记)
- 字符全排列算法及原理
- 路由器原理和路由协议、算法详解(3)
- 循环冗余检验 (CRC) 算法原理
- 中文转换为完整拼音算法原理分析
- 中文转换为完整拼音算法原理分析
- 路由器原理和路由协议、算法详解(4)
- MD5摘要算法原理
- 即时战略游戏中寻径(Path-finding)算法的原理及实现技术
- 邮件服务器的原理,算法及实现(二) MIME
- [读书笔记][深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白
- 路由器原理和路由协议、算法详解
- MUSICA(多尺度图像对比度增强)算法的简要原理及VC实现-1[r]
- LZW for GIF 算法原理和实现
- 路由器原理和路由协议、算法详解(5)
- 江恩7周期原理算法
- 中文转换为完整拼音算法原理分析