2020-01-02 新年从反向传播4个公式推导开始

1 S型神经元

修改权重和偏置的微小改动只会引起输出的微小变化

x1 --+
     |        +-------+
     +------->+       |
              |       |
x2 ---------->+       +------> output
              |       |
     +------->+       |
x3 --+        +-------+

S型神经元有多个输入,x1,x2,... , xi ∈[0,1],\sigma= \omega \cdot x+b
这里 \sigma称为S型函数定义为
\sigma(z)\equiv\frac{1}{1+e^{-z}}

代价函数
C(\omega,b)\equiv\frac{1}{2n}\sum\limits_{x}\|y(x)-a\|^2 \tag{6}

\omega 表示网络中的权重的集合

b是所有的偏置

n是训练输入的个数

a是表示当输入为x时输出的向量

我们想要找到的是C的最小值, C的梯度为

\Delta C \approx \frac{\partial C}{\partial v_1}\Delta v_1+ \frac{\partial C}{\partial v_2} \Delta v_2 \tag{7}

定义C的梯度为偏导数的向量,(\frac{\Delta C}{\Delta v_1},\frac{\Delta C}{\Delta v_2})^T,用 \triangledown C表示梯度向量
\triangledown C \equiv (\frac{\Delta C}{\Delta v_1},\frac{\Delta C}{\Delta v_2})^T \tag {8}

\Delta C \equiv \triangledown C \cdot \Delta v \tag {9}

假设:
\Delta v = -\eta \triangledown C \tag{10}

这里 \eta 是一个很小的正数(称为学习速率)

(10)带入(9)
\Delta C \approx -\eta \triangledown C \cdot \triangledown C = -\eta \|\triangledown C\|^2, 由于 \|\triangledown C\|\geq0,这保证了\Delta C \leq 0

v \to {v}' = v - \eta\triangledown C \tag{11}

                    2

 1                  ---
                   /   \
                   \   /
 ---                ---
/   \                                   3
\   / +---------->
 ---                                    ---
                    ---                /   \
                   /   \  +----------> \   /
 ---               \   /                ---
/   \               ---
\   / +----------->
 ---                                     ---
                    ---                 /   \
                   /    \  +----------> \   /
 ---               \ b23/                ---
/   \               ---
\   / +---------->
 ---
                    ---
                   /   \
                   \   /
                    ---

\omega_{jk}^l表示从 (l-1)^{th}层的k^{th}个神经元到l^{th}层的j^{th}个神经元的连接上的权重

b^l_j 表示在l^{th}层第j^{th}个神经元的偏置

a^l_j 表示l^{th}层第j^{th}个神经元的激活值

a_j^l = \sigma (\sum_k {\omega_{jk}^l a_k^{l-1}}+ b_j^l) \tag{23}

公式向量化
a^l = \sigma ({\omega^l a^{l-1}}+ b^l) \tag{25}

中间量 z^l ,为 l 层神经元的带权输入
z^l = {\omega^l a^{l-1}}+ b^l \tag{26}
z_j^l = \sum_k {\omega_{jk}^l a_k^{l-1}}+ b_j^l

我们定义 l层的第 j^{th} 个神经元的误差为
\delta_j^l \equiv \frac{\partial C}{ \partial z_j^l} \tag{29}

二次代价函数,单独的训练样本x的二次代价函数
C = \frac{1}{2}\|y-a^L\|^2 = \frac{1}{2}\sum_j{(y_j - a_j^L)}^2 \tag{6}

Hadamard 乘积, s \odot t
按元素乘积

\begin{bmatrix} 1 \\ 2 \end{bmatrix}\odot \begin{bmatrix} 3 \\ 4 \end{bmatrix} = \begin{bmatrix} 1*3 \\ 2*4 \end{bmatrix} = \begin{bmatrix} 3 \\ 8 \end{bmatrix} \tag{28}

输出层误差方程 \delta^L
\delta_j^L = \frac{\partial C}{\partial a_j^L}{\sigma}'(z_j^L) \tag{BP1}

\partial C/ \partial a_j^L 表示代价随着 j^{th} 输出激活值的变化而变化的速度,
如果C 不太依赖一个特定的输出神经元 j,那么 \delta_j^L就会很小,这也是我们想要的效果

{\delta}'(z_j^L) 刻画了在 z_j^L处激活函数\sigma变化的速度

具体事例: 代价函数为 二次函数
C=\frac{1}{2}\sum_j (y_j-a_j)^2 所以 \partial C/ \partial a_j^L = (a_j - y_i)

\sigma^L = \triangledown_a C \odot {\sigma}'(z^L) =(a^L - y) \odot {\sigma}'(z^L) \tag{BP1a}

使用下一层的误差 \delta^{l+1} 来表示当前层的误差\delta^l

\delta^l = ((\omega^{l+1})^T \delta^{l+1}) \odot {\sigma}'(z^l) \tag{BP2}

其中 (\omega^{l+1})^T(l+1)^{th}层权重矩阵\omega^{l+1} 的转置

代价函数关于网络中任意偏置的改变率
\frac{\partial C}{\partial b_j^l} = \delta_j^l \tag{BP3}

简记为:
\frac{\partial C}{\partial b} = \delta \tag{31}
代价函数关于任何一个权重的改变率
\frac{\partial C}{\partial \omega_{jk}^l} = a_k^{l-1}\delta_j^l \tag{BP4}

简化:
\frac{\partial C}{\partial \omega} = a_{in}\sigma_{out}

其中 a_in 是输入给权重\omega的神经元的激活值,\sigma_{out}是输出自权重\omega的神经元的误差

 in             out
 ---           ---
/   \    w    /   \
\   /  -----  \   /
 ---           ---

总结 四个反向传播公式

\delta_j^l \equiv \frac{\partial C}{ \partial z_j^l} \tag{29}

\delta_j^L = \frac{\partial C}{\partial a_j^L}{\sigma}'(z_j^L) = \triangledown_a C \odot {\sigma}'(z^L) \tag{BP1}
\delta^l = ((\omega^{l+1})^T \delta^{l+1}) \odot {\sigma}'(z^l) \tag{BP2}
\frac{\partial C}{\partial b_j^l} = \delta_j^l \tag{BP3}
\frac{\partial C}{\partial \omega_{jk}^l} = a_k^{l-1}\delta_j^l \tag{BP4}

1. 证明BP1

误差的定义(29) , 应用链式法制
\sigma_j^L = \frac{\partial C}{\partial z_j^L} = \sum_k \frac{\partial C}{\partial a_k^L} \frac{\partial a_k^L}{\partial z_j^L} \tag{37}
\delta_j^L = \frac{\partial C}{\partial a_j^L}\frac{\partial a_j^L}{\partial z_j^L} \tag{38}
a_j^L = \sigma(z_j^L) 所以第二项可以写成 {\sigma}'(z_j^L),方程变成
\delta_j^L = \frac{\partial C}{\partial a_j^L} \frac{\partial a_j^L}{\partial z_j^L} \tag{38}

2. 证明 BP2

\delta_j^l = \frac{\partial C}{\partial z_j^l} = \sum_k \frac{\partial C}{\partial z_k^{l+1}} \frac{z_k^{l+1}}{\partial z_j^l} = \sum_k\frac{\partial z_k^{z_k^{l+1}}}{\partial z_j^l} \delta_k^{l+1} \tag{42}

z_k^{l+1} = \sum_j \omega_{kj}^{l+1}a_j^l + b_k^{l+1} = \sum_j \omega_{kj}^{l+1}\sigma(z_j^l)+b_k^{l+1} \tag{43}
做微分
\frac{\partial z_k^{l+1}}{\partial z_j^l} = \omega_{kj}^{l+1}{\sigma}'(z_j^l) \tag{44}
带入(42)

\delta_j^l = \sigma_k \omega_{kj}^{l+1}\delta_k^{l+1}{\sigma}'(z_j^l) \tag{45}

3. 证明BP3

由公式(29)
\delta_j^l \equiv \frac{\partial C}{ \partial z_j^l} \tag{29}
z_j^l = \sum_k \omega_{kj}^l a_k^{l-1} + b_j^l \tag{46}
函数为b, 两边(46)对 z 求微分得
\frac{\partial b_j^l}{\partial z_j^l} = 1 \tag{47}
(29)应用链式法则
\delta_j^l = \frac{\partial C}{ \partial z_j^l} = \frac{\partial C}{\partial b_j^l}\frac{\partial b_j^l}{\partial z_j^l} = \frac{\partial C}{\partial b_j^l} \tag{48}

4. 证明BP4

(46),对 \omega_k 求偏微分
,对于i \not = k\omega\partial z_j^l / \partial \omega_{ij}^l = 0
\frac{\partial z_{j}^l}{\partial \omega_{jk}^l} = a_k^{l-1}
\frac{\partial C}{\partial \omega_{jk}^l} = \frac{\partial C}{\partial z_j^l} \frac{\partial z_j^l}{\omega_{jk}^l} = \delta_j^l a_{k}^{l-1}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容