吴恩达深度学习笔记-第二门课改善深层神经网络-第一周、深度学习的实践(2)

文章探讨了深度学习中的一些关键实践,包括输入的归一化以加速学习,梯度消失和爆炸现象及其对网络训练的影响,权重初始化如Xavier和He方法来缓解梯度问题,以及使用数值逼近进行梯度检验以确保训练过程的准确性。同时强调了在调试时进行梯度检验而非训练过程中。
摘要由CSDN通过智能技术生成

第一周深度学习实践

本文使用的标号为b站视频中的标号。

1.9 归一化输入(标准化)

第一步:零均值化
在这里插入图片描述

第二步:归一化方差
在这里插入图片描述

在这里插入图片描述
X:=X-μ
在这里插入图片描述
X:=X/sigmoid**2
最终:
在这里插入图片描述

归一化输入通常能帮助学习算法运行更快。如果输入特征处在不同的范围内时,归一化特征值就非常重要。执行这类归一化不会产生什么危害。

1.10 梯度消失与梯度爆炸

在深层神经网络中,如果权重𝑊只比 1 略大一点,或者说只是比单位矩阵大一点,深度神经网络的激活函数将爆炸式增长,如果𝑊比 1 略小一点,在深度神经网络中,激活函数将以指数级递减,虽然只是讨论了激活函数以与𝐿相关的指数级数增长或下降,它也适用于与层数𝐿相关的导数或梯度函数,也是呈指数级增长或呈指数递减。

1.11 神经网络的权重初始化

希望设置的权重矩阵既不会增长过快,也不会太快下降到 0,从而训练出一个权重或梯度不会增长或消失过快的深度网络。我们在训练深度网络时,这也是一个加快训练速度的技巧。

思路是让 w与 n有关,且 n越大,w应该越小才好。一种方法是在初始化w时,令其方差为 1/n,这里称为Xavier initialization。
针对tanh激活函数的Xavier初始化

WL = np.random.randn (WL.shape[0], WL.shape[1]) * np.sqrt (1/n)

这样,激活函数的输入 公式 近似设置成均值为0,标准方差为1,神经元输出 公式 的方差就正则化到1了。虽然没有解决梯度消失和爆炸的问题,但其在一定程度上确实减缓了梯度消失和爆炸的速度。
如果使用relu激活函数,权重w的初始化一般令其方差等于2/n[l-1](2除以前一层的维度),叫做He initialization。

w[l] = np.random.randn(n[l],n[l-1])*np.sqrt(2/n[l-1])

1.12 梯度的数值逼近

在这里插入图片描述
在这里插入图片描述
当epsilon越小时,结果越接近真实的导数,也就是梯度值。可以使用这种方法来判断反向传播进行梯度下降时,是否出现了错误。
双边误差公式的结果比单边误差精确

1.13 梯度检验

当我们计算出数值梯度后,要进行梯度检查,来验证训练过程中是否有问题。
在这里插入图片描述
在这里插入图片描述
如果在1e-7,说明实施正确,1e-3则很有可能出现错误。

1.14 关于梯度检验实现的注记

  • 在进行神经网络训练的时候,不要进行梯度检验,只在调试的时候进行。(搭建好神经网络模型的时候,先进行调试,这时进行梯度检验,调试好之后,进行训练的时候关闭梯度检验。因为梯度检验耗费的时间太大)

  • 如果梯度检验失败,仔细检查每一项。因为theta表示所有b和w,d theta表示所有的db,dw,找到对应出错的梯度 (即公式公式的值相差比较大的项) ,检查其推导是否出现错误。

  • 计算近似梯度时,如果有正则化项,要记住带上正则项。这时J(θ)的定义为在这里插入图片描述

  • 梯度检查时关闭dropout,检查完毕后再打开dropout。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值