首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习 学习笔记(3) 梯度下降

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

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

梯度下降法

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

梯度下降算法如下:

输入:目标函数

f(x)
f(x)

,梯度函数

g(x)=\nabla f(x)
g(x)=\nabla f(x)

,计算精度

\varepsilon
\varepsilon

输出:

f(x)
f(x)

的极小点

x^*
x^*

(1)取初始值

x^{(0)}\in \bold R^n
x^{(0)}\in \bold R^n

,置为k=0

(2)计算

f(x^{(k)})
f(x^{(k)})

(3)计算梯度

g_k=g(x^{(k)})
g_k=g(x^{(k)})

,当

||g_k||<\varepsilon
||g_k||<\varepsilon

时,停止迭代,令

x^*=x^{(k)}
x^*=x^{(k)}

,否则,令

p_k=-g(x^{(k)})
p_k=-g(x^{(k)})

,求

\lambda _k
\lambda _k

,使

f(x^{(k)}+\lambda _kp_k)=\min \limits_{\lambda \geqslant 0}f(x^{(k)}+\lambda p_k)
f(x^{(k)}+\lambda _kp_k)=\min \limits_{\lambda \geqslant 0}f(x^{(k)}+\lambda p_k)

(4) 令

x^{(k+1)}=x^{(k)}+\lambda _kp_k
x^{(k+1)}=x^{(k)}+\lambda _kp_k

,计算

f(x^{(k+1)})
f(x^{(k+1)})

,当

||f(x^{(k+1)})-f(x^{(k)})||< \varepsilon
||f(x^{(k+1)})-f(x^{(k)})||< \varepsilon

||x^{(k+1)}-x^{(k)}||< \varepsilon
||x^{(k+1)}-x^{(k)}||< \varepsilon

时,停止迭代,令

x^*=x^{(k+1)}
x^*=x^{(k+1)}

(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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 梯度下降法
  • 批量梯度下降法(Batch Gradient Descent,简称BGD)
  • 随机梯度下降法(Stochastic Gradient Descent)
  • 小批量梯度下降法(Mini-Batch Gradient Descent)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档