为了账号安全,请及时绑定邮箱和手机立即绑定

批量梯度下降

标签:
算法

常见的机器学习迭代方法有:

  • 梯度下降、随机梯度下降、小批量随机梯度下降
  • 动量法
  • Adagrad
  • RMSProp
  • Adadelta
  • Adam

下面主要介绍批量梯度下降(BGD)的工作原理:

假设损失函数 f:RnRf: \mathbb{R}^n \rightarrow \mathbb{R} 是连续可导的, 且 xRnx \in \mathbb{R}^n, 对于给定绝对值足够小的数 ϵ\epsilon,根据泰勒展开公式,我们得到以下的近似

f(x+ϵ)f(x)+ϵTxf(x).f(x + \epsilon) \approx f(x) + \epsilon^T \nabla_x f(x) .

这里 xf(x)\nabla_x f(x) 是函数 ffxx 处的梯度。我们可以找一个常数 η>0\eta > 0,使得 ηxf(x)||\eta \nabla_x f(x)|| 足够小,那么可以将 ϵ\epsilon 替换为 ηxf(x)-\eta \nabla_x f(x)得到

f(xηxf(x))f(x)ηxf(x)2.f(x - \eta \nabla_x f(x)) \approx f(x) - \eta ||\nabla_x f(x)||^2.

如果梯度的模 xf(x)0||\nabla_x f(x)|| \neq 0,那么

f(xηxf(x))f(x).f(x - \eta \nabla_x f(x)) \lesssim f(x).

因而,如果我们通过以下规则来更新 xx

xxηxf(x))x \leftarrow x - \eta \nabla_x f(x))

便可能使得 f(x)f(x) 的值被降低来达到最小化损失函数的目的。假设我们有 mm 个样本 D={(xi,yi)}imD = \{(x_i, y_i)\}_i^m, 可以定义了一个损失函数 f(θ)=1mi=1mg(xi;θ)yi2f(\theta) = \displaystyle \frac{1}{m} \sum_{i=1}^m ||g(x_i;\theta) - y_i||^2, 这里 g:RnRcg: \mathbb{R}^n \rightarrow \mathbb{R}^c, 当 c=1c=1 对应于回归任务, 当 c>1c > 1 对应于 cc 分类任务. gg 可以是一个神经网络模型, 也可以是一个简单的的线性映射。为了最小化 f(θ)f(\theta), 我们可以使用 SGD 优化方法:

  1. 设置学习率 η\eta, 且初始化参数 θ\theta
  2. 计算梯度 f(θ)\nabla f(\theta)
  3. 更新参数 θ\theta, 即 θθηf(θ))\theta \leftarrow \theta - \eta \nabla f(\theta)).
  4. 直至满足中止条件, 结束迭代, 获得最终的参数值 θ^\hat{\theta}.

mm 很大时,批量梯度下降效率很低,在实际的应用中一般使用小批量梯度下降优化方法。学习率 η\eta 对优化过程也十分重要,过大的学习率可能使得迭代无法收敛, 过小的学习率可能会导致训练速度过慢且陷入训练的平台期而无法获得理想的结果。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消