机器学习关于Learning Rate自动调整学习率

简介: 机器学习关于Learning Rate自动调整学习率

Learning Rate

机器学习尝试Train的第一个数据集Mnist,大部分都会从此入手。

image.png

当你的Loss在逐渐减小的时候,Gradient却不一定减小

image.png

怎样做才能将gradient descent(下面用gd代替)做的更好?需要一个更好版本的gd?


在之前做gd的时候,所有的参数都是设同样的Lr,这肯定是不够的。


Lr应该为每一个参数客制化


客制化的Lr(Learning Rate)

Learning Rate(以下用Lr代替)将决定Update参数时的步伐有多大。


Lr设置的太大,显然步伐很大。


不同参数需要不同的学习率


若在某一个方向上gd的值很小很小,非常平坦(如下图蓝色箭头),我们希望Lr调大一点。

image.png

相反,如果在某一个方向上(下图绿色箭头)很陡峭,那么,我们希望将Lr调小一点。

image.png

Learning Rate如何做自动调整?

我们需要修改原来的Gradient Descent的式子。


原本的gd公式,这里只更改一个参数θ θθ


原式

image.png

将上式原来的η ηη修改为下面

image.png

image.png

image.png

image.png

这个方法被用到Adagrad


到此,这并不是最终的Lr版本。Lr怎么实现动态调整呢?


再来看以下Error Surface


当在陡峭的(绿色箭头)地方,我们需要很小的Lr。


走到中间比较平滑的(红色箭头),我们需要很大的Lr。


和上面的不同,这是在同一个参数同一个方向上,也能够动态的调整Learning Rate!


image.png

就出现了以下的一个江湖失传的算法(找不到论文出处)


RMS Prop

第一步算g i 0 g_i^0g

i

0


和上面Root Mean Square是一样的,从第二步开始有所变化,其中α需要自己调。

image.png

image.png

image.png

由此就得到了一个目前比较常用的Optimization策略—Adam

Adam : RMSProp + Momentum

现在在Pytorch上有Adam的套件,直接可用,Adam的介绍在Pytorch里面的Doc讲的更加详细!

image.png

学习速率调度

Learning Rate Decay

通过不断调整η ηη的大小。训练结束后,我们离目的地很近,所以我们降低了学习率。

image.png

image.png

image.png

image.png

Summary

  • 从最原始的Gradient Descent版本

image.png

  • 进阶版Gradient Descent

image.png

image.png


相关文章
|
机器学习/深度学习 存储 算法
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(下)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
296 0
|
机器学习/深度学习 存储 数据可视化
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(上)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
383 0
|
机器学习/深度学习 存储 Linux
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
【机器学习 Azure Machine Learning】使用VS Code登录到Linux VM上 (Remote-SSH), 及可直接通过VS Code编辑VM中的文件
188 4
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
146 4
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
机器学习/深度学习 开发者 Python
Python 与 R 在机器学习入门中的学习曲线差异
【8月更文第6天】在机器学习领域,Python 和 R 是两种非常流行的编程语言。Python 以其简洁的语法和广泛的社区支持著称,而 R 则以其强大的统计功能和数据分析能力受到青睐。本文将探讨这两种语言在机器学习入门阶段的学习曲线差异,并通过构建一个简单的线性回归模型来比较它们的体验。
188 7
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
222 9
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
847 1
|
机器学习/深度学习 人工智能 算法
AI人工智能(ArtificialIntelligence,AI)、 机器学习(MachineLearning,ML)、 深度学习(DeepLearning,DL) 学习路径及推荐书籍
AI人工智能(ArtificialIntelligence,AI)、 机器学习(MachineLearning,ML)、 深度学习(DeepLearning,DL) 学习路径及推荐书籍
805 0
|
机器学习/深度学习
【机器学习】模型融合Ensemble和集成学习Stacking的实现
文章介绍了使用mlxtend和lightgbm库中的分类器,如EnsembleVoteClassifier和StackingClassifier,以及sklearn库中的SVC、KNeighborsClassifier等进行模型集成的方法。
150 1

热门文章

最新文章