zoukankan      html  css  js  c++  java
  • 机器学习(ML)十五之梯度下降和随机梯度下降

    梯度下降和随机梯度下降

     梯度下降在深度学习中很少被直接使用,但理解梯度的意义以及沿着梯度反方向更新自变量可能降低目标函数值的原因是学习后续优化算法的基础。随后,将引出随机梯度下降(stochastic gradient descent)。

    一维梯度下降

    以简单的一维梯度下降为例,解释梯度下降算法可能降低目标函数值的原因。假设连续可导的函数f:的输入和输出都是标量。给定绝对值足够小的数ϵ,根据泰勒展开公式,得到以下的近似:

    学习率

    梯度下降算法中的正数η通常叫作学习率。这是一个超参数,需要人工设定。如果使用过小的学习率,会导致x更新缓慢从而需要更多的迭代才能得到较好的解。

    如果使用过大的学习率,ηf(x)可能会过大从而使前面提到的一阶泰勒展开公式不再成立:这时我们无法保证迭代x会降低f(x)的值。

    多维梯度下降

    随机梯度下降

    • 使用适当的学习率,沿着梯度反方向更新自变量可能降低目标函数值。梯度下降重复这一更新过程直到得到满足要求的解。
    • 学习率过大或过小都有问题。一个合适的学习率通常是需要通过多次实验找到的。
    • 当训练数据集的样本较多时,梯度下降每次迭代的计算开销较大,因而随机梯度下降通常更受青睐。
  • 相关阅读:
    【Thinking in Java, 4e】初始化与清理
    【Thinking in Java, 4e】控制流程执行
    【Beginning Python】抽象(未完)
    【Python】装饰器 & 偏函数
    【c++ primer, 5e】函数声明 & 分离式编译
    【Python】闭包 & 匿名函数
    【c++ primer, 5e】【函数基础】
    【Python】高阶函数
    变相的取消Datagridview控件的选中状态
    NotifyICon控件使用
  • 原文地址:https://www.cnblogs.com/jaww/p/12336493.html
Copyright © 2011-2022 走看看