吴恩达深度学习2-Week2课后作业-优化算法

本文介绍了深度学习中优化算法的重要性,包括批量梯度下降、小批量梯度下降、动量法和Adam优化器。通过实例展示了在不同优化算法下,神经网络在训练过程中的性能差异,强调了Adam优化器在收敛速度和效果上的优势。
摘要由CSDN通过智能技术生成

一、Deeplearning-assignment

到目前为止,在之前的练习中我们一直使用梯度下降来更新参数并最小化成本函数。在本次作业中,将学习更先进的优化方法,它在加快学习速度的同时,甚至可以获得更好的最终值。一个好的优化算法可以让你几个小时内就获得一个结果,而不是等待几天。

1.Gradient Descent

在机器学习中,有一种优化方法叫梯度下降,当每次迭代使用m个样本时,它也叫批量梯度下降。

完成梯度下降的更新规则:

2.Mini-Batch Gradient descent

现在让我们学习如何从训练集(X, Y)中构建小批量数据集。

Shuffling:如下所示,将训练集(X, Y)的数据进行随机混洗. X 和 Y 的每一列代表一个训练样本. 请注意随机混洗是在X和Y之间同步完成的,这样才能保证X的第i个标签和Y的第i个标签相匹配。随机混洗是为了确保样本被随机的划分到不同的小批量集中。

Partitioning:将混洗的数据(X, Y)按固定大小(mini_batch_size这里是64)进行分区。请注意,训练样本的总数并不一定能被64整除。划分的最后一个小批量可能小于64,就像下面这样:

实现 random_mini_batches,随机混洗的代码我们已经实现了。为了进行分区,我们提供了以下代码用来索引某个特定的小批量集,比如第一个和第二个小批量集:

first_mini_batch_X = shuffled_X[:, 0 : mini_batch_size]
second_mini_batch_X = shuffled_X[:, mini_batch_size : 2 * mini_batch_size]
...

你应该记住的是:

  • Shuffling and Partitioning 是构建小批量所需的两个步骤。
  • mini-batch的大小通常选择的是2的幂次方, 比如 16, 32, 64, 128。

3.Momentum

由于小批量梯度下降是用整体样本的一个子集进行的参数更新,所以更新的方向会发生一定变化,小批量梯度下降会在不断摆动中趋于收敛。使用动量优化法可以减少这些振荡。

动量法会把过去的梯度变化考虑进来用来平滑更新。我们把以前梯度变化的“方向”存储在变量 vv 中。形式上,你可以把它看成前面步骤中梯度的指数加权平均值。你可以想象有一个球从上坡上滚下来,vv 就是它的“速度”,速度(和动量)的构建取决于山坡的坡度/方向。

红色箭头表示采用动量优化法的小批量梯度下降每一步进行的方向. 蓝色的点表示的是每步的梯度(相对于当前小批量)方向。

momentum更新的规则是:for l = 1,...L:

β的常用值范围是从0.8到0.999。如果你不想调整它,β=0.9通常是一个合理的默认值。

4.Adam

Adam是训练神经网络最有效的优化算法之一。它结合了RMSProp(讲座中介绍)和Momentum。

Adam的更新规则是:for l = 1,...L:

5.Model with different optimization algorithms

让我们使用下面的"moons"数据集来测试不同的优化方法。

现在将用3种优化方法依次运行这个3层的神经网络(详见代码中的model函数)。

(1)Mini-batch Gradient descent

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值