zoukankan      html  css  js  c++  java
  • 吴恩达机器学习10:梯度下降

    1.梯度下降算法

      

      (1)如上式的梯度下降算法,α是学习速率,它控制着我们以多大的幅度来更新这个参数θj,这个地方第二部分是偏导数项,

      (2)例1。我们最小化函数只有一个参数的情形,加入我们的成本函数只有一个参数,如下图关于θ1的成本函数是一个凸函数,我们从函数的任一点上开始做梯度下降,梯度下降就是不断的做更新,

      (3)在梯度下降中,如果α太小,梯度下降会很慢,需要很多步才能达到全局的最低点;如果α太大,那么梯度下降可能会越过最低点,甚至无法收敛或者发散

      (4)在梯度下降算法中,即使学习率α保持不变,梯度下降算法也可以收敛到局部最低点。

      

      如上图中,我们在任意起始点进行初始化,如果我们更新一步梯度下降,可能下降的步骤很大,这是因为斜率很大,如下图:

      

      如果我们做进一步的更新,后一步的斜率没有前面的斜率那么陡,因为随着斜率的更新,导数越接近于0,然后继续更新斜率,现在的斜率会更小,下降的步骤比刚才下降的步骤更小一点。在进行更进一步的梯度下降的时候,导数项是更小的一项。

      (5)在梯度下降算法中,算法会自动采取更小的幅度,这是因为当我们接近局部最低点的时候,根据定义,在局部最低点的导数为0,所以当我们接近最低点的手,导数的值自动会变得越来越小

  • 相关阅读:
    strncat_s
    资源编译器 (.rc) 文件
    C++ Namespace 详解
    Structure Definitions
    SetParent
    C++笔记(1)explicit构造函数
    .def
    tellg()和tellp()
    Data Groups
    Messages
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/10301918.html
Copyright © 2011-2022 走看看