梯度下降算法的工作原理

2020 年 11 月 2 日 极市平台
↑ 点击 蓝字  关注极市平台

作者丨 磐怼怼
来源丨深度学习与计算机视觉
编辑丨极市平台

极市导读

 

梯度下降算法是工业中最常用的机器学习算法之一,但也是很多新手难以理解的算法之一。如果你刚刚接触机器学习,那么梯度下降算法背后的数学原理是比较难理解的。本文将帮助你了解梯度下降算法背后的工作原理。 >>加入极市CV技术交流群,走在计算机视觉的最前沿


介绍

在本文中,我们会了解损失函数的作用,梯度下降的工作原理,以及如何选择学习参数。

什么是损失函数

它是一个函数,用于衡量模型对任何给定数据的性能。损失函数将预测值与期望值之间的误差进行量化,并以单个实数的形式表示出来。
在对初始参数进行假设后,我们会计算了损失函数,以降低损失函数为目标,利用梯度下降算法对给定数据进行参数修正。下面是它的数学表示:

什么是梯度下降

假设你在玩一个游戏,玩家在山顶,他们要求到达山的最低点,此外,他们还蒙着眼睛,那么,你认为怎样才能到达最低点呢?
最好的办法是观察地面,找出地面下降的地方,从这个位置开始,向下降方向迈出一步,重复这个过程,直到到达最低点。
梯度下降法是一种求解函数局部极小值的迭代优化算法。
要用梯度下降法求函数的局部极小值,必须选择与当前点处函数的负梯度(远离梯度)方向。如果我们采取与梯度的正方向,我们将接近函数的局部极大值,这个过程称为梯度上升。
梯度下降最初是由柯西在1847年提出的,它也被称为最速下降。
梯度下降算法的目标是最小化给定函数(比如损失函数)。为了实现这一目标,它迭代地执行两个步骤:
  1. 计算梯度(斜率),函数在该点的一阶导数
  2. 在与梯度相反的方向上移动一步(移动)
Alpha被称为学习率-优化过程中的一个调整参数,它决定了步长。

绘制梯度下降算法

当我们有一个单一的参数(θ),我们可以在y轴上绘制因变量损失值,并在x轴上绘制θ。如果有两个参数,我们可以进行三维绘图,其中一个轴上有损失值,另两个轴上有两个参数(θ)。
它也可以通过使用等高线来可视化,这会显示一个二维的三维绘图,其中包括沿两个轴的 参数和等高线的响应值。远离中心的响应值增加,并且随着环的增加而增加。

α-学习率

有了前进的方向之后,现在我们必须决定我们要采取的步大小。
必须谨慎选择,以达到局部最小值。
  • 如果学习率太高,我们可能会超过最小值,而不会达到最小值
  • 如果学习率太低,训练时间可能会太长
a) 学习率最优,模型收敛到最小
b) 学习速度太小,需要更多的时间,但会收敛到最小值
c) 学习率高于最优值,较慢速度的收敛(1/c<η<2/c)
d) 学习率非常大,它会过度偏离,偏离最小值,学习性能下降
注:随着梯度减小而向局部最小值移动,步长减小,因此,学习速率(alpha)可以在优化过程中保持不变,而不需要迭代地改变。

局部最小值

成本函数可以由许多最小点组成。梯度可以落在任何一个极小值上,这取决于初始点(即初始参数θ)和学习速率,因此,在不同的起点和学习率下,优化可以收敛到不同的点。

梯度下降的Python代码实现



结尾

一旦我们调整了学习参数(alpha)并得到了最优的学习速率,我们就可以开始迭代了,直到我们收敛到局部最小值。
参考链接:https://www.analyticsvidhya.com/blog/2020/10/how-does-the-gradient-descent-algorithm-work-in-machine-learning/

推荐阅读


添加极市小助手微信(ID : cvmart2),备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳),即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群:每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~

△长按添加极市小助手

△长按关注极市平台,获取 最新CV干货

觉得有用麻烦给个在看啦~   
登录查看更多
6

相关内容

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。
最新《非凸优化理论》进展书册,79页pdf
专知会员服务
108+阅读 · 2020年12月18日
【Google】梯度下降,48页ppt
专知会员服务
80+阅读 · 2020年12月5日
专知会员服务
28+阅读 · 2020年10月24日
【NeurIPS 2020】大规模分布式鲁棒优化方法
专知会员服务
25+阅读 · 2020年10月13日
专知会员服务
42+阅读 · 2020年7月29日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
深度学习优化算法总结(SGD,AdaGrad,Adam等)
极市平台
33+阅读 · 2019年4月30日
从泰勒展开来看梯度下降算法
深度学习每日摘要
13+阅读 · 2019年4月9日
面试时让你手推公式不在害怕 | 梯度下降
计算机视觉life
14+阅读 · 2019年3月27日
如何改进梯度下降算法
论智
9+阅读 · 2018年4月19日
干货|EM算法原理总结
全球人工智能
17+阅读 · 2018年1月10日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
8+阅读 · 2017年12月25日
干货|代码原理教你搞懂SGD随机梯度下降、BGD、MBGD
机器学习研究会
12+阅读 · 2017年11月25日
深度学习之DNN与反向传播算法
机器学习算法与Python学习
4+阅读 · 2017年9月11日
最大熵原理(一)
深度学习探索
12+阅读 · 2017年8月3日
精品公开课 | 随机梯度下降算法综述
七月在线实验室
13+阅读 · 2017年7月11日
Arxiv
0+阅读 · 2021年1月22日
Arxiv
101+阅读 · 2020年3月4日
Deep Learning in Video Multi-Object Tracking: A Survey
Arxiv
57+阅读 · 2019年7月31日
VIP会员
相关VIP内容
最新《非凸优化理论》进展书册,79页pdf
专知会员服务
108+阅读 · 2020年12月18日
【Google】梯度下降,48页ppt
专知会员服务
80+阅读 · 2020年12月5日
专知会员服务
28+阅读 · 2020年10月24日
【NeurIPS 2020】大规模分布式鲁棒优化方法
专知会员服务
25+阅读 · 2020年10月13日
专知会员服务
42+阅读 · 2020年7月29日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
相关资讯
深度学习优化算法总结(SGD,AdaGrad,Adam等)
极市平台
33+阅读 · 2019年4月30日
从泰勒展开来看梯度下降算法
深度学习每日摘要
13+阅读 · 2019年4月9日
面试时让你手推公式不在害怕 | 梯度下降
计算机视觉life
14+阅读 · 2019年3月27日
如何改进梯度下降算法
论智
9+阅读 · 2018年4月19日
干货|EM算法原理总结
全球人工智能
17+阅读 · 2018年1月10日
算法优化|梯度下降和随机梯度下降 — 从0开始
全球人工智能
8+阅读 · 2017年12月25日
干货|代码原理教你搞懂SGD随机梯度下降、BGD、MBGD
机器学习研究会
12+阅读 · 2017年11月25日
深度学习之DNN与反向传播算法
机器学习算法与Python学习
4+阅读 · 2017年9月11日
最大熵原理(一)
深度学习探索
12+阅读 · 2017年8月3日
精品公开课 | 随机梯度下降算法综述
七月在线实验室
13+阅读 · 2017年7月11日
Top
微信扫码咨询专知VIP会员