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. 牛顿法还需要求海森矩阵的逆,非常困难
  • 相关阅读:
    WSL+vscode安装rust注意事项
    几种判断质数的算法
    select被遮挡问题
    idea工具使用
    docker部署nexus服务
    docker部署nacos
    springcloudAlibaba整合nacos
    Navicat_Premium_v15 激活
    CF295D Solution
    CF351B Solution
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/9844566.html
Copyright © 2011-2022 走看看