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

    梯度下降法和牛顿法是最常见的两个模型训练算法了,现在对这两个算法做一个比较:

      梯度下降法 牛顿法
    迭代公式 [{w^{(k + 1)}} = {w^{(k)}} - alpha abla J({w^{(k)}})] [{w^{(k + 1)}} = {w^{(k)}} - {H^{ - 1}}({w^{(k)}}) abla J({w^{(k)}})]
    物理意义

     1. 搜寻函数的最低点

    2.搜索方向是损失函数一阶导数的方向

    3. 每次迭代步长有参数(alpha )决定

     1. 搜索损失函数一阶导数=0的点

    2. 搜索方向是损失函数二阶导数(一阶导数在当前点的切线)

    3.每次迭代都在搜索方向上找与y=0平面的交点,无步长参数

    单次迭代时间复杂度  只需计算1阶导数,时间复杂度低,为(O(n))  需要计算Hessian矩阵及其逆矩阵,时间复杂度高,为(O(n^3))
    收敛速度 收敛慢,迭代次数大 收敛快,迭代次数小
    参数选择  需要选择步长[alpha ]  无需选择参数
    适用范围 适用feature维度较大的场景,如feature数>1000 使用feature数较小的场景

    牛顿法的物理意义可以从下面两个方面理解:

    1. 损失函数在当前搜索点泰勒展开,丢弃二阶以上的函数项,下一个搜索点为展开后的最小值

    2. 搜寻损失函数一阶导数与y=0平面的交点,搜索方式类似与梯度下降,即计算一阶导数的导数为搜索方向,下一个搜索点是当前点切线与y=0平面的交点。

  • 相关阅读:
    java 基础知识
    winform判断一个事件是否已经绑定了事件处理函数
    优质文章
    优质博客
    缩略图的创建
    记录一次错误处理 (xml序列化和反序列化相关)
    文件同步软件
    博客园优质博主集锦
    不错的博文集锦
    cesiumjs
  • 原文地址:https://www.cnblogs.com/richqian/p/4512118.html
Copyright © 2011-2022 走看看