1 S型神经元
修改权重和偏置的微小改动只会引起输出的微小变化
x1 --+
| +-------+
+------->+ |
| |
x2 ---------->+ +------> output
| |
+------->+ |
x3 --+ +-------+
S型神经元有多个输入,x1,x2,... , xi ∈[0,1],
这里 称为S型函数定义为
代价函数
表示网络中的权重的集合
是所有的偏置
是训练输入的个数
是表示当输入为
时输出的向量
我们想要找到的是的最小值,
的梯度为
定义的梯度为偏导数的向量,
,用
表示梯度向量
假设:
这里 是一个很小的正数(称为学习速率)
(10)带入(9)
, 由于
,这保证了
2
1 ---
/ \
\ /
--- ---
/ \ 3
\ / +---------->
--- ---
--- / \
/ \ +----------> \ /
--- \ / ---
/ \ ---
\ / +----------->
--- ---
--- / \
/ \ +----------> \ /
--- \ b23/ ---
/ \ ---
\ / +---------->
---
---
/ \
\ /
---
表示从
层的
个神经元到
层的
个神经元的连接上的权重
表示在
层第
个神经元的偏置
表示
层第
个神经元的激活值
公式向量化
中间量 ,为
层神经元的带权输入
我们定义 层的第
个神经元的误差为
二次代价函数,单独的训练样本的二次代价函数
Hadamard 乘积,
按元素乘积
输出层误差方程
表示代价随着
输出激活值的变化而变化的速度,
如果 不太依赖一个特定的输出神经元
,那么
就会很小,这也是我们想要的效果
刻画了在
处激活函数
变化的速度
具体事例: 代价函数为 二次函数
所以
使用下一层的误差 来表示当前层的误差
其中 是
层权重矩阵
的转置
代价函数关于网络中任意偏置的改变率
简记为:
代价函数关于任何一个权重的改变率
简化:
其中 是输入给权重
的神经元的激活值,
是输出自权重
的神经元的误差
in out
--- ---
/ \ w / \
\ / ----- \ /
--- ---
总结 四个反向传播公式
1. 证明BP1
误差的定义(29) , 应用链式法制
所以第二项可以写成
,方程变成
2. 证明 BP2
做微分
带入(42)
得
3. 证明BP3
由公式(29)
函数为b, 两边(46)对 z 求微分得
(29)应用链式法则
4. 证明BP4
(46),对 求偏微分
,对于的
其
网友评论