吴恩达《深度学习》第二门课(2)优化算法

简介: 2.1Mini-batch梯度下降(1)例如有500万个训练样本,这时可以每1000个组成一个Mini-batch,共用5000个Mini-batch。主要是为了加快训练。(2)循环完所有的训练样本称为(1 epoch)。

2.1Mini-batch梯度下降

(1)例如有500万个训练样本,这时可以每1000个组成一个Mini-batch,共用5000个Mini-batch。主要是为了加快训练。

(2)循环完所有的训练样本称为(1 epoch)。

(3)使用大括号X{t},Y{t}表示一个Mini-batch。(小括号(i)表示第i个样本,中括号[l]表示神经网络第l层)。

2.2理解mini-batch梯度下降法

(1)batch梯度下降时,每一次迭代代价函数都会降低(如果某一次不是,说明出问题了,可能要改变学习率),而mini-batch梯度下降时,不一定每次都降低,但是总的趋势是下降的。如下图所示:

(2)Mini-batch的大小设为m(总样本数)时,变成了batch梯度下降(训练慢当样本总数大时),当设为1,变成了随机梯度下降(这时没能很好利用多样本的向量化的优势,也会导致变慢)。所示实际中选择不大不小的mini-batch尺寸,下降速度达到最快。

(3)不管是随机梯度下降还是mini-batch梯度下降都不会达到收敛,如下图所示紫色线条,所以后期需要减小学习率来使其趋向收敛。

(4)当样本数小于2000时可直接使用batch梯度下降,当样本数很大时,一般把mini-batch的大小设为2的n次方,比如64,126,512等,这样是考虑到电脑内存设置和使用方法。

(5)同第四点,所以在调参mini-batch的大小时常常设置2的不同次方。

 2.3指数加权平均数

(1)下图中蓝色为每天的的温度,红色是温度的指数加权平均数,使用如下公式计算而来:

(2)将上式更一般的表示如下:

β越大,反应越快,波动性却强,如下图中黄色线;β越小,延迟多大,越平缓,如下图中绿色线。

(3)在计算时,可以认为vt天的平均温度,如β等于0.5时,看成是两天的平均温度,β=0.98,则是50天的平均温度。

2.4理解指数加权平均数

(1)根据下面式子:

进行展开:

所以V100其实是下面两个图对应点乘积的求和(右图是从0.1开始往左指数下降):

(2)当β为0.9时,下降到第十天(0.9)10约等于0.35,大约是1/e,认为降到这个数之后可以忽略不计了。

(3)指数加权平均数公式的好处之一就在于,他占用极少内存,电脑内存中占用一行数字而已,然后把最新的数据代入公式,不断覆盖就可以了。

2.5指数加权平均数的偏差修正

 (1)按照前面提到的公式计算,比如β为0.9,得不到下图中绿色的线,而是得到紫色的线,因为一开始已经没有之前的数据可以加了,导致小了很多。

(2)解决方法是引入偏差修正,即按照之前的公式算出vt之后,再除以(1-βt),如下所示:

当t=2时:

 

这样将能能到绿色的线,当t很大时,分母也趋向于1,那时将不起作用(也不需要起作用)。

2.6动量梯度下降法(Momentum)

(1)下图中蓝色是梯度下降的过程:

(2)我们希望沿着垂直方向的振幅能变小,因为是无效的,同时因为振幅的存在使得学习率不能太大,太大振幅会更大,甚至训练的越来越差;同时横轴方向希望学习率能增大,更加快速的到达最优点,以上矛盾的两者,可以通过上一节讲到的指数加权平均来解决(因为垂直方向的均值为0,通过加权平均之后将会减小或者消除振幅,横轴方向因为始终吵着一个方向,所以进行指数加权平均没多大影响),公式如下:

(3)是否进行偏差修正影响不大,β取0.9是一个比较好的参数,学习率α会随之β的修改做一定的修改。

2.7RMSprop

(1)下图中,沿着b振幅大,说明db比较大:

(2)使用如下式子进行参数更新,理解:前两个式子平方之后将不会出现Momentum中权值平均后变为0的情况,哪边振幅大对应计算结果大,所以Sdw较小,Sdb较大;然后dw除以一个较小的数也就相当于取了较大的学习率,db除了一个较大的数,也就相当于取了一个较小的学习率,这就是RMSprop:

(3)最终会按照绿色的线优化:

2.8Adam 优化算法

(1)按照下列式子顺序即可得到Adam,他完美的讲上面提到的两种算法结合在了一起,需要注意一点是,Adam需要参数修正:

(2)参数涉及学习率α,β1(Momentum),β2(RMSprop),ε(RMSprop),其中学习率需要调整,其他三个参数使用下面图中的默认值就很好。

2.9学习率衰减(Learning rate decay)

(1)以下公式是一个学习率衰减的式子,其中包含了初始学习率a0好衰减率(decay-rate)两个参数需要调整:

(2)其他降低学习率的式子:

(3)还有离散的学习率,过一会变成原来的一半,还有不少人直接手动调整。

2.10局部最优的问题

(1)在低维(如二维)可能陷入局部最优,如下图:

(2)但是在高维中,比如20000维,陷入局部最优的概率是2-20000(即每一维度都梯度为零,几乎不可能),所以更多的时候是出现处在鞍点上:如下图:

(3)存在的问题是:在平稳端学习缓慢,上面提到的算法如Adam,能够更快的走出平稳区。

相关文章
|
6天前
|
算法 BI Serverless
基于鱼群算法的散热片形状优化matlab仿真
本研究利用浴盆曲线模拟空隙外形,并通过鱼群算法(FSA)优化浴盆曲线参数,以获得最佳孔隙度值及对应的R值。FSA通过模拟鱼群的聚群、避障和觅食行为,实现高效全局搜索。具体步骤包括初始化鱼群、计算适应度值、更新位置及判断终止条件。最终确定散热片的最佳形状参数。仿真结果显示该方法能显著提高优化效率。相关代码使用MATLAB 2022a实现。
|
1天前
|
机器学习/深度学习 数据采集
深度学习中的模型优化:策略与实践
【9月更文挑战第9天】本文深入探讨了在深度学习领域,如何通过一系列精心挑选的策略来提升模型性能。从数据预处理到模型架构调整,再到超参数优化,我们将逐一剖析每个环节的关键因素。文章不仅分享了实用的技巧和方法,还提供了代码示例,帮助读者更好地理解和应用这些优化技术。无论你是深度学习的初学者还是有经验的研究者,这篇文章都将为你提供宝贵的参考和启示。
|
9天前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
80 1
|
21天前
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能交通信号优化
使用Python实现深度学习模型:智能交通信号优化
51 9
|
19天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现深度学习模型:智能电动车充电站优化
使用Python实现深度学习模型:智能电动车充电站优化
30 4
|
16天前
|
机器学习/深度学习 数据采集 算法
深度学习中的模型优化策略
【8月更文挑战第26天】在深度学习的海洋中,模型优化是航行者手中不可或缺的罗盘。本文将带你探索如何通过各种策略调整和优化你的深度学习模型,使其在复杂数据的环境中航行得更加精确与高效。我们将从基础的数据预处理讲起,逐步深入到高级的正则化技术,再到最新的优化算法趋势,为你的深度学习之旅提供全方位的指导。
|
24天前
|
算法
基于GA-PSO遗传粒子群混合优化算法的CVRP问题求解matlab仿真
本文介绍了一种基于GA-PSO混合优化算法求解带容量限制的车辆路径问题(CVRP)的方法。在MATLAB2022a环境下运行,通过遗传算法的全局搜索与粒子群算法的局部优化能力互补,高效寻找最优解。程序采用自然数编码策略,通过选择、交叉、变异操作及粒子速度和位置更新,不断迭代直至满足终止条件,旨在最小化总行驶距离的同时满足客户需求和车辆载重限制。
|
2天前
|
算法 Python
群智能算法:灰狼优化算法(GWO)的详细解读
在优化问题中,寻找最优解是核心目标。灰狼优化算法(GWO)受到自然界灰狼狩猎行为和社会等级结构的启发,通过模拟Alpha(头狼)、Beta(助手狼)、Delta(支配狼)和Omega(普通狼)的角色,高效搜索最优解。本文详细解析GWO的原理与步骤,并提供Python代码实现,帮助读者理解并应用这一算法。
|
2天前
|
算法 Python
群智能算法:【WOA】鲸鱼优化算法详细解读
本文详细解读了鲸鱼优化算法(WOA),这是一种受鲸鱼捕食行为启发的新兴群体智能优化算法,具有强大的全局搜索能力和快速收敛速度。文章分为五个部分,分别介绍了引言、算法原理、主要步骤、特点及Python代码实现。通过模拟鲸鱼的捕食行为,该算法能够在复杂的优化问题中找到全局最优解。
|
14天前
|
数据采集 算法
基于PSO粒子群算法的三角形采集堆轨道优化matlab仿真
该程序利用PSO算法优化5个4*20矩阵中的模块采集轨迹,确保采集的物品数量及元素含量符合要求。在MATLAB2022a上运行,通过迭代寻优,选择最佳模块组合并优化轨道,使采集效率、路径长度及时间等综合指标最优。具体算法实现了粒子状态更新、需求量差值评估及轨迹优化等功能,最终输出最优轨迹及其相关性能指标。