吴恩达教授在Coursera课程Deeplearning关于矩阵维度总结

本文详细解析了吴恩达教授在Coursera课程Deeplearning中关于两层神经网络的前向传播和反向传播过程中各计算公式的矩阵维度。通过具体的公式和维度展示,帮助读者更好地理解神经网络的工作原理。

吴恩达教授在Coursera课程Deeplearning关于矩阵维度总结

在Deeplearning这门课程第一周的第三节课:Shallow Neural Networks上,以两层神经网络分析 forward propagation和back propagation各计算公式的矩阵维度。
根据如下的神经网络架构:
这里写图片描述

1. Forward propagation

1.1  公式1

Z[1]=W[1] X+b[1](1)(1)Z[1]=W[1] X+b[1]
公式
Z[1]Z[1]
W[1]W[1]
XX
b[1]b[1]
维度
(n[1]×m)(n[1]×m)
(n[1]×n[0])(n[1]×n[0])
(n[0]×m)(n[0]×m)
(n[1]×m)(n[1]×m)

备注:

  • mm是样本数

1.2  公式2

A[1]=g[1](Z[1])(2)(2)A[1]=g[1]∗(Z[1])
公式
A[1]A[1]
Z[1]Z[1]
维度
(n[1]×m)(n[1]×m)
(n[1]×m)(n[1]×m)

备注:

  • 符号   ∗ 是矩阵点乘操作
  • g[1] g[1] 可以是 sigmoidtanhRelu  sigmoid、tanh、或者Relu 函数

1.3  公式3

Z[2]=W[2] A[1]+b[2](3)(3)Z[2]=W[2] A[1]+b[2]
公式
Z[2]Z[2]
W[2]W[2]
A[1]A[1]
b[2]b[2]
维度
(n[2]×m)(n[2]×m)
(n[2]×n[1])(n[2]×n[1])
(n[1]×m)(n[1]×m)
(n[2]×m)(n[2]×m)

备注:

  • 在神经网络中,每一组 W  W 参数都是一行,与每一列 A  A 相乘;在Logistic Regression中, W  W 只有一列,是列向量,所以会写成  Z=WT X+b  Z=WT X+b 的形式。

1.4  公式4

A[2]=g[2](Z[2])(4)(4)A[2]=g[2]∗(Z[2])
公式
A[1]A[1]
Z[1]Z[1]
维度
(n[2]×m)(n[2]×m)
(n[2]×m)(n[2]×m)

备注:

  • 符号   ∗ 是矩阵点乘操作
  • g[2] g[2] 一般是 sigmoid  sigmoid 函数(二分类)

2. Back propagation

2.1  公式5

dZ[2]=A[2]Y(5)(5)dZ[2]=A[2]−Y
公式
dZ[2]dZ[2]
A[2]A[2]
YY
维度
(n[2]×m)(n[2]×m)
(n[2]×m)(n[2]×m)
(n[2]×m)(n[2]×m)

备注:

  • A[2]A[2]中的每一个元素在链式求导时都作为一个变量,所以维度是 (n[2]×m)(n[2]×m)
  • 如果是二分类,则n[2]=1,Y=[y(1)y(2) ... y(m)]n[2]=1,Y=[y(1)y(2) ... y(m)]
  • 默认 g[2]g[2]函数是 sigmoidsigmoid函数

2.2  公式6

dW[2]=1mdZ[2]A[1]T(6)(6)dW[2]=1mdZ[2]A[1]T
公式
dW[2]dW[2]
dZ[2]dZ[2]
A[1]TA[1]T
维度
(n[2]×n[1])(n[2]×n[1])
(n[2]×m)(n[2]×m)
(m×n[1])(m×n[1])

备注:

  •  W[2]  W[2]  中的每个元素都是 dZ[2]  dZ[2]  中的每一行与 A[1]T  A[1]T  中的每一列相乘的结果。每一个乘法的是意思的链式求导,相乘之后的加法意义是在计算 W[2]  W[2]  每个参数的梯度时,将m个样本的loss相加,即: LostWij=1mloss  ∂Lost∂Wij=1m∑loss 

2.3  公式7

db[2]=1mnp.sum(dZ[2],axis =1,keepdims=True)(7)(7)db[2]=1mnp.sum(dZ[2],axis =1,keepdims=True)
公式
db[2]db[2]
维度
(n[2]×1)(n[2]×1)

2.4  公式8

dZ[1]=W[2]TdZ[2]g[1](Z[1])(8)(8)dZ[1]=W[2]TdZ[2]∗g[1]′(Z[1])
公式
dZ[1]dZ[1]
W[2]TW[2]T
dZ[2]dZ[2]
g[1](Z[1])g[1]′(Z[1])
维度
(n[1]×m)(n[1]×m)
(n[1]×n[2])(n[1]×n[2])
(n[2]×m)(n[2]×m)
(n[1]×m)(n[1]×m)

备注:

  • 符号   ∗ 是矩阵点乘操作
  • g[1] g[1] 一般是 sigmoid  sigmoid 函数(二分类)
  • g[1]=sigmoidg[1]=g(1)(1g(1));g[1]=sigmoid,g[1]′=g(1)(1−g(1));
  • g[1]=tanhg[1]=(1g(1)2);g[1]=tanh,g[1]′=(1−g(1)2);
  • g[1]=Relu,max(0,Z)g[1]=Relu,max(0,Z),

    g[1]={0if Z < 01if Z  0g[1]′={0if Z < 01if Z ⩾ 0
  • g[1]=Relu,max(0.01Z,Z)g[1]=Relu,max(0.01Z,Z),

    g[1]={0.01if Z < 01if Z  0g[1]′={0.01if Z < 01if Z ⩾ 0

2.5  公式9

dW[1]=1mdZ[1]XT(9)(9)dW[1]=1mdZ[1]XT
公式
dW[1]dW[1]
dZ[1]dZ[1]
XTXT
维度
(n[1]×n[0])(n[1]×n[0])
(n[1]×m)(n[1]×m)
(m×n[0])(m×n[0])

2.6  公式10

db[1]=1mnp.sum(dZ[1],axis=1,keepdims=True)(10)(10)db[1]=1mnp.sum(dZ[1],axis=1,keepdims=True)

公式
db[1]db[1]
维度
(n[1]×1)(n[1]×1)

3. 总结

这里写图片描述

公式书写习惯学习自吴恩达的课程,有错误地方,烦请指正。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值