deeplearning.ai学习笔记:第一课第四周

本文深入讲解深度神经网络的参数与超参数,探讨深层表示的优势,以及如何通过前向与反向传播实现网络训练。理解神经元如何从简单特征到复杂特征的组合,揭示深层网络的强大函数拟合能力。

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

1 深层神经网络

在这里插入图片描述
参数:
W[l]∈Rnl×nl−1W^{[l]} \in R^{n_l \times n_{l-1}}W[l]Rnl×nl1
b[l]∈Rnl×1b^{[l]} \in R^{n_l \times 1}b[l]Rnl×1
dW[l]∈Rnl×nl−1dW^{[l]} \in R^{n_l \times n_{l-1}}dW[l]Rnl×nl1
db[l]∈Rnl×1db^{[l]} \in R^{n_l \times 1}db[l]Rnl×1

Z[l]∈Rnl×mZ^{[l]} \in R^{n_l \times m}Z[l]Rnl×m
A[l]∈Rnl×mA^{[l]} \in R^{n_l \times m}A[l]Rnl×m
dZ[l]∈Rnl×mdZ^{[l]} \in R^{n_l \times m}dZ[l]Rnl×m
dA[l]∈Rnl×mdA^{[l]} \in R^{n_l \times m}dA[l]Rnl×m

深度学习块:

在这里插入图片描述

前向运算:
输入:Z[l]Z^{[l]}Z[l],W[l]W^{[l]}W[l],b[l]b^{[l]}b[l]
输出:A[l]A^{[l]}A[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])

输出是A[l]A^{[l]}A[l],但是Z[l]Z^{[l]}Z[l]要暂存起来以便进行反向运算的梯度计算。

反向运算:
输入:dA[l]dA^{[l]}dA[l]和缓存的Z[l]Z^{[l]}Z[l]
输出:dA[l−1]dA^{[l-1]}dA[l1],dW[l]dW^{[l]}dW[l],db[l]db^{[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])
dW[l]=1mdZ[l]A[l−1]TdW^{[l]} = \frac{1}{m}dZ^{[l]}{A^{[l-1]}}^TdW[l]=m1dZ[l]A[l1]T
db[l]=1mnp.sum(dZ[l],axis=1,keepdims=True)db^{[l]} = \frac{1}{m}np.sum(dZ^{[l]},axis=1,keepdims=True)db[l]=m1np.sum(dZ[l],axis=1,keepdims=True)
dA[l−1]=W[l]TdZ[l]dA^{[l-1]}={W^{[l]}}^TdZ^{[l]}dA[l1]=W[l]TdZ[l]

深度学习网络:
在这里插入图片描述
前向运算:

X=A[0]X = A^{[0]}X=A[0]

for l in  1,...,L:for~l~in~~1,...,L:for l in  1,...,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])

反向运算:
反向运算的输入是损失函数对a[L]a^{[L]}a[L],也就是y^\hat{y}y^的导数。之所以有1m\frac{1}{m}m1,是因为m个样本均与各个神经元的参数进行了乘积/相加运算。

for l in  L,...,1:for~l~in~~L,...,1:for l in  L,...,1:
    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]T~~~~dW^{[l]} = \frac{1}{m}dZ^{[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{1}{m}np.sum(dZ^{[l]},axis=1,keepdims=True)    db[l]=m1np.sum(dZ[l],axis=1,keepdims=True)
    dA[l−1]=W[l]TdZ[l]~~~~dA^{[l-1]}={W^{[l]}}^TdZ^{[l]}    dA[l1]=W[l]TdZ[l]

2 为什么使用深度表示?

在这里插入图片描述深层网络,浅层神经元在进行类似边缘检测的功能,比如每一个神经元在检测指定的边缘;中间层的神经元在进行类似部件检测的功能,比如检测人脸的鼻子、嘴巴等五官区域;深层的神经元在进行人脸局部的检测。这样特征逐步由简单向复杂进行汇聚组合,就实现了人脸检测功能。

理论解释:
在这里插入图片描述能够使用小的深层网络表示的函数,若使用浅层网络进行表示,需要的隐藏神经元个数需要进行指数级的扩充。也就是说使用深层网络,那么每一层的神经元个数很有限,也可以表示很复杂的函数,也就是神经网络具有强大的函数拟合能力。

3 参数 vs. 超参数

参数:W[l]W^{[l]}W[l],b[l]b^{[l]}b[l]

超参数:控制参数的参数
学习率 learning_rate
隐藏层数量
隐藏层单元数
激活函数的选择
迭代次数
动量值
mini batch的大小
正则化系数

因为超参数的选择决定了最终的参数,因此称之为超参数。

尝试不同的超参数进行实验,根据训练模型的效果选择超参数。

深度学习训练过程高度依赖于经验和试错。

深度学习和大脑的关联并不大。

4 作业

本周作业完整复习了神经网络的前向计算和反向传播过程,需要认真去实现下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值