zoukankan      html  css  js  c++  java
  • 斯坦福2014机器学习笔记二----梯度下降法

    一、纲要

       梯度下降法的可视化理解

      梯度下降法的公式

      参数的更新方法

      梯度下降算法最小化代价函数

    二、内容介绍

      1、梯度下降法的可视化理解

      

      在上篇文章中我说了代价函数的最小化就是要寻找该函数的最小值,或者说是局部最小值。如上图,我们假设红色的为两个山峰,那么蓝色的就是我们要找的最小值。这个过程我们可以想象成某个人下山的过程。当给参数不同的初值。相当于选择了不同的下山起点位置,梯度下降法的过程就相当于一次次的迭代,即对于下山来说,就是每走一步,就停下来观察并选择可以最快下山的路,然后再走一步,然后再次重复这个过程。当然,图上显而易见的是,当我们选择的起点位置不同,就会得到不同的下山路线,最终会到达一个看起来最小的值,所以这也就是我之前为什么说是局部最小值。这样理解梯度下降法看起来更浅显易懂!

      2、梯度下降法的公式 

      ,这里的Alpha称为学习速率(learning rate),就是我们下山时的步伐,是大步流星还是小碎步下山,这当然也决定了下降的速率

      我们用一个较为简单的代价函数来解释一下这个公式:J(θ)

      

      对J的微分就是在该点的斜率,可以很容易的看出不管是该点(起始点)在最低点的左边还是右边,经过数次迭代之后参数θ总是向着J的最低点逼近。

      3、参数的更新方法

        正确的更新方法:                                                                                      错误的更新方法:

                                                               

      注:这里的theta0和theta1是要同时更新的,如果计算了theta0之后就直接更新theta0的值的话,公式右边的代价函数J就会发生变化,所以需要计算完所有参数的值之后再同时进行更新。

       3、用梯度下降法最小化代价函数J

      接着上篇的线性回归问题,

      

      所以,梯度下降方程为:

      

      事实证明,如果你的成本函数进行线性回归,他的代价函数将成碗状,即不存在局部最优解,局部最优解自动转化为全局最优。

      

      

  • 相关阅读:
    Python学习笔记(尚硅谷)——变量
    四级高频词-工作类
    转载--JS根据浏览器的useAgent来判断浏览器的类型
    MySQL上传文件容量过大com.mysql.jdbc.PacketTooBigException
    关于<input type="file" >浏览器兼容问题
    IDictionary与TryGetValue
    生成自增ID列
    利用C#将PCM格式的Wav进行对文件裁剪截取、淡入淡出、保存为音频文件相关详细代码解释
    DevExpress控件学习总结
    C# 音频操作系统项目总结
  • 原文地址:https://www.cnblogs.com/kl2blog/p/7691757.html
Copyright © 2011-2022 走看看