2020-01-02 新年从反向传播4个公式推导开始
2020-01-02 本文已影响0人
闲后美梦
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),对 求偏微分
,对于的 其