• 2.4 梯度下降算法(非常重要,重点理解)


    1. 已经知道了logistic回归模型,
    2. 也知道了损失函数
      1. 损失函数是衡量单一训练样例的效果,
    3. 还知道了成本函数
      1. 成本函数用于衡量参数w和b的效果在全部训练集上面的衡量
    4. 下面开始讨论如何使用梯度下降法来训练或学习训练集上的参数w和b

    1. 回顾一下:
        1. 这里是最熟悉的logistic回归算法
        2. 第二行是成本函数J,成本函数是参数w和b的函数,他被定义为平均值,即1/m的损失函数之和
        3. 损失函数可以用来衡量你的算法的效果,
          1. 每一个训练样例都会输出y^(i),把它和基本真值标签y(i)进行比较,等号右边展开完全的公式,
        4. 成本函数衡量了参数w和b在训练集上的效果,
          1. 要习得合适的参数w和b,很自然的就想到我们想找到使得成本函数尽可能小的w和b


    1. 下面开始来看看梯度下降法
      1. 在这个图中,横轴表示参数w和b,实际中,w可能是高纬度的,但是为了绘图方便,这里让w是一个实数,b也是一个实数,成本函数J(w,b)是在水平轴w和b上的曲面,曲面的高度表示了J(w,b)在某一点的值,
      2. 我们想要做的就是找到这样的w和b使得其对应的成本函数j值是最小值,
      3. 可以看到成本函数J是一个凸函数,
      4. 因此我们的成本函数之所以是凸函数,凸函数这性质是我们使用logistic回归的这个特定的成本函数J的重要原因之一,
      5. 所以为了找到更好的参数值,我们要做的就是利用某个初始值,初始化w和b,用那个小红点表示,
        1. 对于logistic回归而言,几乎是对任意的初始化方法都有效,通常使用0来进行初始化,但是对于logistic回归而言,我们通常不那么做,但是因为函数是凸的,无论在哪里进行初始化,都应该到达同一点,或者是大致相同的点,
      6. 梯度下降所做的就是从初始点开始,朝着最陡的下坡方向走一步,在梯度下降一步后,很有可能停一步,因为他在寻找梯度下降最快的方向,最后可能会找到最终的最优解,
        1. 这张图片阐述了梯度下降法
        2. 下面开始考虑更新w,让w为
          1. 在算法收敛之前,将会重复这样做,
          2. 这里的阿尔法表示学习率,学习率可以控制每次一次迭代,或者梯度下降法中的步长,之后将会讨论如何选择学习率阿尔法,
          3. 其次,这里面有一个导数,这个就是对参数w的更新或者变化量,
            1. 当我们开始编码,来实现梯度下降,我们会使用代码中变量名的约定dw表示导数,我们使用dw作为导数的变量名,
      7. 现在,我们确保梯度下降法更新是有用的,
          1. 在横轴上面的一点w和其对应的成本函数J(W)在曲线上的这一点,
          2. 记住导数的定义是函数在这一点的斜率,而函数的斜率是高除以宽,在这个点是一个相切于J(w)的小三角形,





  • 相关阅读:
    MVC布局页占位符@RenderSection("bscript", false)
    HtmlHelp
    MVC 笔记(二)
    mvc 客户端验证
    mvc ajax请求
    mvc 笔记
    mvc 微软票据验证
    内养外调美女养生方
    机械设备维修技术(第2版)(普通高等教育“十一五”国家级规划教材)
    石油特种车载设备结构与维护
  • 原文地址:https://www.cnblogs.com/yangzsnews/p/7496645.html
Copyright © 2020-2023  润新知