反向传播

本文详细解释了反向传播中的权重更新过程,包括输入向量处理、误差计算、误差传递到各层并调整权重矩阵的方法。通过Sigmoid激活函数实例,展示如何单独调整第一行权重及整个权重矩阵,以最小化误差并优化网络性能。
摘要由CSDN通过智能技术生成

输入

  • 输入一般是n维列向量 I = [ i 1 i 2 i 3 . . i n ] I=\begin{bmatrix} i_1\\i_2\\i_3\\..\\i_n \end{bmatrix} I=i1i2i3..in
  • 目标是已给出的m维列向量,记为: T = [ t 1 t 2 t 3 . . t m ] T=\begin{bmatrix} t_1\\t_2\\t_3\\..\\t_m \end{bmatrix} T=t1t2t3..tm

权重

  • 权重矩阵 W m n = [ w 11 w 12 w 13 . . . w 1 n w 21 w 22 w 23 . . . w 2 n . . . . w m 1 w m 2 w m 3 . . . w m n ] W_{mn}=\begin{bmatrix} w_{11} & w_{12} & w_{13}&...&w_{1n} \\ w_{21} & w_{22} & w_{23}&...&w_{2n} \\ ....\\ w_{m1} & w_{m2} & w_{m3}&...&w_{mn} \end{bmatrix} Wmn=w11w21....wm1w12w22wm2w13w23wm3.........w1nw2nwmn

输出

输出是矩阵R经过激活函数处理过的数据,下面以 S i g m o i d Sigmoid Sigmoid函数作为激活函数为例说明,输出矩阵 O O O如何从 R R R计算的到,如下

O = [ o 1 o 2 o 3 . . o m ] = [ w 11 w 12 w 13 . . . w 1 n w 21 w 22 w 23 . . . w 2 n . . . . w m 1 w m 2 w m 3 . . . w m n ] ⋅ [ i 1 i 2 i 3 . . i n ] O = \begin{bmatrix} o_1\\o_2\\o_3\\..\\o_m \end{bmatrix} =\begin{bmatrix} w_{11} & w_{12} & w_{13}&...&w_{1n} \\ w_{21} & w_{22} & w_{23}&...&w_{2n} \\ ....\\ w_{m1} & w_{m2} & w_{m3}&...&w_{mn} \end{bmatrix} \centerdot\begin{bmatrix} i_1\\i_2\\i_3\\..\\i_n \end{bmatrix} O=o1o2o3..om=w11w21....wm1w12w22wm2w13w23wm3.........w1nw2nwmni1i2i3..in

误差

误差既目标 T T T和输出 O O O的差值,如下

S e = T − O = [ e 1 e 2 e 3 . . e m ] Se = T - O=\begin{bmatrix} e_1\\e_2\\e_3\\..\\e_m \end{bmatrix} Se=TO=e1e2e3..em

误差传递

O 3 = ∑ x = 1 n w 3 x i x O_3 = \displaystyle\sum_{x=1}^n w_{3x}i_x O3=x=1nw3xix

所以可对节点 a 3 a_3 a3的误差 e 3 e_3 e3按照权重比例向第2层进行划分

P S e 3 = [ i 1 i 2 i 3 . . i n ] ⋅ e 3 PSe_3=\begin{bmatrix} i_1\\i_2\\i_3\\..\\i_n \end{bmatrix} \centerdot e_3 PSe3=i1i2i3..ine3

那么可知第3层所有节点的误差 S e Se Se,传递到第2层的结果

P S e = ∑ x = 1 m P E x PSe = \displaystyle\sum_{x=1}^m PEx PSe=x=1mPEx

上式可化为:

P S e = W m n ⊤ ⋅ S e PSe = W_{mn}\top\centerdot Se PSe=WmnSe

误差衡量

使用误差衡量的目的是为使误差最小化,方便转化为数学问题,对函数求极值。举个例子使用误差的平方作为误差函数

E = ∑ i = 1 m ( e i ) 2 = ∑ i = 1 m ( T − O ) 2 E = \displaystyle\sum_{i=1}^m(e_i)^2 =\displaystyle\sum_{i=1}^m\Big( T−O\Big)^2 E=i=1m(ei)2=i=1m(TO)2

则误差取得极小值的时候即为误差函数的导函数值为0时

权重如何调整

假设现有一个双层网络输入数据为 I I I,输出数据为 O O O,目标结果为 T T T,衡量函数为 E E E,权重矩阵为 W W W,学习率为 L r Lr Lr

单独调整权重 w 11 w_{11} w11

调整 W W W中的元素 w 11 w_{11} w11,又因为受 w 11 w_{11} w11 响应的数据只有 o 1 o_1 o1,原误差函数中的其余元素可以看做常数,暂不考虑,所以可得如下函数对变量 w 11 w_{11} w11求偏导,

G = ( t 1 − o 1 ) 2 G = \big( t_1−o_1\big)^2 G=(t1o1)2

由于 o 1 o_1 o1也是自变量 w 11 w_{11} w11的因变量,二者关系如下,并且加号后面表达式为常数:

o 1 ( w ) = ∑ a = 1 n w 1 a i a o 1 ( w ) = w 11 i 1 + ∑ a = 2 n w 1 a i a o_1(w)=\displaystyle\sum_{a=1}^nw_{1a} i_a\\ o_1(w) =w_{11}i_1+\displaystyle\sum_{a=2}^nw_{1a} i_a o1(w)=a=1nw1aiao1(w)=w11i1+a=2nw1aia

该式又可写为:

f ( w ) = w 11 i 1                    ( 1 ) f(w)=w_{11} i_1~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ (1) f(w)=w11i1                  (1)

由于 G G G t 1 t_1 t1为常数

G o ′ = − 2 ( t 1 − o 1 ) G_o' = -2(t_1-o_1) Go=2(t1o1)

G f ′ = − 2 ( t 1 − o 1 ) o 1 ′ = − 2 ( t 1 − o 1 ) i 1 G_f' = -2(t_1-o_1)o_1'=-2(t_1-o_1)i_1 Gf=2(t1o1)o1=2(t1o1)i1

G w 11 ′ = − 2 ( t 1 − w 11 i 1 + ∑ a = 2 n w 1 a i a ) i 1 G'_{w_{11}}= -2(t_1-w_{11}i_1+\displaystyle\sum_{a=2}^nw_{1a} i_a)i_1 Gw11=2(t1w11i1+a=2nw1aia)i1

调整第一行矩阵 w 11 w_{11} w11 w 1 n w_{1n} w1n

w 11 w_{11} w11调整函数已得出,接下来考虑调整 w 12 w_{12} w12,同样因为受 w 12 w_{12} w12影响的节点只有输出 O O O中的 o 1 o_1 o1,不同的是
f ( w 12 ) = w 12 i 2 f(w_{12})=w_{12} i_2 f(w12)=w12i2 对应的导数是 i 2 i_2 i2
所以 w 12 w_{12} w12 调整函数是

G w 12 ′ = − 2 ( t 2 − w 12 i 2 + ∑ a ! = 2 n w 1 a i a ) i 2 G'_{w_{12}}= -2(t_2-w_{12}i_2+\displaystyle\sum_{a!=2}^nw_{1a} i_a)i_2 Gw12=2(t2w12i2+a!=2nw1aia)i2

调整权重矩阵

所求矩阵 C e Ce Ce第一行是

C e 1 = g 1 ∗ [ w 11 w 12 . . . w 1 n ] Ce_1=g_1* \begin{bmatrix}w_{11}&w_{12}&...&w_{1n}& \end{bmatrix} Ce1=g1[w11w12...w1n]

所以可得 所求矩阵 Ce第二行是

C e 2 = g 2 ∗ [ w 21 w 22 . . . w 2 n ] ⋅ [ i 1 i 2 . . . i n ] Ce_2=g_2* \begin{bmatrix}w_{21}&w_{22}&...&w_{2n}& \end{bmatrix}\centerdot\begin{bmatrix}i_{1}\\i_{2}\\...\\i_{n}\end{bmatrix} Ce2=g2[w21w22...w2n]i1i2...in

同理第m行

C e m = g m ∗ [ w m 1 w m 2 . . . w m n ] ⋅ [ i 1 i 2 . . . i n ] Ce_m=g_m* \begin{bmatrix}w_{m1}&w_{m2}&...&w_{mn}&\end{bmatrix}\centerdot\begin{bmatrix}i_{1}\\i_{2}\\...\\i_{n}\end{bmatrix} Cem=gm[wm1wm2...wmn]i1i2...in

Z = [ g 1 g 2 . . . g m ] Z = \begin{bmatrix}g_1\\g_2\\...\\g_m\end{bmatrix} Z=g1g2...gm

可得所求矩阵 C e = Z ⋅ I Ce = Z\centerdot I Ce=ZI

如果最终 W = W − C e W = W - Ce W=WCe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值