【Python机器学习】梯度下降法(三) 优矿(uqer.io)
来源:互联网 发布:数据库安全管理办法 编辑:程序博客网 时间:2024/06/16 04:19
前言
梯度下降法(Gradient Descent)是机器学习中最常用的优化方法之一,常用来求解目标函数的极值。 其基本原理非常简单:沿着目标函数梯度下降的方向搜索极小值(也可以沿着梯度上升的方向搜索极大值)。
在《【Python机器学习】梯度下降法(一)》中简单分析了学习率大小对搜索过程的影响,发现:
- 学习率较小时,收敛到极值的速度较慢。
- 学习率较大时,容易在搜索过程中发生震荡。
在《【Python机器学习】梯度下降法(二)》中简单分析了冲量对搜索过程的影响,发现:
- 在学习率较小的时候,适当的momentum能够起到一个加速收敛速度的作用。
- 在学习率较大的时候,适当的momentum能够起到一个减小收敛时震荡幅度的作用。
接下来介绍梯度下降法中的第三个超参数:decay
。
学习率衰减因子:decay
从上图可看出,学习率较大时,容易在搜索过程中发生震荡,而发生震荡的根本原因无非就是搜索的步长迈的太大了。
在使用梯度下降法求解目标函数 func(x) = x * x
的极小值时,更新公式为x += v
,其中每次x的更新量 v 为v = - dx * lr
,dx 为目标函数 func(x) 对 x 的一阶导数。如果能够让lr随着迭代周期不断衰减变小,那么搜索时迈的步长就能不断减少以减缓震荡。学习率衰减因子由此诞生:
lr_i = lr_start * 1.0 / (1.0 + decay * i)
上面的公式即为学习率衰减公式,其中 lr_i 为第 i 次迭代时的学习率, lr_start 为原始学习率, decay为 一个介于[0.0, 1.0]的小数。
- decay越小,学习率衰减地越慢,当decay = 0时,学习率保持不变。
- decay越大,学习率衰减地越快,当decay = 1时,学习率衰减最快。
- 在所有行中均可以看出,decay越大,学习率衰减地越快。
- 在第三行与第四行可看到,decay确实能够对震荡起到减缓的作用。
起始学习率为1.0
decay为[0.0, 0.001, 0.1, 0.5, 0.9, 0.99]
迭代周期为300
可以看到,当decay为0.1时,50次迭代后学习率已从1.0急剧降低到了0.2。如果decay设置得太大,则可能会收敛到一个不是极值的地方呢。
文章转载自:https://uqer.io/community/share/5820515e228e5ba8f5571953,欢迎大家热烈讨论哟!
0 0
- 【Python机器学习】梯度下降法(三) 优矿(uqer.io)
- 【Python机器学习】梯度下降法(一) | 优矿(uqer.io)
- 机器学习(三):梯度下降法
- 【Python机器学习】梯度下降法(二)
- 机器学习(三)线性回归和梯度下降法
- 机器学习(三)Loss函数优化:梯度下降法
- 机器学习(三):拉格朗日乘子与梯度下降法
- 机器学习----梯度下降法
- 机器学习--梯度下降法
- 机器学习---梯度下降法
- 机器学习-梯度下降法
- 机器学习之(三)梯度下降法的三种形式BGD、SGD以及MBGD
- 机器学习之(三)梯度下降法的三种形式BGD、SGD以及MBGD
- 《机器学习》 梯度下降
- 《机器学习》 梯度下降
- 机器学习 ~~ 梯度下降
- 机器学习 梯度下降
- 机器学习----梯度下降
- 四道Java基础题 你能对几道?
- 友盟推送集成的常见问题
- Android 版本检测、文件下载并更新
- 2016/11/30
- BZOJ 3940 AC自动机
- 【Python机器学习】梯度下降法(三) 优矿(uqer.io)
- 113. Path Sum II 这里要注意 引用 和 传值的区别,见注释
- 网络请求runloop
- Two Day(2)---运算符
- R语言实战笔记--第一章 R的安装配置及使用
- JAVA实现打印机打印字符串
- Gradle入门
- Google Analytics中analytics.js的使用
- JDK从1.7换成1.6之后,CMD查看仍是1.7