梯度下降法

梯度下降法是机器学习中常用的优化算法,通过沿负梯度方向迭代来最小化损失函数。文章介绍了梯度的定义和方向导数的概念,接着详细讲解了随机梯度下降(SGD)、小批量梯度下降(Mini-batch)和批量梯度下降(BGD)的区别和特点,包括它们在学习效率、收敛速度和处理非凸函数能力上的差异。最后,提到了一些梯度下降的优化算法,如Momentum、Nesterov、Adagrad、Adadelta、RMSprop和Adam。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度下降法

1.原理

  • 方向导数
    如果函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在点 P ( x , y ) P(x,y) P(x,y)处可微,则函数在该点任一方向 L L L的方向导数都存在,且有 ∂ f ∂ l = ∂ f ∂ x cos ⁡ α + ∂ f ∂ y cos ⁡ β \frac{\partial f}{\partial l}=\frac{\partial f}{\partial x } \cos{\alpha}+\frac{\partial f}{\partial y}\cos{\beta} lf=xfcosα+yfcosβ α 、 β : 为 方 向 L 的 方 向 角 \alpha、\beta:为方向L的方向角 αβ:L方向导数表征了函数沿任意方向的变化的速度
  • 梯度
    设函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在平面区域 D D D内具有一阶连续偏导数,则对于每一个点 P ( x , y ) ∈ D P(x,y) \in D P(x,y)D,向量 ( ∂ f ∂ x , ∂ f ∂ y ) \left ( \frac{\partial f}{\partial x},\frac{\partial f}{\partial y} \right ) (xf,yf)为函数 z = f ( x , y ) z=f(x,y) z=f(x,y)在点 P P P处的梯度,记为grad f ( x , y ) f(x,y) f(x,y)
    某点的梯度是某点方向导数的最大值,因此梯度代表的方向是函数增长最快的方向,而沿负梯度方向为函数下降最快的方向。

2.梯度下降法

  • 初始化 θ \theta θ(随机初始化)
  • 沿负梯度方向迭代,更新 θ ⃗ \vec{\theta} θ 使 L ( θ ⃗ ) L(\vec{\theta}) L(θ )更小 θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗ \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} θ =θ αθ L(θ ) α − 学 习 率 ( 步 长 ) \alpha-学习率(步长) α()
  • 直观理解
    在这里插入图片描述

3.梯度下降法分类

  • 随机梯度下降(SGD)
    以单个样本的梯度作为权值 θ ⃗ \vec{\theta} θ 更新的方向
    l o s s = M e a n S q u a r e E r r o r loss=MeanSquareError loss=MeanSquareError
    θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗       L ( θ ⃗ ) = 1 2 ( y i ^ − y i ) 2 \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} \ \ \ \ \ L(\vec{\theta})=\frac{1}{2}(\hat{y_i}-y_i)^2 θ =θ αθ L(θ )     L(θ )=21(yi^yi)2 i − 表 示 某 一 个 样 本 i-表示某一个样本 i
    特点:学习效率高,训练速度快,由于目标函数震荡严重,对于非凸函数可能跳过局部最优而找到更优解,但学习过程随机性大,导致学习过程难以收敛。

  • mini-batch梯度下降
    以较小批次的样本的平均梯度作为权值 θ ⃗ \vec{\theta} θ 更新的方向
    l o s s = M e a n S q u a r e E r r o r loss=MeanSquareError loss=MeanSquareError
    θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗       L ( θ ⃗ ) = 1 2 b ∑ i = 1 b ( y i ^ − y i ) 2 \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} \ \ \ \ \ L(\vec{\theta})=\frac{1}{2b} \sum_{i=1}^{b}(\hat{y_i}-y_i)^2 θ =θ αθ L(θ )     L(θ )=2b1i=1b(yi^yi)2 b − 表 示 迷 你 批 包 含 的 样 本 个 数 、 i − 表 示 第 i 个 样 本 b-表示迷你批包含的样本个数、i-表示第i个样本 bii
    特点:是随机梯度下降与批梯度下降方法的折中,在提升学习效率的同时有效缓解学习过程的随机性,减弱了目标函数的震荡,也能在一定程度跳过局部最优而找到更优解,较为常用。

  • 批梯度下降(BGD)
    以所有样本的平均梯度作为权值 θ ⃗ \vec{\theta} θ 更新的方向
    l o s s = M e a n S q u a r e E r r o r loss=MeanSquareError loss=MeanSquareError
    θ ⃗ = θ ⃗ − α ∂ L ( θ ⃗ ) ∂ θ ⃗       L ( θ ⃗ ) = 1 2 n ∑ i = 1 n ( y i ^ − y i ) 2 \vec{\theta}=\vec{\theta}-\alpha\frac{\partial L(\vec{\theta})}{\partial \vec{\theta}} \ \ \ \ \ L(\vec{\theta})=\frac{1}{2n} \sum_{i=1}^{n} (\hat{y_i}-y_i)^2 θ =θ αθ L(θ )     L(θ )=2n1i=1n(yi^yi)2 n − 表 示 所 有 样 本 个 数 、 i − 表 示 第 i 个 样 本 n-表示所有样本个数、i-表示第i个样本 nii
    特点:将全部样本用于更新,能避免学习过程的随机性,确保模型的收敛,对于样本较多时,单次更新权值计算量大,训练速度慢,对于非凸函数容易陷入局部最优。

4.梯度下降优化算法

  • Momentum(动量)
  • Nesterov(动量+预测)
  • Adagrad
  • Adadelta
  • RMSprop
  • Adam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值