zoukankan      html  css  js  c++  java
  • 梯度下降法

    梯度下降法主要分为三种,

    • 梯度下降法
    • 随机梯度下降
    • 小批量梯度下降

    下面分别来介绍一下,这样更加有助于理解它们之间的联系。

    梯度下降法

    梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下降

    下面就以均方误差讲解一下,假设损失函数如下:

    [公式]

    其中 [公式] 是预测值, [公式] 是真实值,那么要最小化上面损失 [公式] ,需要对每个参数 [公式] 运用梯度下降法:

    [公式]

    其中 [公式] 是损失函数对参数 [公式] 的偏导数、 [公式] 是学习率,也是每一步更新的步长。

    随机梯度下降法

    在机器学习深度学习中,目标函数的损失函数通常取各个样本损失函数的平均,那么假设目标函数为:

    [公式]

    其中 [公式] 是第 [公式] 个样本的目标函数,那么目标函数在在 [公式] 处的梯度为:

    [公式]

    如果使用梯度下降法(批量梯度下降法),那么每次迭代过程中都要对 [公式]个样本进行求梯度,所以开销非常大,随机梯度下降的思想就是随机采样一个样本 [公式]来更新参数,那么计算开销就从 [公式] 下降到 [公式]

    小批量梯度下降法

    随机梯度下降虽然提高了计算效率,降低了计算开销,但是由于每次迭代只随机选择一个样本,因此随机性比较大,所以下降过程中非常曲折(图片来自《动手学深度学习》),

    imgimg

    所以,样本的随机性会带来很多噪声,我们可以选取一定数目的样本组成一个小批量样本,然后用这个小批量更新梯度,这样不仅可以减少计算成本,还可以提高算法稳定性。小批量梯度下降的开销为 [公式] 其中 [公式]是批量大小。

    *该怎么选择?*

    当数据量不大的时候可以选择批量梯度下降法,当数据量很大时可以选择小批量梯度下降法。

    参考链接:

    https://www.zhihu.com/question/264189719

  • 相关阅读:
    win10右键在此处打开CMD
    练习1-20 编写程序detab,将输入中的制表符替换成适当数目的空格.
    编写一个程序,打印输入中单词长度的直方图.垂直方向
    王爽 汇编 实验14
    python 文件
    函数和方法
    python-格式化字符串
    MPC&MAGIC
    python-super1
    小知识点
  • 原文地址:https://www.cnblogs.com/jimlau/p/13347165.html
Copyright © 2011-2022 走看看