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

    牛顿法与梯度下降法

    梯度下降法

    梯度下降法非常常用,其利用的是一阶导数,进行逼近,具体的更新方法如下:

    [x_{n+1} = x_n-alpha f'(x_n) ]

    其中(alpha)为学习速率。

    牛顿法

    牛顿利用到了二阶导数的信息,其推导需要利用到泰勒的二阶展开,具体如下:

    [f(x+ riangle x) approx f(x) + f'(x) riangle x+1/2f''(x) riangle x^2​ ]

    我们令(f(x+ riangle x))( riangle x)进行求导,并使得其等于0有

    [f'(x)+f''(x) riangle x = 0 ]

    从而得到( riangle x = -dfrac{f'(x)}{f''(x)})

    从向量的角度来看,参数的更新可以表示为

    [ heta = heta - H^{-1}igtriangledown_{ heta}l( heta) ]

    其中(H^{-1})就是海森矩阵。

    梯度下降与牛顿法的比较

    1. 牛顿法不需要设置学习速率
    2. 牛顿法收敛速度更快
    3. 牛顿法由于需要计算二阶导数,计算量更大,同时也需要函数二阶可导
    4. 牛顿法还需要求海森矩阵的逆,非常困难
  • 相关阅读:
    鲜牛奶与纯牛奶的区别 All In One
    Rough Notation Animation All In One
    java基础编程String及相关
    JDBC1
    java基础数据类型
    java基础编程
    JDBC3
    MYSQL1
    JDBC2
    JSP和Servlet的相同点和不同点,他们之间的联系
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/9844566.html
Copyright © 2011-2022 走看看