Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[机器学习必知必会]梯度下降法

[机器学习必知必会]梯度下降法

作者头像
TOMOCAT
发布于 2020-06-09 03:23:25
发布于 2020-06-09 03:23:25
5370
举报

前言

梯度下降法gradient descent是求解无约束最优化问题的一种最常用的方法,它是一种迭代算法,每一步需要求解目标函数的梯度向量。

问题抽象

上具有一阶连续偏导数的函数,要求解的无约束问题是:

, 其中

表示目标函数

的极小值点

关键概念

  • 迭代:选取适当初始值

,不断迭代更新

的 值,直至收敛

  • 梯度下降:负梯度方向是使函数值下降最快的方向,我们在迭代的每一步都以负梯度方向更新

的值

  • 收敛:给定一个精度

,在迭代的每一轮根据梯度函数

计算梯度

时认为收敛

  • 学习率:也叫做步长,表示在每一步迭代中沿着负梯度方向前进的距离

直观理解

以下图为例,开始时我们处于黑色圆点的初始值(记为

),我们需要尽快找到函数的最小值点,最快的方法就是沿着坡度最陡的方向往下走

图源:https://www.nxpic.org/article/id-330329

算法细节

由于

具有一阶连续导函数,若第

次迭代值为

,则可将

附近进行一阶泰勒展开:

其中

的梯度。 接着我们求出第

次的迭代值

:

其中

是搜索方向,取负梯度方向

是步长,需满足:

算法实现

  • 输入:目标函数

,梯度函数

,计算精度

  • 输出

的极小值点

  • 步骤:
  1. 取初始值

,置

  1. 计算
  1. 计算梯度

,当

时停止迭代,令

;否则,令

,求

,使

,计算

,当

时停止迭代,令

  1. 否则,令

,回到步骤3

算法调优

  • 学习率:学习率太小时收敛过慢,但太大时又会偏离最优解
  • 初始值:当损失函数是凸函数时,梯度下降法得到的解是全局最优解;当损失函数是非凸函数时,得到的解可能是局部最优解,需要随机选取初始值并在多个局部最优解之间比较
  • 归一化:如果不归一化,会收敛得比较慢,典型的情况就是出现“之”字型的收敛路径

注意事项

  • 当目标函数是凸函数时,梯度下降法是全局的最优解,一般情况下梯度下降法的解不一定是全局最优解
  • 梯度下降法的收敛速度未必是最快的

Reference

[1] 图源:https://www.nxpic.org/article/id-330329 [2] 统计学习方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习 学习笔记(3) 梯度下降
梯度下降法是一种常用的一阶优化方法,是求解无约束优化问题最简单、最经典的方法之一。
2018/09/03
4470
机器学习 学习笔记(3) 梯度下降
牛顿法和梯度下降法_最优化次梯度法例题
我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。
全栈程序员站长
2022/09/20
1.1K0
牛顿法和梯度下降法_最优化次梯度法例题
理解梯度下降法
最优化问题在机器学习中有非常重要的地位,很多机器学习算法最后都归结为求解最优化问题。在各种最优化算法中,梯度下降法是最简单、最常见的一种,在深度学习的训练中被广为使用。在本文中,SIGAI将为大家系统的讲述梯度下降法的原理和实现细节问题。
SIGAI学习与实践平台
2018/08/07
8990
理解梯度下降法
梯度下降法原理与python实现
梯度下降法(Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。如果相反地向梯度正方向迭代进行搜索,则会接近函数的局部极大值点;这个过程则被称为梯度上升法。 本文将从最优化问题谈起,回顾导数与梯度的概念,引出梯度下降的数据推导;概括三种梯度下降方法的优缺点,并用Python实现梯度下降(附源码)。 1 最优化问题 最优化问题是求解函数极值的问题,包括极大值和
用户1432189
2019/03/04
2.1K0
梯度下降法原理与python实现
梯度下降法原理与仿真分析||系列(1)
梯度下降法(Gradient Descent)也称为最速下降法(Steepest Descent),是法国数学家奥古斯丁·路易·柯西 (Augustin Louis Cauchy) 于1847年提出来,它是最优化方法中最经典和最简单的一阶方法之一。梯度下降法由于其较低的复杂度和简单的操作而在很多领域得到广泛研究和应用,如机器学习。由梯度下降法衍生了许多其他算法,如次梯度下降法,近端梯度下降法,随机梯度下降法,回溯梯度发,动量加速梯度法等等。本文只介绍最基础的梯度下降法原理和理论分析,与此同时,通过仿真来说明梯度下降法的优势和缺陷。其他重要的梯度下降衍生方法会持续更新,敬请关注。
huofo
2022/03/17
9850
梯度下降法原理与仿真分析||系列(1)
最小二乘法和梯度下降法有哪些区别? 以及梯度下降法Python实现
相同 1.本质相同:两种方法都是在给定已知数据(independent & dependent variables)的前提下对dependent variables算出出一个一般性的估值函数。然后对给定新数据的dependent variables进行估算。 2.目标相同:都是在已知数据的框架内,使得估算值与实际值的总平方差尽量更小(事实上未必一定要使用平方),估算值与实际值的总平方差的公式为:
bear_fish
2018/09/19
3.8K0
最小二乘法和梯度下降法有哪些区别? 以及梯度下降法Python实现
梯度下降法及其Python实现
梯度下降法及其Python实现 基本介绍 梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最优化问题最常用的方法,它是一种迭代方法,每一步主要的操作是求解目标函数的梯度向量,将当前位置的负梯度方向作为搜索方向。 梯度下降法特点:越接近目标值,步长越小,下降速度越慢。 下面将通过公式来说明梯度下降法。 建立模型为拟合函数h(θ) : 接下来的目标是将该函数通过样本的拟合出来,得到最佳的函数模型。因此构建损失函数J(θ)(目的是通过求解minJ(θ)
企鹅号小编
2018/02/27
1.8K0
梯度下降法及其Python实现
[机器学习必知必会]机器学习是什么
Tom Mitchell将机器学习任务定义为任务Task、训练过程Training Experience和模型性能Performance三个部分。 以分单引擎为例,我们可以将提高分单效率这个机器学习任务抽象地描述为:
TOMOCAT
2020/06/09
8800
[机器学习必知必会]机器学习是什么
梯度下降(Gradient Descent)小结
    在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。
刘建平Pinard
2018/08/14
3670
梯度下降(Gradient Descent)小结
机器学习(九)梯度下降算法1 梯度2 梯度下降法
1 梯度 1.1 定义 梯度:是一个矢量,其方向上的方向导数最大,其大小正好是此最大方向导数。 关于梯度的更多介绍请看:如何直观形象的理解方向导数与梯度以及它们之间的关系? 1.2 计算 一个
致Great
2018/04/11
1.2K0
机器学习(九)梯度下降算法1 梯度2 梯度下降法
梯度下降法(BGD & SGD & Mini-batch SGD)
优化思想:用当前位置的负梯度方向作为搜索方向,亦即为当前位置下降最快的方向,也称“最速下降法”。越接近目标值时,步长越小,下降越慢。
用户3636924
2018/12/02
4.1K0
梯度下降法(BGD & SGD & Mini-batch SGD)
梯度下降法(Gradient Descent)
梯度下降法(Gradient Descent)是一种优化算法,其起源可以追溯到微积分学中的梯度概念。在机器学习和深度学习领域,为了找到损失函数的最小值,研究者们提出了多种优化算法,其中梯度下降法是最基础和最常用的方法之一。
jack.yang
2025/04/05
1680
什么是梯度下降
梯度下降(Gradient Descent GD)简单来说就是一种寻找目标函数最小化的方法,它利用梯度信息,通过不断迭代调整参数来寻找合适的目标值。 本文将介绍它的原理和实现。
oYabea
2020/09/07
2.3K0
还不了解梯度下降法?看完这篇就懂了!
那么其实可以总结出关于“如何找到函数f(x)”的方法论。可以看作是机器学习的“三板斧”:
木东居士
2019/12/10
2.6K0
还不了解梯度下降法?看完这篇就懂了!
图解AI数学基础 | 微积分与最优化
教程地址:http://www.showmeai.tech/tutorials/83
ShowMeAI
2022/02/25
6080
图解AI数学基础 | 微积分与最优化
【机器学习算法系列】机器学习中梯度下降法和牛顿法的比较
在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解。在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法。由于两种方法有些相似,我特地拿来简单地对比一下。下面的内容需要读者之前熟悉两种算法。
统计学家
2019/04/10
1.1K0
【机器学习算法系列】机器学习中梯度下降法和牛顿法的比较
机器学习_最优化
是关于Θ的一个函数,我们当前所处的位置为Θ0点,要从这个点走到J的最小值点\nabla 是梯度,\alpha是学习率或者步长
AomanHao
2022/01/13
6970
【AI】浅谈梯度下降算法(实战篇)
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)  是最常采用的方法之一,另一种常用的方法是最小二乘法。
sidiot
2023/08/31
5620
【AI】浅谈梯度下降算法(实战篇)
机器学习概念:梯度下降
机器学习中大部分都是优化问题,大多数的优化问题都可以使用梯度下降/上升法处理,所以,搞清楚梯度算法就非常重要。
YingJoy_
2018/04/04
1.5K2
机器学习概念:梯度下降
【机器学习基础】 | 各种梯度下降优化算法回顾和总结
论文标题:An overview of gradient descent optimization algorithms 原文链接:https://arxiv.org/pdf/1609.04747.pdf Github:NLP相关Paper笔记和代码复现(https://github.com/DengBoCong/nlp-paper) 说明:阅读论文时进行相关思想、结构、优缺点,内容进行提炼和记录,论文和相关引用会标明出处,引用之处如有侵权,烦请告知删除。
统计学家
2021/10/11
1.6K0
相关推荐
机器学习 学习笔记(3) 梯度下降
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档