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

机器学习 学习笔记(3) 梯度下降

作者头像
发布于 2018-09-03 10:12:44
发布于 2018-09-03 10:12:44
4510
举报
文章被收录于专栏:WD学习记录WD学习记录

梯度下降法

梯度下降法是一种常用的一阶优化方法,是求解无约束优化问题最简单、最经典的方法之一。

梯度下降算法如下:

输入:目标函数

,梯度函数

,计算精度

输出:

的极小点

(1)取初始值

,置为k=0

(2)计算

(3)计算梯度

,当

时,停止迭代,令

,否则,令

,求

,使

(4) 令

,计算

,当

时,停止迭代,令

(5)否则,令k=k+1,转(3)

当目标函数是凸函数时,梯度下降法的解释全局最优解,一般情况下,其解不保证是全局最优解,梯度下降法的收敛速度也未必是很快的。

基于梯度的搜索是使用最为广泛的参数寻优方法,但是会陷入局部极小。

批量梯度下降法(Batch Gradient Descent,简称BGD)

批量梯度下降法是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新。

在整个数据集上(求出罚函数 J(θ 并)对每个参数 θ 求目标函数 J(θ) 的偏导数:

优点:全局最优解,易于并行实现

缺点:训练过程慢,对于较大的内存无法容纳的数据集,该方法否无法被使用

随机梯度下降法(Stochastic Gradient Descent

在每次更新参数时,随机选取一个样本,计算惩罚函数,然后求出相应的偏导数:

优点:训练速度快

缺点:SGD收敛过程中存在波动,会帮助跳出局部极小值,会让收敛到特定最小值的过程复杂化,因为该方法可能持续波动而不收敛,当慢慢降低学习率时,SGD和BGD表现出了相似的收敛过程。

小批量梯度下降法(Mini-Batch Gradient Descent

更新每一参数时,使用一部分样本来更新,对n个样本构成的一批数据,计算惩罚函数并求导:

这种方法能够降低更新参数的方差,使得收敛过程更加稳定,能够利用最新的深度学习程序库中高度优化的矩阵运算器,能够高效地求出每小批数据的梯度。

梯度下降的优化算法:

  • 动量法
  • Nesterov 加速梯度法
  • Adagrad 法
  • Adadelta 法
  • RMSprop 法
  • Adam

对SGD进行平行计算或者分布式计算

  • Hogwild!
  • Downpour SGD
  • 容忍延迟的 SGD 算法
  • TensorFlow
  • 弹性平均梯度下降法(Elastic Averaging SGD)

优化SHD的其它手段:

  • 重排法(Shuffling)和递进学习(Curriculum Learning)
  • 批量标准化(Batch Normalization)
  • 早停(Early Stopping)
  • 梯度噪声(Gradient Noise)

参考:

  1. 机器学习
  2. 《统计学习方法》
  3. 深度解读最流行的优化算法:梯度下降
  4. 三种梯度下降的方式:批量梯度下降、小批量梯度下降、随机梯度下降
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年08月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习入门 6-9 有关梯度下降法的更多深入讨论
本系列是《玩转机器学习教程》一个整理的视频笔记。这是梯度下降法的最后一小节,这一小节对梯度下降法做一个总结。
触摸壹缕阳光
2019/11/13
1.4K4
机器学习入门 6-9 有关梯度下降法的更多深入讨论
[机器学习基础二] 深度学习优化器一览
Hello大家好,本期将和大家一起分享和讨论一下深度学习中的一个基础组件:Optimizer,也就是优化器。这是一个在炼丹过程中容易被忽视,但其实又非常重要的组件。接下来几分钟里,让我们重温优化器的发展和应用,希望对大家有所帮助。本期是机器学习基础三篇中的第二篇,希望大家多多支持~
朴素人工智能
2021/01/12
8680
[机器学习基础二] 深度学习优化器一览
梯度下降法的三种形式BGD、SGD、MBGD及python实现
        梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent)、随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent)。其中小批量梯度下降法也常用在深度学习中进行模型的训练。接下来,我们将对这三种不同的梯度下降法进行理解。 为了便于理解,这里我们将使用只含有一个特征的线性回归来展开。
Flaneur
2020/03/25
3.7K0
机器学习 | 梯度下降种类及对比
批量梯度下降法(Batch Gradient Descent,BGD)是梯度下降法最常用的形式,具体做法:在更新参数时使用所有的样本来进行更新。
week
2021/05/06
4890
【AI】浅谈梯度下降算法(实战篇)
在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)  是最常采用的方法之一,另一种常用的方法是最小二乘法。
sidiot
2023/08/31
5840
【AI】浅谈梯度下降算法(实战篇)
机器学习入门:梯度下降算法(下)
批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新。
小言从不摸鱼
2024/09/10
1610
机器学习入门:梯度下降算法(下)
【深度学习】机器学习概述(二)优化算法之梯度下降法(批量BGD、随机SGD、小批量)
机器学习:通过算法使得机器能从大量数据中学习规律从而对新的样本做决策。   机器学习是从有限的观测数据中学习(或“猜测”)出具有一般性的规律,并可以将总结出来的规律推广应用到未观测样本上。
Qomolangma
2024/07/30
3170
【深度学习】机器学习概述(二)优化算法之梯度下降法(批量BGD、随机SGD、小批量)
理解梯度下降在机器学习模型优化中的应用
本文介绍了梯度下降算法的起源、批量梯度下降、随机梯度下降和小批量梯度下降,以及它们在机器学习中的重要性。通过这些算法,可以优化模型权系数,从而提高模型的性能。
chaibubble
2018/01/02
1.8K0
理解梯度下降在机器学习模型优化中的应用
深度学习相关概念:3.梯度下降
  在深度学习中,你一定听说过“梯度下降”,在绝大部分的神经网络模型里有直接或者间接地使用了梯度下降的算法。深度学习的核心:就是把数据喂给一个人工设计的模型,然后让模型自动的“学习”,通过反向传播进而优化模型自身的各种参数,最终使得在某一组参数下该模型能够最佳的匹配该学习任务。那么如果想要这个模型达到我们想要的效果,这个“学习”的过程就是深度学习算法的关键。梯度下降法就是实现该“学习”过程的一种最常见的方式,尤其是在深度学习(神经网络)模型中,BP反向传播方法的核心就是对每层的权重参数不断使用梯度下降来进行优化。虽然不同的梯度下降算法在具体的实现细节上会稍有不同,但是主要的思想是大致一样的。
AiCharm
2023/05/15
3980
深度学习相关概念:3.梯度下降
女朋友问我什么是最优化原理(上)——系列连载(9)
梯度下降是一种简单、好用、经典的使用一阶信息的最优化方法(意味着相对低廉的计算成本),其基本原理可以想象为一个下山问题,当下降方向与梯度方向一致时,目标函数的方向导数最大,即此时目标函数在当前起点位置的下降速度最快。
lujohn3li
2020/03/04
8110
女朋友问我什么是最优化原理(上)——系列连载(9)
梯度下降法与优化算法
在机器学习和深度学习中,优化算法是训练模型的核心组成部分。优化算法用于调整模型的参数,以最小化损失函数,从而提高模型的预测准确性。梯度下降法(Gradient Descent)是最基本也是最常用的优化方法,但随着技术的发展,许多改进的优化算法应运而生,其中包括SGD(Stochastic Gradient Descent)、Adam等。本文将详细介绍梯度下降法及其变种,帮助你理解如何通过优化算法提升模型性能。
LucianaiB
2025/01/21
3660
梯度下降(Gradient Descent)小结
    在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。这里就对梯度下降法做一个完整的总结。
刘建平Pinard
2018/08/14
3880
梯度下降(Gradient Descent)小结
Pytorch_第七篇_深度学习 (DeepLearning) 基础 [3]---梯度下降
在上一篇“深度学习 (DeepLearning) 基础 [2]---神经网络常用的损失函数”中我们介绍了神经网络常用的损失函数。本文将继续学习深度学习的基础知识,主要涉及基于梯度下降的一类优化算法。首先介绍梯度下降法的主要思想,其次介绍批量梯度下降、随机梯度下降以及小批量梯度下降(mini-batch)的主要区别。
用户1483438
2022/04/06
3670
浅谈梯度下降与模拟退火算法
简单来说,梯度下降就像是从山顶出发,到达最低的谷底,但下山过程中可能误入歧途,走入不是最低的谷底,即局部最优。
唔仄lo咚锵
2022/11/30
8640
浅谈梯度下降与模拟退火算法
机器学习算法(1)--梯度下降法的几种形式
阅读目录 1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD 4. 总结   在应用机器学习算法时,我们通常采用梯度下降法来对采用的算法进行训练。其实,常用的梯度下
IT派
2018/03/29
8610
机器学习算法(1)--梯度下降法的几种形式
算法金 | 再见!!!梯度下降(多图)
今天把达叔 6 脉神剑给佩奇了,上 吴恩达:机器学习的六个核心算法! ——梯度下降
算法金
2024/06/19
1310
算法金 | 再见!!!梯度下降(多图)
机器学习10:梯度优化与L正则化稀疏性
在用梯度下降法求解优化问题时,最重要的操作就是计算目标函数的梯度。对于一些比较复杂的机器学习模型,如深度神经网络,目标函数的梯度公式也非常复杂,很容易写错。因此,在实际应用中,写出计算梯度的代码之后,通常需要验证自己写的代码是否正确。
用户5473628
2019/08/08
2.2K0
牛顿法和梯度下降法_最优化次梯度法例题
我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。随着学习的深入,博主越来越发现最优化方法的重要性,学习和工作中遇到的大多问题都可以建模成一种最优化模型进行求解,比如我们现在学习的机器学习算法,大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。
全栈程序员站长
2022/09/20
1.1K0
牛顿法和梯度下降法_最优化次梯度法例题
线性回归的求解:矩阵方程和梯度下降、数学推导及NumPy实现
我的网站公式显示效果更好:https://lulaoshi.info/machine-learning/linear-model/minimise-loss-function.html,欢迎访问。
PP鲁
2020/05/26
2.5K0
线性回归的求解:矩阵方程和梯度下降、数学推导及NumPy实现
批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)
在机器学习中,对于很多监督学习模型,需要对原始的模型构建损失函数,接下来便是通过优化算法对损失函数进行优化,以便找到最优的参数。 梯度下降法作为机器学习中较常使用的优化算法,在其求解过程中,只需要求解损失函数的一阶导数,计算的代价比较小。 基本思想可以理解为:我们从山上的某一点出发,找一个最抖的坡走一步(也就是找梯度方向),到达一个点之后,再找最陡的坡,再走一步,直到不断的走,走到最低点(最小花费函数收敛点)
全栈程序员站长
2022/09/30
3.8K0
批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)
推荐阅读
相关推荐
机器学习入门 6-9 有关梯度下降法的更多深入讨论
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档