美文网首页
说说梯度下降

说说梯度下降

作者: reminia | 来源:发表于2017-04-05 23:11 被阅读50次

梯度下降算法是很多机器学习算法会采用的一个解决最小化问题的方法。比如线性回归中,我们定义了一个线性的假设函数,现在需要估算其中的参数。

首先想想既然是参数肯定会有各种不同的取值可能,那么参数取哪个值构成的假设函数最符合输入数据的特征呢?

因此我们需要一个评估函数,这个评估函数可以用来打分,比较哪个参数取值更好,帮助我们选择最优的参数组合。这个评估函数通常被称为损失函数。

对于线性回归来说,可以选择MSE作为评估函数,MSE反映了预测值与实际值偏差的总和,我们当然是希望这个总和越小越好。因此参数求解变成了一个最优化问题:求解min(MSE)对应的参数值。

用程序如何实现呢?梯度下降算法就对了。

猜测一个初始值,然后不断更新这个值,来步步逼近最终结果,直至收敛为止。

  1. 给定初始值(w)
  2. 沿着梯度方向下降,更新初始值
    w1 = w0 - gradient * stepSize
  3. 若w1与w0相比在tolerance范围之类,
    则返回w1
    abs(w1, w0) < tolerance
  4. 否则按2继续迭代,直到满足3或迭代次数用尽为止

总结一下上面步骤,得到一个基本求解框架:

  1. 猜测初始值
  2. 计算结果并比较
  3. 更新初始值
  4. 不断迭代直至收敛为止

大部分涉及到方程求解及最优化问题的求解都可按照上面的思路来做。比如SICP上面提到的不动点求解方法。

MSE函数求梯度涉及到所有的数据点,当训练集较大的时候,计算较慢,因此有人提出了一个梯度下降算法的改进版SGD(随机梯度下降)。
重点在随机上,该算法在每次计算梯度的时候只随机选取部分数据来计算,涉及参数miniBatchSize,定义了抽样的数据比例,为了保证所有数据都参与了计算,miniBatchSize * iteration最好 > 1.

相关文章

  • 说说梯度下降

    梯度下降算法是很多机器学习算法会采用的一个解决最小化问题的方法。比如线性回归中,我们定义了一个线性的假设函数,现在...

  • (三)线性回归--梯度下降

    一、梯度下降 二、代码的实现 (一.梯度下降) 导包 构建数据 梯度下降 使用梯度下降,可视化 (二。梯度下降矩阵...

  • 神经网络优化2

    梯度下降 梯度下降法 批梯度下降法(Batch Gradient Descent,BGD)是最常用的梯度下降形式,...

  • 深入浅出--梯度下降法及其实现

    梯度下降的场景假设梯度梯度下降算法的数学解释梯度下降算法的实例梯度下降算法的实现Further reading 本...

  • 机器学习-常用优化方法

    一阶方法:梯度下降、随机梯度下降、mini 随机梯度下降降法。 随机梯度下降不但速度上比原始梯度下降要快,局部最优...

  • ML-梯度下降代码-线性回归为例

    梯度下降代码线性回归为例 bgd 批量梯度下降 sbd 随机梯度下降 mbfd 小批量随机梯度下降

  • 2020-08-19--梯度下降法01

    梯度下降法简介 多元线性回归中的梯度下降法 随机梯度下降法 梯度下降法 的调试 1.梯度下降法简介 不是一个机器学...

  • 机器学习笔记(六)—— 梯度下降

    梯度下降 批量梯度下降(Batch Gradient Descent,BGD) 批量梯度下降法是最原始的形式,它是...

  • 更新权重的方式

    1、SGD 梯度下降(收敛最慢稳定) 梯度下降:+=- * d J() 批量梯度下降:将数据集切分为多批次, 分别...

  • 随机梯度下降法与批量梯度下降法的区别

    批量梯度下降法(batch gradient decent)就是我们平时所说的梯度下降,也就是梯度下降过程中,每次...

网友评论

      本文标题:说说梯度下降

      本文链接:https://www.haomeiwen.com/subject/znwxattx.html