A-03 牛顿法和拟牛顿法 牛顿法和拟牛顿法 一、牛顿法详解 二、牛顿法流程 三、拟牛顿法简介


更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html

牛顿法(Newton method)和拟牛顿法(quasi-Newton method)和梯度下降法一样也是求解最优化问题的常用方法,但是他们的收敛速度比梯度下降法快。牛顿法是迭代算法,每一步都需要求目标函数的海森矩阵的逆矩阵,计算复杂;拟牛顿法通过正定矩阵近似海森矩阵的逆矩阵,简化这个计算过程。

一、牛顿法详解

1.1 无约束最优化问题

对于一个约束问题

)

其中x为目标函数的极小点。

1.2 牛顿法迭代公式

假设)附近使用二阶泰勒展开

)

其中)的海森矩阵

mn

在点)的极值为极小值。
牛顿法利用极小点的必要条件

)=0

每次迭代中从点)满足

)=0

通过泰勒二阶展开式即可得

)

其中)=0变成

)=0

因此

1gk

)+pk

其中

(3)Hkpk=gk

使用1gk作为迭代公式的算法就是牛顿法。

1.3 牛顿法和梯度下降法

从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。

虽然牛顿法看起来比梯度下降法好很多,但是别忘记了牛顿法迭代过程中需要计算海森矩阵的逆矩阵,如果数据量较大的话,牛顿法的计算开销将远远大于梯度下降法。

二、牛顿法流程

2.1 输入

目标函数ϵ

2.2 输出

x

2.3 流程

  1. 取初始点k=0
  2. 计算)
  3. 如果)
  4. 计算pk

Hkpk=gk

  1. )+pk
  2. k=k+1,转到第2步

在第4步求1,计算会比较复杂。

三、拟牛顿法简介

在牛顿法的迭代中,需要计算海森矩阵的逆矩阵),此处不多赘述。


更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html

牛顿法(Newton method)和拟牛顿法(quasi-Newton method)和梯度下降法一样也是求解最优化问题的常用方法,但是他们的收敛速度比梯度下降法快。牛顿法是迭代算法,每一步都需要求目标函数的海森矩阵的逆矩阵,计算复杂;拟牛顿法通过正定矩阵近似海森矩阵的逆矩阵,简化这个计算过程。

一、牛顿法详解

1.1 无约束最优化问题

对于一个约束问题

)

其中x为目标函数的极小点。

1.2 牛顿法迭代公式

假设)附近使用二阶泰勒展开

)

其中)的海森矩阵

mn

在点)的极值为极小值。
牛顿法利用极小点的必要条件

)=0

每次迭代中从点)满足

)=0

通过泰勒二阶展开式即可得

)

其中)=0变成

)=0

因此

1gk

)+pk

其中

(3)Hkpk=gk

使用1gk作为迭代公式的算法就是牛顿法。

1.3 牛顿法和梯度下降法

从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。

虽然牛顿法看起来比梯度下降法好很多,但是别忘记了牛顿法迭代过程中需要计算海森矩阵的逆矩阵,如果数据量较大的话,牛顿法的计算开销将远远大于梯度下降法。

二、牛顿法流程

2.1 输入

目标函数ϵ

2.2 输出

x

2.3 流程

  1. 取初始点k=0
  2. 计算)
  3. 如果)
  4. 计算pk

Hkpk=gk

  1. )+pk
  2. k=k+1,转到第2步

在第4步求1,计算会比较复杂。

三、拟牛顿法简介

在牛顿法的迭代中,需要计算海森矩阵的逆矩阵),此处不多赘述。