[机器学习] 1. 梯度下降 Gradient Descent 与随机梯度下降 Stochastic Gradient Descent

这篇具有很好参考价值的文章主要介绍了[机器学习] 1. 梯度下降 Gradient Descent 与随机梯度下降 Stochastic Gradient Descent。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ML Theory 太魔怔了!!!!!

从微积分课上我们学到

  • 对一个 \(\mathscr C^2\) 函数,其二阶泰勒展开的皮亚诺余项形式

    \[f(\bm w') = f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w\rangle + o(\|\bm w' - \bm w\|) \]

    这说明只要 \(\bm w'\)\(\bm w\) 挨得足够接近,我们就可以用 \(f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle\) 来逼近 \(f(\bm w')\)

现在我们想定量描述这个逼近过程,来说明梯度下降 (gredient descent, GD) 的收敛性及其速率。因此考虑其拉格朗日余项

\[f(\bm w') = f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w\rangle + \frac{g(\bm \xi)}2 \|\bm w' - \bm w\|^2 \]

我们来定量描述 \(g\) 的性质。

由于梯度下降要执行多轮,因此会有不同的 \(\bm w, \bm w'\),所以性质需要适用于所有位置。

定义 平滑性假设 (Smoothness assumption) \(\exists L, \text{ s.t. } \forall \bm w, \bm w', |g(\bm \xi)| \leq L\)。换句话说,

\[|f(\bm w') - f(\bm w) - \langle \nabla f(\bm w), \bm w' - \bm w\rangle| \leq \frac{L}2 \|\bm w' - \bm w\|^2 \]

这个假设是非常自然的,其略强于 \(\mathscr C^2\)。在有界闭集上两者等价。

平滑性是说一个函数在每个点被一个二次函数 bound 住,在梯度的视角下,这等价于其 Lipschitz 连续,在 Hessian 矩阵的视角下,这等价于矩阵的 norm 被 bound 住。

命题 梯度 \(L\)-Lipschitz 连续等价于 \(\|\nabla^2 f(x)\| \leq L\),其中 \(|\nabla^2 f(x)|\) 表示 Hessian 矩阵的 Euclidean norm,即 \(\max_{\|x\| = 1} \|Hx\| = |\lambda|_{\max}\)。梯度 \(L\)-Lipschitz 连续表示

\[\|\nabla f(\bm w) - \nabla f(\bm w')\| \leq L \|\bm w - \bm w'\| \]

证明

  • \(\Leftarrow\)

    \[\begin{aligned} \|\nabla f(\bm w') - \nabla f(\bm w)\| &= \left\|\int^1_0 \nabla^2 f(\bm w + \tau(\bm w' - \bm w))(\bm w' - \bm w) \mathrm d \tau\right\| \\ &= \left\|\int^1_0 \nabla^2 f(\bm w + \tau(\bm w' - \bm w)) \mathrm d \tau \cdot (\bm w' - \bm w)\right\| \\ &\leq \left\|\int^1_0 \nabla^2 f(\bm w + \tau(\bm w' - \bm w))\mathrm d \tau\right\| \cdot \|\bm w' - \bm w\| \\ &\leq \int^1_0 \|\nabla^2 f(\bm w + \tau(\bm w' - \bm w))\|\mathrm d \tau \cdot \|\bm w' - \bm w\| \\ &\leq L\|\bm w' - \bm w\| \end{aligned}\]
  • \(\Rightarrow\)

    \[\|\nabla^2 f(\bm w)\| = \max_{\|\bm x\| = 1} \|H\bm x\| \leq \lim_{\alpha \to 0^+}\frac{\|\nabla f(\bm w + \alpha \bm v) - \nabla f(\bm w)\|}{\alpha} \leq L \]

    其中 \(\|\bm v\| = 1\)

命题 \(L\)-平滑等价于梯度 \(L\)-Lipschitz 连续。

证明

  • \(\Leftarrow\)

    \[\begin{aligned} f(\bm w') &= f(\bm w) + \int^1_0 \langle \nabla f(\bm w + \tau(\bm w' - \bm w)), \bm w' - \bm w \rangle \mathrm d \tau \\ &= f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle + \int^1_0 \langle \nabla f(\bm w + \tau(\bm w' - \bm w)) - \nabla f(\bm w), \bm w' - \bm w \rangle \mathrm d \tau \\ &\leq f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle + \int^1_0 \|\nabla f(\bm w + \tau(\bm w' - \bm w)) - \nabla f(\bm w)\| \cdot \|\bm w' - \bm w \| \mathrm d \tau && \text{Cauchy-Schwarz} \\ &\leq f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle + \int^1_0 L\tau\|\bm w' - \bm w\| \cdot \|\bm w' - \bm w \| \mathrm d \tau \\ &= f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle + \frac L2\|\bm w' - \bm w\|^2 \\ \end{aligned}\]
  • \(\Rightarrow\):考虑 \(f\) 的 Lagrange 余项的 Taylor 展开

    \[f(\bm w') = f(\bm w) + \langle f(\bm w), \bm w' - \bm w \rangle + \frac 12 \langle\nabla^2 f(\bm \xi)(\bm w' - \bm w), \bm w' - \bm w \rangle \]
    \[|f(\bm w')- f(\bm w) - \langle \nabla f(\bm w), \bm w' - \bm w\rangle| = \frac 12 |\langle \nabla^2 f(\bm \xi)(\bm w' - \bm w), \bm w' - \bm w \rangle|\leq \frac L2\|\bm w' - \bm w\|^2 \]

    \(\bm w' = \bm w + t \bm v, \|\bm v\| = 1\),有

    \[|\langle \nabla^2 f(\bm w + t \bm v) \bm v, \bm v\rangle| \leq L \]

    \(t \to 0^+\),由于 \(f\)\(\mathscr C^2\) 函数,可得

    \[|\langle \nabla^2 f(\bm w) \bm v, \bm v\rangle| \leq L \]

    注意到 \(\nabla^2 f(\bm w)\) 是一个 self-adjoint 的矩阵,因此

    \[\max_{\bm v} \|\nabla^2 f(\bm w)\bm v\|_2 = \max_{\bm v} \langle \nabla^2 f(\bm w) \bm v, \bm v\rangle = |\lambda|_{\max} \]

    根据上一条命题,该命题得证。

回到梯度下降中。对平滑的 \(f\),有

\[\begin{cases} f(\bm w') \leq f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle + \frac L2 \| \bm w' - \bm w \|^2 \\ f(\bm w') \geq f(\bm w) + \langle \nabla f(\bm w), \bm w' - \bm w \rangle - \frac L2 \| \bm w' - \bm w \|^2 \\ \end{cases}\]

这给出了一个从 \(\bm w\) 出发,走到某个 \(\bm w'\)\(f\) 的上下界,就像这样(灵魂画手 yy)

下界并不重要,我们关心的是上界。在 \(\bm w, \bm w'\) 足够接近时,\(f\) 总是下降的,定量地,假设在梯度下降中采取学习速率 \(\eta\)\(\bm w' = \bm w - \eta \nabla f(\bm w)\)

\[\begin{aligned} f(\bm w') - f(\bm w) &\leq \langle \nabla f(\bm w), \bm w' - \bm w \rangle + \frac L2 \|\bm w' - \bm w\|^2 \\ &= \langle \nabla f(\bm w), - \eta \nabla f(\bm w)\rangle + \frac{L\eta^2}2 \|\nabla f(\bm w)\|^2 \\ &= -\eta\left(1 - \frac{L\eta}2\right) \|\nabla f(\bm w)\|^2 \end{aligned}\]

因此当 \(\eta < \frac 2L\) 时,式子总是 \(< 0\) 的,这保证我们每次梯度下降都会有进步。

但是这个假设还是不够。首先它可能会落入局部最优,其次虽然每次都有进步,但是全局的收敛速度没有保证。考虑 \(f(x) = \mathrm{sigmoid}(x)\),从 \(x\) 很大的开始向中间靠拢,速度是负指数级的。这要求我们给函数更多的整体性质。

定义 一个函数 \(f\) 是凸的,如果 \(f(t\bm x_1 + (1 - t)\bm x_2) \leq tf(\bm x_1) + (1 - t)f(\bm x_2),\ t \in [0, 1]\)

其有若干个等价定义,这是微积分课上讲过的。

命题\(f\)\(\mathscr C^2\) 函数,则凸等价于 \(\nabla^2 f(\bm w)\) 半正定。

也就是说,凸性和平滑性一个保证的是 \(|\lambda|_{\max}\) 的界,一个保证的是 \(\lambda_{\min}\) 的符号。

凸性能够保证收敛速度。

命题 \(\bm w^* = \operatorname{argmin}_{\bm w} f(\bm w)\),采用学习速率 \(\eta \leq \frac 1L\) 进行 \(t\) 轮梯度下降时,有

\[f(\bm w_t) \leq f(\bm w^*) + \frac 1{2\eta t}\|\bm w_0 - \bm w^*\|^2 \]

证明 考虑裂项法

\[\begin{aligned} f(\bm w_{i+1}) &\leq f(\bm w_i) - \eta\left(1 - \frac{L\eta}2\right) \|\nabla f(\bm w_i)\|^2 && \text{Smoothness}\\ &\leq f(\bm w_i) - \frac \eta 2\|\nabla f(\bm w_i)\|^2 \\ &\leq f(\bm w^*) + \langle \nabla f(\bm w_i), \bm w_i - \bm w^*\rangle - \frac \eta 2 \|\nabla f(\bm w_i)\|^2 && \text{Convexity} \\ &= f(\bm w^*) - \frac 1{\eta} \langle \bm w_{i+1} - \bm w_i, \bm w_i - \bm w^*\rangle - \frac 1{2\eta} \|\bm w_i - \bm w_{i+1}\|^2 && \text{梯度下降} \\ &= f(\bm w^*) + \frac 1{2 \eta} \|\bm w_i - \bm w^*\|^2 - \frac 1{2\eta}(\|\bm w_i - \bm w^*\|^2 - 2 \langle \bm w_i - \bm w_{i+1}, \bm w_i - \bm w^* \rangle + \|\bm w_i - \bm w_{i+1}\|^2) && 配方 \\ &= f(\bm w^*) + \frac 1{2 \eta} \|\bm w_i - \bm w^*\|^2 - \frac 1{2\eta} \|(\bm w_i - \bm w_{i+1}) - (\bm w_i - \bm w^*)\|^2 \\ &= f(\bm w^*) + \frac 1{2 \eta} (\|\bm w_i - \bm w^*\|^2 - \|\bm w_{i+1} - \bm w^*\|^2) \end{aligned}\]
\[\sum_{i=0}^{t - 1} (f(\bm w_{i+1}) - f(\bm w^*)) \leq \frac 1{2\eta} (\|\bm w_0 - \bm w^*\|^2 - \|\bm w_t - \bm w^*\|^2) \leq \frac 1{2\eta} \|\bm w_0 - \bm w^*\|^2 \]

由于 \(f(\bm w_i)\) 不升,

\[f(\bm w_t) \leq f(\bm w^*) + \frac 1{2\eta t}\|\bm w_0 - \bm w^*\|^2 \]

令总训练轮数

\[T = \frac{L\|\bm w_0 - \bm w^*\|^2}{2 \epsilon} \]

即可得到 \(f(\bm w_t) \leq f(\bm w^*) + \epsilon\)

接下来考虑一个很常用的技巧,随机梯度下降 (stochastic gradient descent, SGD)。如果我们每次都仅选取小批量数据计算梯度,那么便要考虑收敛性的问题。

\[\bm w_{t+1} = \bm w_t - \eta \bm G_t \]
\[\mathbb E[\bm G_t] = \nabla f(\bm w_t) \]

其中

\[\nabla f(\bm w, \bm X, \bm Y) = \frac 1N\sum_i \nabla l(\bm w, x_i, y_i) \]
\[\bm G_t = \frac 1{|S|} \sum_{i \in S} \nabla l(\bm w, x_i, y_i) \]

如果采取随机选取 \(S\) 的策略,我们可以不再考虑 \(\bm G_t\) 的由来,而是仅把其当作一个随机变量对待。

命题 \(f\) 是一个凸的 \(L\)-平滑函数,\(\bm w^* = \operatorname{argmin}_{\bm w} f(\bm w)\),采用学习速率 \(\eta \leq \frac 1L\) 且使得 \(\mathrm{Var}(\bm G_t) \leq \sigma^2\) 进行 \(t\) 轮梯度下降时,有

\[\mathbb E[f(\overline{\bm w_t})] \leq f(\bm w^*) + \frac{\|\bm w_0 - \bm w^*\|^2}{2t\eta} + \eta \sigma^2 \]

其中 \(\overline {\bm w_i} = \frac 1t \sum_{i=1}^t \bm w_i\)

证明 考虑转化为和 GD 类似的形式。一次项用期望的线性性,二次项用方差 \(\mathrm{Var}(\bm G_t) = \mathbb E\|\bm G_t\|^2 - (\mathbb E \bm G_t)^2 = \mathbb E\|\bm G_t\|^2 - \|\nabla f(\bm w_i)\|^2\)。由此不断转化 \(\bm G_i\)\(\nabla f(\bm w_i)\),分离固定部分和随机部分。

\[\begin{aligned} E[f(\bm w_{i+1})] &\leq f(\bm w_i) + \mathbb E\langle \nabla f(\bm w_i), \bm w_{i+1} - \bm w_i \rangle + \frac L2\mathbb E\|\bm w_{i+1} - \bm w_i\|^2 && \text{Smoothness} \\ &= f(\bm w_i) + \langle \nabla f(\bm w_i), \mathbb E(\bm w_{i+1} - \bm w_i) \rangle + \frac L2\mathbb E\|\bm w_{i+1} - \bm w_i\|^2 && 期望的线性性 \\ &= f(\bm w_i) - \eta \langle \nabla f(\bm w_i), \nabla f(\bm w_i) \rangle + \frac{L\eta^2}2 \mathbb E\|\bm G_i\|^2 \\ &= f(\bm w_i) - \eta \langle \nabla f(\bm w_i), \nabla f(\bm w_i) \rangle + \frac{L\eta^2}2(\|\nabla f(\bm w_i) \|^2 + \mathrm{Var}(\bm G_i)) && \mathrm{Var}(\bm G_t) = \mathbb E\|\bm G_t\|^2 - \|\nabla f(\bm w_i)\|^2 \\ &\leq f(\bm w_i) - \eta \left(1 - \frac{L \eta}2\right) \|\nabla f(\bm w_i)\|^2 + \frac{L\eta^2}2 \sigma^2 \\ &\leq f(\bm w_i) - \frac \eta 2 \|\nabla f(\bm w_i)\|^2 + \frac \eta 2 \sigma^2 && \eta < \frac 1L \\ &\leq f(\bm w^*) + \langle \nabla f(\bm w_i), \bm w_i - \bm w^* \rangle - \frac \eta 2\|\nabla f(\bm w_i)\|^2 + \frac \eta 2\sigma^2 \\ &\leq f(\bm w^*) - \frac 1 \eta\mathbb E\langle \bm w_{i+1} - \bm w_i, \bm w_i - \bm w^* \rangle - \frac \eta 2\|\bm G_i\|^2 + \eta\sigma^2 && \|\nabla f(\bm w_i)\|^2 = \mathbb E\|\bm G_i\|^2 - \mathrm{Var}(\bm G_i) \\ &= \frac 1{2\eta} \mathbb E(\|\bm w_i - \bm w^*\|^2 - \|\bm w_{i+1} - \bm w^*\|^2) + \eta \sigma^2 && 同 \text{ GD} \\ \end{aligned}\]
\[\begin{aligned} \mathbb E[f(\overline{\bm w_t})] - f(\bm w^*) &= \mathbb Ef\left(\frac 1t\sum_{i=1}^t \bm w_t\right) - f(\bm w^*) \\ &\leq \frac 1t\mathbb E\left(\sum_{i=1}^t f(\bm w_i)\right) - f(\bm w^*) && \text{Jensen's Ineq} \\ &\leq \frac 1t\sum_{i=0}^{t - 1} (\mathbb Ef(\bm w_{i+1}) - f(\bm w^*)) \\ &\leq \frac 1{2\eta t}(\|\bm w_0 - \bm w^*\|^2 - \mathbb E\|\bm w_t - \bm w^*\|^2) + \eta \sigma^2 \\ &\leq \frac 1{2\eta t}\|\bm w_0 - \bm w^*\|^2 + \eta \sigma^2 \end{aligned}\]

\[T = \frac{2 \|\bm w_0 - \bm w^*\|^2 \sigma^2}{\epsilon^2}, \eta = \frac \epsilon {2\sigma^2} \]

即可得到 \(\mathbb Ef(\overline{\bm w_t}) \leq f(\bm w^*) + \epsilon\)

也就是说,误差项是不随 \(t\) 改变的,因此只能通过缩小学习速率降低误差。这导致 GD 有 \(\frac 1T\) 的收敛速率时 SGD 只有 \(\frac 1{\sqrt T}\) 的收敛速率。文章来源地址https://www.toymoban.com/news/detail-711711.html

到了这里,关于[机器学习] 1. 梯度下降 Gradient Descent 与随机梯度下降 Stochastic Gradient Descent的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Matlab算法】梯度下降法(Gradient Descent)(附MATLAB完整代码)

    梯度下降法 是一种用于最小化函数的迭代优化算法。其基本思想是通过计算函数的梯度 (导数),找到函数的最小值点。在梯度下降法中,参数(或变量)沿着负梯度的方向进行更新,以降低函数值。 以下是梯度下降法的基本描述: 选择初始点: 选择一个初始点作为优化的起

    2024年01月19日
    浏览(35)
  • 机器学习&&深度学习——随机梯度下降算法(及其优化)

    在我们没有办法得到解析解的时候,我们可以用过梯度下降来进行优化,这种方法几乎可以所有深度学习模型。 关于优化的东西,我自己曾经研究过智能排班算法和优化,所以关于如何找局部最小值,以及如何跳出局部最小值的一些基本思想是有感触的,随机梯度算法和其优

    2024年02月15日
    浏览(33)
  • 机器学习--决策树、线性模型、随机梯度下降

    🤵‍♂️ 个人主页:@Lingxw_w的个人主页 ✍🏻作者简介:计算机科学与技术研究生在读 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+    目录  一、决策树 二、线性模型 三、随机梯度下降 决策树(decision

    2024年02月03日
    浏览(33)
  • 机器学习与深度学习——使用paddle实现随机梯度下降算法SGD对波士顿房价数据进行线性回归和预测

    随机梯度下降(SGD)也称为增量梯度下降,是一种迭代方法,用于优化可微分目标函数。该方法通过在小批量数据上计算损失函数的梯度而迭代地更新权重与偏置项。SGD在高度非凸的损失表面上远远超越了朴素梯度下降法,这种简单的爬山法技术已经主导了现代的非凸优化。

    2024年02月03日
    浏览(43)
  • [机器学习] 3. 镜像下降 Mirror Descent 与线性耦合 Linear Coupling

    ML Theory 太魔怔了!!!!! 我们来考虑更快的下降算法。 对 (L) -smooth 的 Gradient Descent,我们有两种视角来看它。一种是局部视角,梯度方向相近的点的函数值一定会下降,另一种是全局视角,用一个二次函数为整个 (f) 提供了一个 lowerbound。当局部梯度的范数很大时,函

    2024年02月08日
    浏览(28)
  • 机器学习_梯度下降

    计算梯度向量其几何意义,就是函数变化的方向,而且是变化最快的方向。对于函数f(x),在点(xo,yo),梯度向量的方向也就是y值增加最快的方向。也就是说,沿着梯度向量的方向 △f(xo),能找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -△f(xo)的方向,梯度

    2024年01月19日
    浏览(32)
  • 机器学习梯度下降法笔记

    梯度下降法(Gradient Descent)是一种常用的优化算法,用于在机器学习和深度学习中最小化或最大化一个函数的值。在机器学习中,梯度下降法常用于调整模型的参数,使得模型能够更好地拟合训练数据。 这个优化算法的基本思想是通过迭代的方式,不断调整参数的值,使得

    2024年02月15日
    浏览(30)
  • 机器学习——线性回归、梯度下降

    监督学习 :学习数据带有标签 无监督学习 :没有任何的标签,或者有相同的标签 其他:强化学习、推荐系统等 还是房价预测的例子, 训练集如下: 定义各个变量的含义如下: m——代表训练集中实例的数量 x——代表特征/输入变量 y——代表目标变量/输出变量 (x,y)——代

    2024年02月07日
    浏览(35)
  • 机器学习——梯度下降法

    问:梯度下降法一定能求得最小值??? 答: 在某些情况下,梯度下降法可以找到函数的最小值,但并非总是如此。这取决于函数的形状和梯度下降法的参数设置。如果函数具有多个局部最小值,梯度下降法可能会收敛到其中一个局部最小值,而不是全局最小值。此外,如

    2023年04月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包