Coursera机器学习笔记 第5周 第九章 神经网络 相关数学公式证明

神经网络 相关数学公式证明

0. Coursera机器学习神经网络的其他笔记:

  1. Coursera机器学习笔记 第4周 第八章 神经网络:表述(一)
  2. Coursera机器学习笔记 第4周 第八章 神经网络:表述(二)
  3. Coursera机器学习笔记 第5周 第九章 神经网络:学习(一)
  4. Coursera机器学习笔记 第5周 第九章 神经网络:学习(二)

1. 神经网络的回顾

这里写图片描述
我们仍然沿用上图中的神经网络结构。该网络共有四层,输入层有3个神经元,第二、三层均有5个神经元,输出层有4个神经元(偏置单元未画出),所以权重矩阵 Θ(1),Θ(2),Θ(3) Θ ( 1 ) , Θ ( 2 ) , Θ ( 3 ) 的大小分别是 [5×4],[5×6],[4×6] [ 5 × 4 ] , [ 5 × 6 ] , [ 4 × 6 ] 。权重矩阵如下:

Θ(1)=Θ(1)10...Θ(1)50.........Θ(1)13...Θ(1)53Θ(2)=Θ(2)10...Θ(2)50.........Θ(2)15...Θ(2)55Θ(3)=Θ(3)10...Θ(3)40.........Θ(1)15...Θ(1)45 Θ ( 1 ) = [ Θ 10 ( 1 ) . . . Θ 13 ( 1 ) . . . . . . . . . Θ 50 ( 1 ) . . . Θ 53 ( 1 ) ] Θ ( 2 ) = [ Θ 10 ( 2 ) . . . Θ 15 ( 2 ) . . . . . . . . . Θ 50 ( 2 ) . . . Θ 55 ( 2 ) ] Θ ( 3 ) = [ Θ 10 ( 3 ) . . . Θ 15 ( 1 ) . . . . . . . . . Θ 40 ( 3 ) . . . Θ 45 ( 1 ) ]

为了和代价函数的形式统一,我们用 j 和 i 分别表示权重矩阵的行和列。注意:j=1 代表矩阵的第 1 行,i=1 代表矩阵的第 2 列(第 1 列相当于线性回归中的 θ0 θ 0 )。

神经网络的一般化代价函数为:

J(Θ)=1mt=1mk=1K[y(t)k log(hΘ(x(t))k)+(1y(t)k) log(1hΘ(x(t))k)]+λ2ml=1L1i=1slj=1sl+1(Θ(l)j,i)2 J ( Θ ) = − 1 m ∑ t = 1 m ∑ k = 1 K [ y k ( t )   log ⁡ ( h Θ ( x ( t ) ) k ) + ( 1 − y k ( t ) )   log ⁡ ( 1 − h Θ ( x ( t ) ) k ) ] + λ 2 m ∑ l = 1 L − 1 ∑ i = 1 s l ∑ j = 1 s l + 1 ( Θ j , i ( l ) ) 2

我们只用一条数据(x,y),并且忽略正则化,则代价函数(K=4)为:

Cost(x)=k=1KCost(x)kCost(x)k=[yk log(hΘ(x)k)+(1yk) log(1hΘ(x)k)] C o s t ( x ) = ∑ k = 1 K C o s t ( x ) k C o s t ( x ) k = − [ y k   log ⁡ ( h Θ ( x ) k ) + ( 1 − y k )   log ⁡ ( 1 − h Θ ( x ) k ) ]

2. 证明 Cost(x)Θ(3) ∂ C o s t ( x ) ∂ Θ ( 3 )

针对该神经网络,声明一些事实:

  • hΘ(x) h Θ ( x ) 就是 a(4) a ( 4 ) ,即 hΘ(x)=a(4) h Θ ( x ) = a ( 4 )
  • a(4)=g(z(4)) a ( 4 ) = g ( z ( 4 ) ) ,且 a(4)z(4)=a(4)(1a(4)) ∂ a ( 4 ) ∂ z ( 4 ) = a ( 4 ) ( 1 − a ( 4 ) )
  • z(4)j=5i=0Θ(3)jia(3)i z j ( 4 ) = ∑ i = 0 5 Θ j i ( 3 ) a i ( 3 ) ,其中 1j4 1 ⩽ j ⩽ 4
  • j=1 代表矩阵的第 1 行,i=1 代表矩阵的第 2 列(第 1 列相当于线性回归中的 θ0 θ 0

举例:

Cost(x)Θ(3)10=Kk=1Cost(x)kΘ(3)10=k=1KCost(x)kΘ(3)10=Cost(x)1Θ(3)10+0+0+0=Cost(x)1hΘ(x)1×hΘ(x)1z(4)1×z(4)1Θ(3)10=[y11hΘ(x)1+(1y1)11hΘ(x)1]×hΘ(x)1(1hΘ(x)1)×a(3)0=[hΘ(x)1y1]a(3)0=[a(4)1y1]a(3)0 ∂ C o s t ( x ) ∂ Θ 10 ( 3 ) = ∂ ∑ k = 1 K C o s t ( x ) k ∂ Θ 10 ( 3 ) = ∑ k = 1 K ∂ C o s t ( x ) k ∂ Θ 10 ( 3 ) = ∂ C o s t ( x ) 1 ∂ Θ 10 ( 3 ) + 0 + 0 + 0 = ∂ C o s t ( x ) 1 ∂ h Θ ( x ) 1 × ∂ h Θ ( x ) 1 ∂ z 1 ( 4 ) × ∂ z 1 ( 4 ) ∂ Θ 10 ( 3 ) = − [ y 1 1 h Θ ( x ) 1 + ( 1 − y 1 ) − 1 1 − h Θ ( x ) 1 ] × h Θ ( x ) 1 ( 1 − h Θ ( x ) 1 ) × a 0 ( 3 ) = [ h Θ ( x ) 1 − y 1 ] a 0 ( 3 ) = [ a 1 ( 4 ) − y 1 ] a 0 ( 3 )
Cost(x)Θ(3)20=0+Cost(x)2Θ(3)20+0+0=Cost(x)2hΘ(x)2×hΘ(x)2z(4)2×z(4)2Θ(3)20=[y21hΘ(x)2+(1y2)11hΘ(x)2]×hΘ(x)2(1hΘ(x)2)×a(3)0=[hΘ(x)2y2]a(3)0 ∂ C o s t ( x ) ∂ Θ 20 ( 3 ) = 0 + ∂ C o s t ( x ) 2 ∂ Θ 20 ( 3 ) + 0 + 0 = ∂ C o s t ( x ) 2 ∂ h Θ ( x ) 2 × ∂ h Θ ( x ) 2 ∂ z 2 ( 4 ) × ∂ z 2 ( 4 ) ∂ Θ 20 ( 3 ) = − [ y 2 1 h Θ ( x ) 2 + ( 1 − y 2 ) − 1 1 − h Θ ( x ) 2 ] × h Θ ( x ) 2 ( 1 − h Θ ( x ) 2 ) × a 0 ( 3 ) = [ h Θ ( x ) 2 − y 2 ] a 0 ( 3 )
Cost(x)Θ(3)21=0+Cost(x)2Θ(3)21+0+0=Cost(x)2hΘ(x)2×hΘ(x)2z(4)2×z(4)2Θ(3)21=[y21hΘ(x)2+(1y2)11hΘ(x)2]×hΘ(x)2(1hΘ(x)2)×a(3)1=[hΘ(x)2y2]a(3)1 ∂ C o s t ( x ) ∂ Θ 21 ( 3 ) = 0 + ∂ C o s t ( x ) 2 ∂ Θ 21 ( 3 ) + 0 + 0 = ∂ C o s t ( x ) 2 ∂ h Θ ( x ) 2 × ∂ h Θ ( x ) 2 ∂ z 2 ( 4 ) × ∂ z 2 ( 4 ) ∂ Θ 21 ( 3 ) = − [ y 2 1 h Θ ( x ) 2 + ( 1 − y 2 ) − 1 1 − h Θ ( x ) 2 ] × h Θ ( x ) 2 ( 1 − h Θ ( x ) 2 ) × a 1 ( 3 ) = [ h Θ ( x ) 2 − y 2 ] a 1 ( 3 )

综上:
Cost(x)Θ(3)ji=Cost(x)jhΘ(x)j×hΘ(x)jz(4)j×z(4)jΘ(3)ji=[yj1hΘ(x)j+(1yj)11hΘ(x)j]×hΘ(x)j(1hΘ(x)j)×a(3)i=[hΘ(x)jyj]a(3)i ∂ C o s t ( x ) ∂ Θ j i ( 3 ) = ∂ C o s t ( x ) j ∂ h Θ ( x ) j × ∂ h Θ ( x ) j ∂ z j ( 4 ) × ∂ z j ( 4 ) ∂ Θ j i ( 3 ) = − [ y j 1 h Θ ( x ) j + ( 1 − y j ) − 1 1 − h Θ ( x ) j ] × h Θ ( x ) j ( 1 − h Θ ( x ) j ) × a i ( 3 ) = [ h Θ ( x ) j − y j ] ( a i ( 3 )

引入 δ(4)=a(4)y δ ( 4 ) = a ( 4 ) − y ,再加上 hΘ(x)=a(4) h Θ ( x ) = a ( 4 ) ,所以 Cost(x)Θ(3)ji=δ(4)ja(3)i ∂ C o s t ( x ) ∂ Θ j i ( 3 ) = δ j ( 4 ) a i ( 3 )
把矩阵下标去掉,公式变为: Cost(x)Θ(3)=δ(4)(a(3))T ∂ C o s t ( x ) ∂ Θ ( 3 ) = δ ( 4 ) ( a ( 3 ) ) T

3. 证明 Cost(x)Θ(2)Cost(x)Θ(1) ∂ C o s t ( x ) ∂ Θ ( 2 ) , ∂ C o s t ( x ) ∂ Θ ( 1 )

举例:

Cost(x)Θ(2)10=k=1KCost(x)kΘ(2)10=k=1K[Cost(x)khΘ(x)k×hΘ(x)kz(4)k×z(4)ka(3)1×a(3)1z(3)1×z(3)1Θ(2)10]=k=1K[(hΘ(x)kyk)×Θ(3)k1×a(3)1(1a(3)1)×a(2)0] ∂ C o s t ( x ) ∂ Θ 10 ( 2 ) = ∑ k = 1 K ∂ C o s t ( x ) k ∂ Θ 10 ( 2 ) = ∑ k = 1 K [ ∂ C o s t ( x ) k ∂ h Θ ( x ) k × ∂ h Θ ( x ) k ∂ z k ( 4 ) × ∂ z k ( 4 ) ∂ a 1 ( 3 ) × ∂ a 1 ( 3 ) ∂ z 1 ( 3 ) × ∂ z 1 ( 3 ) ∂ Θ 10 ( 2 ) ] = ∑ k = 1 K [ ( h Θ ( x ) k − y k ) × Θ k 1 ( 3 ) × a 1 ( 3 ) ( 1 − a 1 ( 3 ) ) × a 0 ( 2 ) ]
Cost(x)Θ(2)20=k=1KCost(x)kΘ(2)20=k=1K[Cost(x)khΘ(x)k×hΘ(x)kz(4)k×z(4)ka(3)2×a(3)2z(3)2×z(3)2Θ(2)20]=k=1K[(hΘ(x)kyk)×Θ(3)k2×a(3)2(1a(3)2)×a(2)0] ∂ C o s t ( x ) ∂ Θ 20 ( 2 ) = ∑ k = 1 K ∂ C o s t ( x ) k ∂ Θ 20 ( 2 ) = ∑ k = 1 K [ ∂ C o s t ( x ) k ∂ h Θ ( x ) k × ∂ h Θ ( x ) k ∂ z k ( 4 ) × ∂ z k ( 4 ) ∂ a 2 ( 3 ) × ∂ a 2 ( 3 ) ∂ z 2 ( 3 ) × ∂ z 2 ( 3 ) ∂ Θ 20 ( 2 ) ] = ∑ k = 1 K [ ( h Θ ( x ) k − y k ) × Θ k 2 ( 3 ) × a 2 ( 3 ) ( 1 − a 2 ( 3 ) ) × a 0 ( 2 ) ]
Cost(x)Θ(2)21=k=1KCost(x)kΘ(2)21=k=1K[Cost(x)khΘ(x)k×hΘ(x)kz(4)k×z(4)ka(3)2×a(3)2z(3)2×z(3)2Θ(2)21]=k=1K[(hΘ(x)kyk)×Θ(3)k2×a(3)2(1a(3)2)×a(2)1] ∂ C o s t ( x ) ∂ Θ 21 ( 2 ) = ∑ k = 1 K ∂ C o s t ( x ) k ∂ Θ 21 ( 2 ) = ∑ k = 1 K [ ∂ C o s t ( x ) k ∂ h Θ ( x ) k × ∂ h Θ ( x ) k ∂ z k ( 4 ) × ∂ z k ( 4 ) ∂ a 2 ( 3 ) × ∂ a 2 ( 3 ) ∂ z 2 ( 3 ) × ∂ z 2 ( 3 ) ∂ Θ 21 ( 2 ) ] = ∑ k = 1 K [ ( h Θ ( x ) k − y k ) × Θ k 2 ( 3 ) × a 2 ( 3 ) ( 1 − a 2 ( 3 ) ) × a 1 ( 2 ) ]
Cost(x)Θ(2)32=k=1KCost(x)kΘ(2)32=k=1K[Cost(x)khΘ(x)k×hΘ(x)kz(4)k×z(4)ka(3)3×a(3)3z(3)3×z(3)3Θ(2)32]=k=1K[(hΘ(x)kyk)×Θ(3)k3×a(3)3(1a(3)3)×a(2)2] ∂ C o s t ( x ) ∂ Θ 32 ( 2 ) = ∑ k = 1 K ∂ C o s t ( x ) k ∂ Θ 32 ( 2 ) = ∑ k = 1 K [ ∂ C o s t ( x ) k ∂ h Θ ( x ) k × ∂ h Θ ( x ) k ∂ z k ( 4 ) × ∂ z k ( 4 ) ∂ a 3 ( 3 ) × ∂ a 3 ( 3 ) ∂ z 3 ( 3 ) × ∂ z 3 ( 3 ) ∂ Θ 32 ( 2 ) ] = ∑ k = 1 K [ ( h Θ ( x ) k − y k ) × Θ k 3 ( 3 ) × a 3 ( 3 ) ( 1 − a 3 ( 3 ) ) × a 2 ( 2 ) ]

记住 δ(4)=a(4)y,hΘ(x)=a(4) δ ( 4 ) = a ( 4 ) − y , h Θ ( x ) = a ( 4 ) 。根据前面的例子把公式进行一般化(其中 (Θ(3))Tj: ( Θ ( 3 ) ) j : T 表示矩阵 ((Θ(3))T ( ( Θ ( 3 ) ) T 第 j 行,第一个乘号是矩阵相乘,其他乘号是实数相乘):

Cost(x)Θ(2)ji=k=1K[(hΘ(x)kyk)×Θ(3)kj×a(3)j(1a(3)j)×a(2)i]=k=1K[δ(4)k×Θ(3)kj]×a(3)j(1a(3)j)×a(2)i=(Θ(3))Tj:×δ(4)×a(3)j(1a(3)j)×a(2)i ∂ C o s t ( x ) ∂ Θ j i ( 2 ) = ∑ k = 1 K [ ( h Θ ( x ) k − y k ) × Θ k j ( 3 ) × a j ( 3 ) ( 1 − a j ( 3 ) ) × a i ( 2 ) ] = ∑ k = 1 K [ δ k ( 4 ) × Θ k j ( 3 ) ] × a j ( 3 ) ( 1 − a j ( 3 ) ) × a i ( 2 ) = ( Θ ( 3 ) ) j : T × δ ( 4 ) × a j ( 3 ) ( 1 − a j ( 3 ) ) × a i ( 2 )

把矩阵下标去掉,公式变为(两个乘号表示矩阵相乘,.* 表示对应元素相乘):

Cost(x)Θ(2)=((Θ(3))T×δ(4)). a(3). (1a(3))×a(2) ∂ C o s t ( x ) ∂ Θ ( 2 ) = ( ( Θ ( 3 ) ) T × δ ( 4 ) ) . ∗   a ( 3 ) . ∗   ( 1 − a ( 3 ) ) × a ( 2 )

再引入 δ(3)=((Θ(3))Tδ(4)) . a(3) . (1a(3)) δ ( 3 ) = ( ( Θ ( 3 ) ) T δ ( 4 ) )   . ∗   a ( 3 )   . ∗   ( 1 − a ( 3 ) ) ,公式变为:

Cost(x)Θ(2)=δ(3)a(2) ∂ C o s t ( x ) ∂ Θ ( 2 ) = δ ( 3 ) a ( 2 )

再引入 δ(2)=((Θ(2))Tδ(3)) . a(2) . (1a(2)) δ ( 2 ) = ( ( Θ ( 2 ) ) T δ ( 3 ) )   . ∗   a ( 2 )   . ∗   ( 1 − a ( 2 ) ) ,所以

Cost(x)Θ(1)=δ(2)a(1) ∂ C o s t ( x ) ∂ Θ ( 1 ) = δ ( 2 ) a ( 1 )

4. 总结

一条数据的反向传播如下:

  1. 计算输出层的误差: δ(4)=a(4)y δ ( 4 ) = a ( 4 ) − y
  2. 计算第三层的误差: δ(3)=((Θ(3))Tδ(4)) . a(3) . (1a(3)) δ ( 3 ) = ( ( Θ ( 3 ) ) T δ ( 4 ) )   . ∗   a ( 3 )   . ∗   ( 1 − a ( 3 ) )
  3. 计算第二层的误差: δ(2)=((Θ(2))Tδ(3)) . a(2) . (1a(2)) δ ( 2 ) = ( ( Θ ( 2 ) ) T δ ( 3 ) )   . ∗   a ( 2 )   . ∗   ( 1 − a ( 2 ) ) 。第一层是输入变量,不存在误差,所以到第二层即可。
  4. 为什么计算每一层的误差 δ δ ?因为经过一系列复杂的求导后,我们通过 δ δ 可以计算代价函数对每一层权重矩阵的每一个参数的偏导数(无正则化处理或 λ=0 λ = 0 ): Θ(l)i,jJ(Θ)=δ(l+1)ia(l)j ∂ ∂ Θ i , j ( l ) J ( Θ ) = δ i ( l + 1 ) a j ( l ) ,其中每个元素都是一个实数!

重点:

  • 误差公式: δ(l)=((Θ(l))Tδ(l+1)) . g(z(l)) δ ( l ) = ( ( Θ ( l ) ) T δ ( l + 1 ) )   . ∗   g ′ ( z ( l ) ) ,其中 g(z(l))=a(l) . (1a(l)) g ′ ( z ( l ) ) = a ( l )   . ∗   ( 1 − a ( l ) )
  • 偏导数(梯度)公式: Θ(l)i,jJ(Θ)=δ(l+1)ia(l)j ∂ ∂ Θ i , j ( l ) J ( Θ ) = δ i ( l + 1 ) a j ( l )
  • 偏导数(梯度)公式(矩阵形式): Θ(l)J(Θ)=δ(l+1)(a(l))T ∂ ∂ Θ ( l ) J ( Θ ) = δ ( l + 1 ) ( a ( l ) ) T
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值