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

版权声明:本文为博主原创文章,如有转载请标注来源。 https://blog.csdn.net/shengchaohua163/article/details/79747381

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

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

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

1. 神经网络的回顾

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

Θ ( 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 )。

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

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)为:

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. 证明 C o s t ( x ) Θ ( 3 )

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

  • h Θ ( x ) 就是 a ( 4 ) ,即 h Θ ( x ) = a ( 4 )
  • a ( 4 ) = g ( z ( 4 ) ) ,且 a ( 4 ) z ( 4 ) = a ( 4 ) ( 1 a ( 4 ) )
  • z j ( 4 ) = i = 0 5 Θ j i ( 3 ) a i ( 3 ) ,其中 1 j 4
  • j=1 代表矩阵的第 1 行,i=1 代表矩阵的第 2 列(第 1 列相当于线性回归中的 θ 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 )
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 )
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 )

综上:
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 ,再加上 h Θ ( x ) = a ( 4 ) ,所以 C o s t ( x ) Θ j i ( 3 ) = δ j ( 4 ) a i ( 3 )
把矩阵下标去掉,公式变为: C o s t ( x ) Θ ( 3 ) = δ ( 4 ) ( a ( 3 ) ) T

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

举例:

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 ) ]
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 ) ]
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 ) ]
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 ) ]

扫描二维码关注公众号,回复: 3437484 查看本文章

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

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 )

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

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

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

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

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

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

4. 总结

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

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

重点:

  • 误差公式: δ ( l ) = ( ( Θ ( l ) ) T δ ( l + 1 ) )   .   g ( z ( l ) ) ,其中 g ( z ( l ) ) = a ( l )   .   ( 1 a ( l ) )
  • 偏导数(梯度)公式: Θ i , j ( l ) J ( Θ ) = δ i ( l + 1 ) a j ( l )
  • 偏导数(梯度)公式(矩阵形式): Θ ( l ) J ( Θ ) = δ ( l + 1 ) ( a ( l ) ) T

猜你喜欢

转载自blog.csdn.net/shengchaohua163/article/details/79747381
今日推荐