由于之前看的深度学习的知识都比较零散,补一下吴老师的课程希望能对这块有一个比较完整的认识。课程分为5个部分(粗体部分为已经看过的):

  1. 神经网络和深度学习
  2. 改善深层神经网络:超参数调试、正则化以及优化
  3. 结构化机器学习项目
  4. 卷积神经网络
  5. 序列模型

第 1 部分讲的是神经网络的基础,从逻辑回归到浅层神经网络再到深层神经网络。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

一直感觉反向传播(Back Propagation,BP)是这部分的重点,但是当时看的比较匆忙,有些公式的推导理解的不深刻,现在重新回顾一下,一是帮助自己梳理思路加深理解,二是记录下来以免遗忘。

 

 

1. 符号规定

吴恩达深度学习 反向传播(Back Propagation)公式推导技巧 人工智能 第1张

            图1 神经网络示意图1

一般计算神经网络层数时不包括输入层,因此图1中的网络层数 L 为4;

n[l] 表示第 l 层的神经元的数量,n[1] = n[2] = 5,n[3] = 3, n[4] =1,n[0] = nx = 3;

z[l] = W[l]·a[l-1] + b[l],w[l] 表示第 l 层的权重,b[l] 表示偏置;

a[l] 表示第 l 层中通过激活函数 g[l] 激活后的值,表示如下:a[l] = g[l](z[l])。

 

 

2. 核对矩阵维数

吴恩达老师推荐的小技巧,通过核对矩阵的维数可以有效地判断代码是否有错。核对矩阵维数对后面的反向传播公式的推导很有帮助

吴恩达深度学习 反向传播(Back Propagation)公式推导技巧 人工智能 第2张

                 图2 神经网络示意图2

举个例子:z[1] = W[1]·x+ b[1]

从图2可以看出:x 的维度是 (2,1),且 z[1] 的维度是 (3,1),由于等式两边维度一致,因此可以推出 W[1] 的维度为 (3,2),且 b[1] 也为(3,1)。从正面看,因为第 1 层有 3 个神经元,且有 2 个输入,因此每个神经元中的参数要分别与两个输入相乘,也很容易得出 W[1] 的维度。同理可以推出后面层的参数的维度,总结规律是:

W[l] = (n[l],n[l-1])

a[l] = (n[l],1)

z[l] = b[l] = (n[l],1)

dx 和 x 的维度相同

若有 m 个样本,将公式向量化之后只需将 a[l] 和 z[l] 改为大写,并将 1 改为 m 即可(对b,Python的广播机制将其维数从 1 变为 m )。

 

 

3. 前向传播和反向传播

3.1 前向传播

Input:a[l-1]

Output:a[l], cache(z[l]) (or W[l], b[l])

FP 的两个公式,比较简单,直接代入即可(主要根据这两个公式推导BP):

z[l] = W[l]·a[l-1] + b[l]  ---------  ①

a[l] = g[l](z[l]------------------- ②

 

3.2 反向传播

Input:da[l]

Output:da[l-1], dW[l], db[l]

BP的公式:

1. 首先求dz[l],由公式②,dz[l] = da[l]*g[l]'(z[l]),根据链式求导法则得出,因为*是元素对应相乘,所以两者顺序对结果不影响。

2. 再求dW[l],由公式①,dW[l] = dz[l]·a[l-1]T,因为乘积为点乘,因此两者顺序影响结果。此时,我们可以分析矩阵的维度来判断顺序以及是否要转置。dW[l] 为 (n[l],n[l-1]),dz[l]为 (n[l],1),a[l-1]为 (n[l-1],1),因此,要得到 dW[l] 的维度,应该将 dz[l] 放在前,并与a[l-1]T作点积运算。(注:吴恩达老师在讲课时,写的是a[l-1],我个人认为此处是笔误,欢迎大家讨论)

3. 同样根据公式①,容易得出:db[l] = dz[l]

4. 最后,根据公式①,da[l-1] = W[l]T·dz[l],da[l-1] 的维度为 (n[l-1],1),W[l] 的维度为 (n[l],n[l-1]),dz[l]为 (n[l],1),显然需要将W[l]转置再与dz[l]作点积。

这样我们就得到的 Output 的三个值。

 

 

上面是我总结的关于方向传播中公式推导的一些技巧。可能是刚接触深度学习,对这些矩阵的维数以及是否要转置等等还不敏感,在找相关资料时也没有详细的解释(可能是因为太简单?...),于是自己梳理了一下。当然如果大家有更好的方法,望不吝赐教!

 

参考资料:http://mooc.study.163.com/course/2001281002?tid=2001392029#/info

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄