分享好友 最新动态首页 最新动态分类 切换频道
3.2 详解优化器的选择
2024-12-26 20:54

版权声明:本文为博主原创文章,未经博主允许不得转载。python版本为python3,实例都是经过实际验证。

要型对各种优化的选择游刃有余,得先理解什么是优化器。

深度学习的目标是通过不断改变网络参数,使得参数能够对输入做各种非线性变换拟合输出,本质上就是一个函数去寻找最优解,所以如何去更新参数是深度学习研究的重点。通常将更新参数的算法称为优化器,字面理解就是通过什么算法去优化网络模型的参数。常用的优化器就是梯度下降。

梯度下降算法特别容易理解,函数的梯度方向表示了函数值增长速度最快的方向,那么和它相反的方向就可以看作是函数值减少速度最快的方向。对机器学习模型优化的问题,当目标设定为求解目标函数最小值时,只要朝着梯度下降的方向前进,就能不断逼近最优值。

先来实现一个梯度下降的算法:

根据用多少样本量来更新参数将梯度下降分为三类:BGD,SGD,MBGD

(1)BGD:Batch gradient descent

每次使用整个数据集计算损失后来更新参数,很显然计算会很慢,占用内存大且不能实时更新,优点是能够收敛到全局最小点,对于异常数据不敏感。

(2)SGD:Stochastic gradient descent

这就是常说的随机梯度下降,每次更新度随机采用一个样本计算损失来更新参数,计算比较快,占用内存小,可以随时新增样本。这种方式对于样本中的异常数据敏感,损失函数容易震荡。容易收敛到局部极小值,但由于震荡严重,会跳出局部极小,从而寻找到接近全局最优的解。

(3)MBGD: Mini-batch gradient descent

最小批梯度更新,很好理解,将BGD和SGD结合在一起,每次从数据集合中选取一小批数据来计算损失并更新网络参数。

tensorflow中对应的函数是:

动量是,在优化求解的过程中,动量代表了之前迭代优化量,它将在后面的优化过程中持续发戚,推动目标值前进。拥有了动量, 一个已经结束的更新量不会立刻消失,只会以一定的形式衰减,剩下的能量将继续在优化中发挥作用。它反映的是梯度持续影响能能力。

首先看一下基于动量的梯度下降的代码:

绿框中pre_grad代表之前所有梯度之和,grad是当前梯度。红框中表明对之前梯度只和进行了一个discount的衰减,和step(或者说是学习率的作用是一样的)

它的功效主要表现在优化函数的梯度下降最快的方向不一定是接近函数最小值的方向,有个经典的例子:

y方向的梯度一直占据主要优势,函数的等高线图为:

其中中心的点表示了最优值。把等高线上的图像想象成地形图,从等高线的疏密程度可以看出,这个函数在u 轴方向十分陡峭,在z 轴方向则相对平缓。也就是说,函数在u 轴的方向导数比较大,在z 轴的方向导数比较小。在使用2中的梯度下降的时候,肯定会在y方向上不断的跳跃。例如:

这样的优化效果很不明显,这是由于在优化的过程中,朝向正确优化方向前进的步伐比较小,而无效的重复步伐比较多,优化的效率就很低。

如果在梯度下降中加入动量,这样y方向带来的震荡的梯度就会抵消,而x方向的梯度持续增强(因为x方向没有震荡),优化速度就会越来越快。效果如下:

但是优化效果还不是想的那么好,研究人员提出了Nesterov算法:

这个就有意思了,当前点的优化不仅依赖当前点和以前点的梯度信息,还利用了下一个点的梯度信息。通过以下一个点的位置来确定当前点对优化无用的梯度信息并减去它,从未增加优化速度。优化效果:

tensorflow中对应的函数是:

在实际应用中很少用前面两个,因为有各种变种,效果会更好。

4.1 Adagrad优化器

它的核心思想是对于常见的数据给予比较小的学习率去调整参数,对于不常见的数据给予比较大的学习率调整参数。它可以自动调节学习率,但迭代次数多的时候,学习率也会下降。

代码为:

tensorflow中的函数为:

4.2 Rmsprop

前面的Adagrad 算法有一个很大的问题,那就是随着优化的迭代次数不断增加,更新公式的分母项会变得越来越大。所以理论上更新量也会越来越小,这对优化十分不利。下面的算法Rmsprop就试图解决这个问题。在它的算法中, 分母的梯度平方和不再随优化而递增,而是做加权平均。

代码为:

tensorflow中函数为:

在优化表现上和Adagrad差不多,但是它的学习率比Ada grad 要小很多,而更新的速度也比A dagrad 快。

4.3 AdaDelta优化器

在之前的一些优化算法中,更新量都是由学习率乘以梯度向量组成,而Ada grad 方法在更新量计算的公式中除以了梯度累积量,这相当于打破了之前的更新量组成部分的平衡性,因此算法的作者认为如果分母加上了梯度累积量,那么分子也应该加上一些内容,这样的更新量才会和之前的算法一样保持平衡。更新量的“单位”才能恢复

正常。

代码为:

tensorflow中的函数为:

4.4 Adam优化器

Adam优化器即包含了动量算法的思想,也包含了Rm sProp 的自适应梯度的思想。

代码示意:

tensorflow中的函数为:

以上几种优化器对应的数学公式可以在原文中找找看看,能加深理解。在实际使用中,优化器的不同可能直接导致结果的不一样。我一般优先选择最后Adam,再选择其他优化器。RmsProp优化器的表现也十分的稳定。

最新文章
推广链接怎么做?生成制作方法详解?
在当今的互联网时代,推广链接已成为网络营销和产品推广的重要工具。一个好的推广链接不仅能提高点击率,还能帮助企业或个人快速获取目标用户。那么,推广链接怎么做?本文将为您详细解析生成制作方法。一、了解推广链接的基本概念推广链接
高权重网站收录,高权重网站快速收录技巧与专业平台推荐,提升SEO效果
高权重网站的收录问题,是众多优化推广者关注的焦点。大家普遍希望自己的内容能迅速被百度等搜索引擎收录,以便实现理想的展示和推广效果。下面提供一些与此相关的重要信息。快速收录的网站很关键。用site指令可查,在百度搜索框输入域名后
马斯克的“筷子夹火箭”等入选《科学》年度十大突破
今年2月,一项由欧洲科学家团队在线发表于《自然》的研究成果显示,人类首次在铁磁性及反铁磁性之外测量到一种被称为“交替磁性”的新磁性,这标志着基础物理学将开辟新篇章,对自旋电子学具有重大意义,也为未来更多高科技应用打开了大门
通达信软件下载,金融世界的便捷探索工具
摘要:通达信软件是一款便捷的探索金融世界的工具,提供实时行情、数据分析、交易决策等功能,帮助投资者更好地把握市场动态,实现投资目标。下载通达信软件,轻松掌握金融资讯,为您的投资之路保驾护航。本文目录导读:通达信软件下载通达
三季度全球手机销量前十来自三星、苹果、小米,有你那款吗?
[丁科技网观察]在持续回暖的全球智能手机市场,哪款手机是获得最多消费者选择的头牌?根据Counterpoint新近汇总的第三季度全球智能手机销量数据,前十中,苹果占四席,三星占五席,中国品牌小米让多数时间被三星、苹果“通吃”的前十出现
怎么注册淘宝网店一步步教你?淘宝开网店需要多少费用?
如何创建淘宝网店:详细指导第一步:准备所需材料在注册之前,需准备好相关个人或企业资料,如身份证、营业执照、银行账户等。第二步:访问淘宝官网通过浏览器登录淘宝网站,找到“开店入驻”或“免费开店”选项并点击。第三步:选择店铺
高效的10个Pandas函数,你都用过吗?
Pandas库主要应用于数据处理和数据分析场合。它提供了高效的数据结构和数据分析工具,可以帮助用户快速地处理和分析数据。以下是一些重要的Pandas函数:1. read_csv():从CSV文件中读取数据,并将其转换成DataFrame格式。2. head():显示Da
如何在AI+PPT工具赛道中夺得国内市场第一?数据分析和策略解读
在全球办公效率工具市场中,像素绽放PixelBloom正以其独特的定位和创新的产品定义,引领着AI与办公工具的融合。这家新兴公司专注于通过人工智能技术优化生产力工具,涵盖了内容创作、设计及PPT制作等多个关键领域。自2023年下半年推出的AiP
如何通过安全组策略有效防止DDoS攻击?
在当今数字化时代,已成为每个在线实体的首要关注点,分布式拒绝服务(DDoS)攻击,作为一种常见而又复杂的网络攻击方式,利用被控制的网络设备向目标发送海量请求,导致服务不可用,本文将探讨DDoS攻击的实施方法、影响以及,旨在帮助读者
太原治疗hpv一般要多少钱(排行榜实时更新)TOP榜“前五”-太原正规的hpv医院排名更新
太原治疗hpv一般要多少钱(排行榜实时更新)TOP榜“前五”-太原正规的hpv医院排名更新1、太原玛丽性病科,2、太原玛丽医院,3、太原治疗HPV医院,4、太原hpv医院,5、太原医院hpv诊疗中心,6、太原hpv定点诊疗中心。★★★★★线上专家免费问
相关文章
推荐文章
发表评论
0评