G.Jerry的牛顿法和拟牛顿法笔记

该笔记初衷为期末复习所用,引用出处均已注明,涉及个人理解部分如果有不对之处,还请批评指正,俺会虚心接受滴!

牛顿法

1. 应用范围

        关于一般函数f \in {C^2}的极小化问题。

2. 原理

        熟悉的泰勒展开:

f\left( x \right) = f\left( {​{x^{(k)}}} \right) + \nabla f{\left( {​{x^{(k)}}} \right)^T}(x - {x^{(k)}}) + \frac{1}{2}{(x - {x^{(k)}})^T}{\nabla ^2}f\left( {​{x^{(k)}}} \right)(x - {x^{(k)}})

因为f \in {C^2},所以后面的项=0省略掉。 

        Jerry和Tom都知道:\min f(x)  <=>  \frac{​{df\left( x \right)}}{​{dx}} = \nabla f{\left( {​{x^{(k)}}} \right)^T} + {\nabla ^2}f\left( {​{x^{(k)}}} \right)(x - {x^{(k)}}) = 0。在两种情况下,上式成立:

         第一种是\nabla f\left( {​{x^{(k)}}} \right){\text{ = }}0,这时候{x^{(k)}}就是极小点。

        第二情况是\nabla f\left( {​{x^{(k)}}} \right) \ne 0,有{x^{\text{*}}} = {x^{(k)}} - {[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}\nabla f{\left( {​{x^{(k)}}} \right)^T}成立,这时候{x^{\text{*}}}是极小点,{x^{(k)}}{x^{\text{*}}}邻域内任意一点。其中,- {[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}\nabla f{\left( {​{x^{(k)}}} \right)^T}称为牛顿方向,且{\nabla ^2}f\left( {​{x^{(k)}}} \right)明显具有正定性。以第一个点{x^{(1)}}为例,由此找到的{x^{(2)}} = {x^{(1)}} - {[{\nabla ^2}f\left( {​{x^{(1)}}} \right)]^{ - 1}}\nabla f{\left( {​{x^{(1)}}} \right)^T}就是满足df(x)/dx=0的极小点。

3. 步骤

        选取一个初始点{x^{(1)}},根据{x^{(k + 1)}} = {x^{(k)}} - {\alpha _k}{[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}\nabla f{\left( {​{x^{(k)}}} \right)^T},k = 1迭代出下一个点x^{(2)}。这个过程中,只要某一点满足\nabla f\left( {​{x^{(k)}}} \right){\text{ = }}0就停止,此时极小点就是该点。

注:Jerry发现这里突然多了个步长{\alpha _k}?!这是为了使牛顿法具有整体收敛性,不因原因①初始点选取不当,以及原因②因为{\nabla ^2}f\left( {​{x^{(k)}}} \right)具有正定性,从而使{[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}\nabla f{\left( {​{x^{(k)}}} \right)^T}???(Jerry还没有完全搞明白,回头补上)而不收敛。

牛顿法

1. 适用范围

        关于一般函数f \in {C^2}的极小化问题。

2. 原理

        拟牛顿算法是"一族"优化后的牛顿算法。

        因为{[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}这项不容易算,所以大聪明们想用一个矩阵{H_k} = {[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}代替这项,即{x^{(k + 1)}} = {x^{(k)}} - {H_k}\nabla f{\left( {​{x^{(k)}}} \right)^T},k = 1,2,...。显然,{H_k}(校正矩阵)应当是一个迭代变化的矩阵。也就是说,找到{H_k}就可以完成牛顿算法优化咯!

         关于{H_k},既要确定其形式(即与{x^{(k)}}\nabla f\left( {​{x^{(k)}}} \right)的关系),也要确定其迭代关系(即与{H_{k - 1}}的关系)。

         Jerry认为{\nabla ^2}f\left( {​{x^{(k)}}} \right)就是f(x)的二阶导数,因此有:

{\nabla ^2}f\left( {​{x^{(k)}}} \right) \approx \frac{​{\nabla f\left( {​{x^{(k)}}} \right) - \nabla f\left( {​{x^{(k - 1)}}} \right)}}{​{​{x^{(k)}} - {x^{(k - 1)}}}}

{\gamma _k}{\text{ = }}\nabla f\left( {​{x^{(k)}}} \right) - \nabla f\left( {​{x^{(k - 1)}}} \right){\delta _k}{\text{ = }}{x^{(k)}} - {x^{(k - 1)}}时,可以看到{H_k}的形式结构变得明晰:{H_k}{\text{ = }}\frac{​{​{\delta _k}}}{​{​{\gamma _k}}}。 

        设迭代关系式普普通通平平无奇地形如{H_k}{\text{ = }}{H_{k - 1}} + {E_k}。那么{E_k}必须满足{H_k}{\text{ = }}{H_{k - 1}} + {E_k}{\text{ = }}\frac{​{​{\delta _k}}}{​{​{\gamma _k}}},即{E_k}{\gamma _k}{\text{ = }}{\delta _k} - {H_{k - 1}}{\gamma _k}才行。显然,满足这个条件的{E_k}并不唯一,可以有许多种形式。所以说拟牛顿法是一族算法,其中最常用的为DFP算法。

         至此,完成了从{H_k} = {[{\nabla ^2}f\left( {​{x^{(k)}}} \right)]^{ - 1}}{H_k}{\text{ = }}{H_{k - 1}} + {E_k}的大致优化。为什么说是大致优化呢?因为{E_k}还没有给出具体的形式。

DFP算法

1. 原理

        DFP算法构造{E_k} 形式如

{E_k}{\text{ = }}{\alpha _k}{U_k}{U_k}^T + {\beta _k}{V_k}{V_k}^T

那么有。(注:相同颜色的项对应相等。)当

时,校正矩阵的迭代式为

\begin{gathered} {H_k}{\text{ = }}{H_{k - 1}} + {E_k} \\ {\text{ = }}{H_{k - 1}} + \frac{​{​{\delta _k}{\delta _k}^T}}{​{​{\delta _k}^T{\gamma _k}}} - \frac{​{​{H_{k - 1}}{\gamma _k}^T{\gamma _k}{H_{k - 1}}}}{​{​{\gamma _k}^T{H_{k - 1}}{\gamma _k}}} \\ \end{gathered}

2. 步骤

选取一个初始点{x^{(0)}, {H^{(0)}}{\text{ = }}I,{d^{(0)}} = - \nabla f\left( {​{x^{(0)}}} \right)。根据

\begin{gathered} {x^{(k + 1)}} = {x^{(k)}} + {\alpha _k}{d^{(k)}},k = 0,1,2,...\\ {d^{(k)}} = - {H_k}\nabla f{\left( {​{x^{(k)}}} \right)^T} \\ {\alpha _k} = \arg \min f({x^{(k)}} + {\alpha _k}{d^{(k)}}) \\ \end{gathered}

其中

\begin{gathered} {H_k} = {H_{k - 1}} + \frac{​{​{\delta _k}{\delta _k}^T}}{​{​{\delta _k}^T{\gamma _k}}} - \frac{​{​{H_{k - 1}}{\gamma _k}^T{\gamma _k}{H_{k - 1}}}}{​{​{\gamma _k}^T{H_{k - 1}}{\gamma _k}}}\\ {\gamma _k}{\text{ = }}\nabla f\left( {​{x^{(k)}}} \right) - \nabla f\left( {​{x^{(k - 1)}}} \right) \\ {\delta _k}{\text{ = }}{x^{(k)}} - {x^{(k - 1)}} \\ \end{gathered}

迭代出接下来的点{x_1},{x_2},{x_3},...。过程中,只要某一点满足就停止,此时极小点就是该点。

2021.09.26

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值