【神经网络和深度学习】吴恩达(Andrew Ng)- 第一课第四周课程内容总结

本文深入解析深度神经网络的构成与工作原理,涵盖深层神经网络定义、符号约定、前向传播计算方法,以及矩阵维数核对等关键技术点,是理解深度学习核心概念的宝贵资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在【神经网络和深度学习】第四周的课程中,感觉有些内容比较容易忘记但是及其重要,于是由这篇文章来记录相关内容。

一、深层神经网络

1.1 何为深层神经网络

  拥有大于两层隐藏层的神经网络。(根据PPT得出的结论)

1.2 深层神经网络符号规约

拥有四层隐藏层的神经网络
  如图,x1,x2,x3x_1, x_2, x_3x1,x2,x3为输入的特征值,可以称为第0层或输入层。从输入层向右依次是第1层、第2层、第3层、第4层(也叫输出层)。
  所以这个网络是四层神经网络(通常不包含输入层),即:L(Layers)=4L (Layers) = 4L(Layers)=4

  • n[l]n^{[l]}n[l] 是第lll层的神经元个数。如:n[0]=3n^{[0]} =3n[0]=3n[1]=5n^{[1]} =5n[1]=5n[2]=5n^{[2]} =5n[2]=5n[3]=3n^{[3]} =3n[3]=3n[4]=1n^{[4]} =1n[4]=1
  • w[l]w^{[l]}w[l] 是第lll层的权重;
  • b[l]b^{[l]}b[l] 是第lll层的偏置值;
  • z[l]z^{[l]}z[l] 是第lll层的未被激活函数(激励函数)激活的输出的值;
  • g[l]g^{[l]}g[l] 是第lll层的激活函数(激励函数);
  • a[l]a^{[l]}a[l] 是第lll层的激活函数(激励函数)输出的值,即:a[l]=g[l](z[l])a^{[l]} = g^{[l]}(z^{[l]})a[l]=g[l](z[l]),注意:a[0]a^{[0]}a[0]x1,x2,x3x_1,x_2,x_3x1x2x3

二、深层神经网络中的前向传播

  在前向传播中,首先我们要明确我们需要计算的量有:z[l],a[l]z^{[l]},a^{[l]}z[l]a[l]

2.1 前向传播计算方法

在这里插入图片描述

  • z[1]=w[1]a[0]+b[1]z^{[1]}=w^{[1]}a^{[0]}+b^{[1]}z[1]=w[1]a[0]+b[1]
  • a[1]=g[1](z[1])a^{[1]}=g^{[1]}(z^{[1]})a[1]=g[1](z[1])
  • z[2]=w[2]a[1]+b[2]z^{[2]}=w^{[2]}a^{[1]}+b^{[2]}z[2]=w[2]a[1]+b[2]
  • a[2]=g[2](z[2])a^{[2]}=g^{[2]}(z^{[2]})a[2]=g[2](z[2])
  • ……
  • a[4]=g[4](z[4])=y^a^{[4]}=g^{[4]}(z^{[4]})=\hat ya[4]=g[4](z[4])=y^

经过这样的循环计算后,我们可以得到一组输入的y^\hat yy^

通式(通式中大写变量均为向量,便于省去部分循环计算):

  • Z[l]=W[l]A[l−1]+B[l]Z^{[l]}=W^{[l]}A^{[l-1]}+B^{[l]}Z[l]=W[l]A[l1]+B[l]
  • A[l]=g[l](Z[l])A^{[l]}=g^{[l]}(Z^{[l]})A[l]=g[l](Z[l])
  • Y^=A[4]\hat Y=A^{[4]}Y^=A[4]

三、核对矩阵维数(可视为debug方法)

  何对矩阵维数时关键的公式是Z[l]=W[l]X+B[l]Z^{[l]}=W^{[l]}X+B^{[l]}Z[l]=W[l]X+B[l]。如:

  • Z[1]=W[1]X+B[1]Z^{[1]}=W^{[1]}X+B^{[1]}Z[1]=W[1]X+B[1]
  • ZZZ是每一层的激活函数的个数(神经元个数),Z[1].shape()=(3,1)Z^{[1]}.shape() =(3,1)Z[1].shape()=(3,1),也就是(n[1],1)=(3,1)(n^{[1]},1)=(3,1)(n[1],1)=(3,1)
  • XXX是输入的特征值个数,X[1].shape()=(2,1)X^{[1]}.shape()=(2,1)X[1].shape()=(2,1),也就是(n[0],1)=(2,1)(n^{[0]},1)=(2,1)(n[0],1)=(2,1)
  • 然后我们就可以根据矩阵乘法规则推算出W的规模,W[1]=(n[1],n[0])W^{[1]}=(n^{[1]}, n^{[0]})W[1]=(n[1],n[0])
    核对矩阵维数
  • 所以我们可以得到:W[l]=(n[l],n[l−1])W^{[l]}=(n^{[l]}, n^{[l-1]})W[l]=(n[l],n[l1]),也就是(当前层的神经元维数,前一层的神经元维数)
  • 我们可以看到,W[l]XW^{[l]}XW[l]X的维数为(n[l],1)(n^{[l]},1)(n[l],1),因此根据矩阵加法规则,推算出B[l]B^{[l]}B[l]的规模为(n[l],1)(n^{[l]},1)(n[l],1)
  • 在反向传播中dw[l]dw^{[l]}dw[l]W[l]W^{[l]}W[l]有着相同的规模,为:(n[l],n[l−1])(n^{[l]}, n^{[l-1]})(n[l],n[l1])db[l]db^{[l]}db[l]B[l]B^{[l]}B[l]有着相同的规模,为:(n[l],1)(n^{[l]},1)(n[l],1)
    可以得到前向传播和后向传播中传播公式为:
    在这里插入图片描述

四、深层神经网络

4.1 每层神经网络输入及输出
4.1.1 正向传播

正向传播

4.1.2 反向传播

反向传播

4.1.4 神经网络lll层的前向传播

  输入:a[l−1]a^{[l-1]}a[l1]
  输出:a[l],cache(z[l])a^{[l]},cache(z^{[l]})a[l]cache(z[l])

注:由于Z[l]=W[l]∗a[l−1]+b[l]Z^{[l]}=W^{[l]}*a^{[l-1]}+b^{[l]}Z[l]=W[l]a[l1]+b[l],因此输出还有w[l]w^{[l]}w[l]b[l]b^{[l]}b[l]
a[l]=g[l](Z[l])a^{[l]} = g^{[l]}(Z^{[l]})a[l]=g[l](Z[l])

综上向量化后:Z[l]=W[l]∗A[l−1]+b[l]Z^{[l]}=W^{[l]}*A^{[l-1]}+b^{[l]}Z[l]=W[l]A[l1]+b[l]
A[l]=g[l](Z[l])A^{[l]}=g^{[l]}(Z^{[l]})A[l]=g[l](Z[l])

4.1.5 神经网络lll层的后向传播

  输入:da[l]da^{[l]}da[l]
  输出:da[l−1],dw[l],db[l]da^{[l-1]},dw^{[l]},db^{[l]}da[l1]dw[l]db[l]

  • dz[l]=da[l]∗g[l]′(z[l])dz^{[l]}=da^{[l]}*g^{[l]}\\'(z^{[l]})dz[l]=da[l]g[l](z[l])
  • da[l]=w[l]T∗dz[l]da^{[l]}=w^{[l]^T}*dz^{[l]}da[l]=w[l]Tdz[l],将da[l]da^{[l]}da[l]带入上式得:dz[l]=w[l+1]T∗dz[l+1]∗g[l]′(z[l])dz^{[l]}=w^{[l+1]^T}*dz^{[l+1]}*g^{[l]}\\'(z^{[l]})dz[l]=w[l+1]Tdz[l+1]g[l](z[l])
  • dw[l]=dz[l]∗a[l−1]dw^{[l]}=dz^{[l]}*a^{[l-1]}dw[l]=dz[l]a[l1]
  • db[l]=dz[l]db^{[l]}=dz^{[l]}db[l]=dz[l]
    综上向量化后:
    dZ[l]=dA[l]∗g[l]′(Z[l])dZ^{[l]}=dA^{[l]}*g^{[l]}\\'(Z^{[l]})dZ[l]=dA[l]g[l](Z[l])
    dW[l]=1mdZ[l]∗A[l−1]TdW^{[l]}=\frac 1mdZ^{[l]}*A^{[l-1]^{T}}dW[l]=m1dZ[l]A[l1]T
    db[l]=1mnp.sum(dZ[l],axis=1,keepdims=true)db^{[l]}=\frac 1mnp.sum(dZ^{[l]},axis=1,keepdims=true)db[l]=m1np.sum(dZ[l],axis=1,keepdims=true)
    dA[l−1]=W[l]T∗dZ[l]dA^{[l-1]}=W^{[l]^{T}}*dZ^{[l]}dA[l1]=W[l]TdZ[l]
4.1.3 小结

  神经网络的一个梯度下降循环就是将正向传播和反向传播进行一次,计算出相关参数,然后使用w=w−dww = w - dww=wdwb=b−dbb = b - dbb=bdb梯度下降的方法来更新参数。

注:需要将Z,b[l],w[l]Z,b^{[l]},w^{[l]}Zb[l]w[l]缓存下来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值