0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解决机器学习中有关学习率的常见问题

倩倩 来源:不靠谱的猫 2020-04-15 11:52 次阅读

什么是学习率?它的用途是什么?

神经网络计算其输入的加权和,并通过一个激活函数得到输出。为了获得准确的预测,一种称为梯度下降的学习算法会在从输出向输入后退的同时更新权重。

梯度下降优化器通过最小化一个损失函数(L)来估计模型权重在多次迭代中的良好值,这就是学习率发挥作用的地方。它控制模型学习的速度,换句话说,控制权重更新到l最小点的速度。新(更新后)和旧(更新前)权重值之间的关系如下:

学习率是否为负值?

梯度L/w是损失函数递增方向上的向量。L/w是L递减方向上的向量。由于η大于0,因此是正值,所以-ηL/w朝L的减小方向向其最小值迈进。如果η为负值,则您正在远离最小值,这是它正在改变梯度下降的作用,甚至使神经网络无法学习。如果您考虑一个负学习率值,则必须对上述方程式做一个小更改,以使损失函数保持最小:

学习率的典型值是多少?

学习率的典型值范围为10 E-6和1。

梯度学习率选择错误的问题是什么?

达到最小梯度所需的步长直接影响机器学习模型的性能:

小的学习率会消耗大量的时间来收敛,或者由于梯度的消失而无法收敛,即梯度趋近于0。

大的学习率使模型有超过最小值的风险,因此它将无法收敛:这就是所谓的爆炸梯度。

梯度消失(左)和梯度爆炸(右)

因此,您的目标是调整学习率,以使梯度下降优化器以最少的步数达到L的最小点。通常,您应该选择理想的学习率,该速率应足够小,以便网络能够收敛但不会导致梯度消失,还应足够大,以便可以在合理的时间内训练模型而不会引起爆炸梯度。

除了对学习率的选择之外,损失函数的形状以及对优化器的选择还决定了收敛速度和是否可以收敛到目标最小值。

错误的权重学习率有什么问题?

当我们的输入是图像时,低设置的学习率会导致如下图所示的噪声特征。平滑、干净和多样化的特征是良好调优学习率的结果。是否适当地设置学习率决定了机器学习模型的预测质量:要么是进行良好的训练,要么是不收敛的网络。

绘制神经网络第一层产生的特征:不正确(左)和正确(右)设置学习率的情况

我们可以事先计算出最佳学习率吗?

通过理论推导,不可能计算出导致最准确的预测的最佳学习率。为了发现给定数据集上给定模型的最佳学习率值,必须进行观察和体验。

我们如何设置学习率?

以下是配置η值所需了解的所有内容。

使用固定学习率:

您确定将在所有学习过程中使用的学习率的值。这里有两种可能的方法。第一个很简单的。它由实践中常用的常用值组成,即0.1或0.01。第二种方法,您必须寻找适合您的特定问题和神经网络架构的正确学习率。如前所述,学习率的典型值范围是10 E-6和1。因此,你粗略地在这个范围内搜索10的各种阶数,为你的学习率找到一个最优的子范围。然后,您可以在粗略搜索所找到的子范围内以较小的增量细化搜索。你在实践中可能看到的一种启发式方法是在训练时观察损失,以找到最佳的学习率。

学习率时间schedule的使用:

与固定学习率不同,此替代方法要求根据schedule在训练epochs内改变η值。在这里,您将从较高的学习率开始,然后在模型训练期间逐渐降低学习率。在学习过程的开始,权重是随机初始化的,远远没有优化,因此较大的更改就足够了。随着学习过程的结束,需要更完善的权重更新。通常每隔几个epochs减少一次学习Learning step。学习率也可以在固定数量的训练epochs内衰减,然后对于其余的训练epochs保持较小的恒定值。

常见的两种方案。第一种方案,对于固定数量的训练epochs,每次损失平稳(即停滞)时,学习率都会降低。第二种方案,降低学习率,直到达到接近0的较小值为止。三种衰减学习率的方法,即阶跃衰减、指数衰减和1/t衰减。

在SGD中添加Momentum:

它是在经典的SGD方程中加入一项:

这个附加项考虑了由于Vt-1而带来的权重更新的历史,Vt-1是过去梯度的指数移动平均值的累积。这就平滑了SGD的进程,减少了SGD的振荡,从而加速了收敛。然而,这需要设置新的超参数γ。除了学习率η的挑战性调整外,还必须考虑动量γ的选择。γ设置为大于0且小于1的值。其常用值为0.5、0.9和0.99。

自适应学习率的使用:

与上述方法不同,不需要手动调整学习率。根据权重的重要性,优化器可以调整η来执行更大或更小的更新。此外,对于模型中的每个权重值,都确保了一个学习率。Adagrad,Adadelta,RMSProp和Adam是自适应梯度下降变体的例子。您应该知道,没有哪个算法可以最好地解决所有问题。

学习率配置主要方法概述

学习率的实际经验法则是什么?

学习率是机器学习模型所依赖的最重要的超参数。因此,如果您不得不设置一个且只有一个超参数,则必须优先考虑学习率。

机器学习模型学习率的调整非常耗时。因此,没有必要执行网格搜索来找到最佳学习率。为了得到一个成功的模型,找到一个足够大的学习率使梯度下降法有效收敛就足够了,但又不能大到永远不收敛。

如果您选择一种非自适应学习率设置方法,则应注意该模型将具有数百个权重(或者数千个权重),每个权重都有自己的损失曲线。因此,您必须设置一个适合所有的学习率。此外,损失函数在实际中往往不是凸的,而是清晰的u形。他们往往有更复杂的非凸形状局部最小值。

自适应方法极大地简化了具有挑战性的学习率配置任务,这使得它们变得更加常用。此外,它的收敛速度通常更快,并且优于通过非自适应方法不正确地调整其学习率的模型。

SGD with Momentum,RMSProp和Adam是最常用的算法,因为它们对多种神经网络架构和问题类型具有鲁棒性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100724
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62579
  • 机器学习
    +关注

    关注

    66

    文章

    8408

    浏览量

    132580
收藏 人收藏

    评论

    相关推荐

    zeta在机器学习中的应用 zeta的优缺点分析

    的应用(基于低功耗广域物联网技术ZETA) ZETA作为一种低功耗广域物联网(LPWAN)技术,虽然其直接应用于机器学习的场景可能并不常见,但它可以通过提供高效、稳定的物联网通信支持,间接促进
    的头像 发表于 12-20 09:11 202次阅读

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的
    的头像 发表于 11-16 01:07 388次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习机器
    的头像 发表于 11-15 09:19 441次阅读

    电路设计常见问题解答

    电路设计充满挑战,即便是最富经验的工程师也难免遭遇困惑与阻碍。《电路设计常见问题解答》是ADI精心筹备的一份实用指南,力求为您铺设一条清晰的学习与实践之路。
    的头像 发表于 11-05 17:02 429次阅读
    电路设计<b class='flag-5'>常见问题</b>解答

    人工智能、机器学习和深度学习存在什么区别

    人工智能指的是在某种程度上显示出类似人类智能的设备。AI有很多技术,但其中一个很大的子集是机器学习——让算法从数据中学习
    发表于 10-24 17:22 2480次阅读
    人工智能、<b class='flag-5'>机器</b><b class='flag-5'>学习</b>和深度<b class='flag-5'>学习</b>存在什么区别

    TVP5146常见问题

    电子发烧友网站提供《TVP5146常见问题.pdf》资料免费下载
    发表于 09-30 09:46 0次下载
    TVP5146<b class='flag-5'>常见问题</b>

    【「时间序列与机器学习」阅读体验】+ 简单建议

    这本书以其系统性的框架和深入浅出的讲解,为读者绘制了一幅时间序列分析与机器学习融合应用的宏伟蓝图。作者不仅扎实地构建了时间序列分析的基础知识,更巧妙地展示了机器学习如何在这一领域发挥巨
    发表于 08-12 11:21

    机器学习中的数据分割方法

    机器学习中,数据分割是一项至关重要的任务,它直接影响到模型的训练效果、泛化能力以及最终的性能评估。本文将从多个方面详细探讨机器学习中数据分割的方法,包括
    的头像 发表于 07-10 16:10 1732次阅读

    人工智能、机器学习和深度学习是什么

    在科技日新月异的今天,人工智能(Artificial Intelligence, AI)、机器学习(Machine Learning, ML)和深度学习(Deep Learning, DL)已成为
    的头像 发表于 07-03 18:22 1275次阅读

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见机器
    的头像 发表于 07-02 11:25 1003次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1340次阅读

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据中寻找一种相应的关系。Iris鸢尾花数据集是一个经典数据集,在统计学习机器学习领域都经常被
    的头像 发表于 06-27 08:27 1643次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>的经典算法与应用

    机器学习8大调参技巧

    今天给大家一篇关于机器学习调参技巧的文章。超参数调优是机器学习例程中的基本步骤之一。该方法也称为超参数优化,需要搜索超参数的最佳配置以实现最佳性能。
    的头像 发表于 03-23 08:26 619次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>8大调参技巧

    傅里叶变换基本原理及在机器学习应用

    连续傅里叶变换(CFT)和离散傅里叶变换(DFT)是两个常见的变体。CFT用于连续信号,而DFT应用于离散信号,使其与数字数据和机器学习任务更加相关。
    发表于 03-20 11:15 926次阅读
    傅里叶变换基本原理及在<b class='flag-5'>机器</b><b class='flag-5'>学习</b>应用

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型。
    的头像 发表于 01-08 09:25 968次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型