爱需要勇气,\textbf{爱需要勇气,}
但是也许是天意,\textbf{但是也许是天意,}
让我爱上你,\textbf{让我爱上你,}
也许轮回里早已注定,\textbf{也许轮回里早已注定,}
今生就该还给你。\textbf{今生就该还给你。}
一颗心在风雨里,\textbf{一颗心在风雨里,}
飘来飘去,\textbf{飘来飘去,}
一直都在等待你。\textbf{一直都在等待你。}
——畅宝宝的傻逼哥哥\textbf{——畅宝宝的傻逼哥哥}

考虑优化问题

miminize F=f(x)for x∈En

\text{miminize}\ F=f(\mathbf{x})\quad\text{for}\ \mathbf{x}\in E^n

根据泰勒级数

F+ΔF=f(x+δ)≈f(x)+gTδ+12δTHδ

F+\Delta F=f(\mathbf{x}+{\delta})\approx f(\mathbf{x})+\mathbf{g}^T{\delta}+\frac{1}{2}{\delta}^T\mathbf{H}{\delta}

当∥δ∥→0\lVert{\delta}\rVert\to0,由于δ{\delta}引起的FF变化量为

ΔF≈gTδ

\Delta F\approx\mathbf{g}^T{\delta}

右边是向量g,δ\mathbf{g},{\delta}的点乘,如果

gδ=[g1 g2 ⋯ gn]T=[δ1 δ2 ⋯ δn]T

\begin{align*} \mathbf{g}&=[g_1\ g_2\ \cdots\ g_n]^T\\ {\delta}&=[\delta_1\ \delta_2\ \cdots\ \delta_n]^T \end{align*}

那么

ΔF≈∑i=1ngiδi=∥g∥∥δ∥cosθ

\Delta F\approx\sum_{i=1}^ng_i\delta_i=\lVert\mathbf{g}\rVert\lVert{\delta}\rVert\cos\theta

其中θ\theta是向量g,δ\mathbf{g},{\delta}之间的夹角且

∥g∥=(gTg)1/2=(∑i=1ng2i)1/2

\lVert\mathbf{g}\rVert=(\mathbf{g}^T\mathbf{g})^{1/2}=\left(\sum_{i=1}^ng_i^2\right)^{1/2}
上升与下降方向\textbf{上升与下降方向}

考虑图1的图像,如果x,x+δ\mathbf{x},\mathbf{x}+{\delta}是轮廓AA上相邻的两个点,那么当∥δ∥→0\lVert{\delta}\rVert\to0

ΔF≈∥g∥∥δ∥cosθ=0

\Delta F\approx\lVert\mathbf{g}\rVert\lVert{\delta}\rVert\cos\theta=0

这是因为在该轮廓上FF是常数,由此可得向量g,δ\mathbf{g},{\delta}之间的夹角θ\theta等于90∘90^\circ。从效果上看,点x\mathbf{x}处得梯度与AA正交。对于任意向量δ{\delta},要想ΔF\Delta F取得最大正值,那么θ=0\theta=0,即δ{\delta}必须与g\mathbf{g}同向。另一方面,要想ΔF\Delta F取得最大负值,那么θ=π\theta=\pi,即δ{\delta}必须与−g-\mathbf{g}同向。梯度g\mathbf{g}与它的负−g-\mathbf{g}分别称为梯度上升与梯度下降方向,这些概念如图1和图2所示。


图1

基本方法\textbf{基本方法}

假设函数f(x)f(x)在点x\mathbf{x}的邻域内是连续的,如果d\mathbf{d}是点x\mathbf{x}处的最速下降方向,即

d=−g

\mathbf{d}=-\mathbf{g}

那么x\mathbf{x}的变化量δ{\delta}

δ=αd

{\delta}=\alpha\mathbf{d}

会减少f(x)f(\mathbf{x})的值,其中α\alpha是一个很小的正常数。通过求解一维优化问题

minimizeα F=f(x+αd)

\text{minimize}_\alpha\ F=f(\mathbf{x}+\alpha\mathbf{d})

我们可以最大化的减少f(x)f(\mathbf{x}),如图3所示。

如果点x\mathbf{x}处的最速下降方向朝向f(x)f(\mathbf{x})的最小值x∗x^*,那么存在α\alpha值,使得f(x+αd)f(\mathbf{x}+\alpha\mathbf{d})对α\alpha最小化,f(x)f(\mathbf{x})对x\mathbf{x}最小化,因此这时候多维优化问题通过求解一维问题即可。不幸的是,大部分实际问题中,d\mathbf{d}没有指向x∗\mathbf{x}^*,所以为了求出解需要进行多次迭代。首先从初始点x0\mathbf{x}_0开始,计算方向d=d0=−g\mathbf{d}=\mathbf{d}_0=-\mathbf{g},确定最小化f(x0+αd0)f(\mathbf{x}_0+\alpha\mathbf{d}_0)的α\alpha值,用α0\alpha_0表示,那么可得到新的点x1=x0+α0d0\mathbf{x}_1=\mathbf{x}_0+\alpha_0\mathbf{d}_0,最小化的过程可以用前面介绍的任何一种方法,接下来在点

xk+1=xk+αkdk

\mathbf{x}_{k+1}=\mathbf{x}_k+\alpha_k\mathbf{d}_k

处重复执行上面的过程直到收敛为止,其中k=1,2,…k=1,2,\ldots。这个过程的终止条件可以是∥αkdk∥\lVert\alpha_k\mathbf{d}_k\rVert变得足够小或者αk≤Kα0\alpha_k\leq K\alpha_0,其中KK是一个很小的正常数。对于最速下降法来说,典型的求解轨迹如图4所示。


图2

方向正交\textbf{方向正交}

对于最速下降法,解的轨迹服从zig-zag模式,如图4所示。如果每次迭代所选的α\alpha都使得f(xk+αdk)f(\mathbf{x}_k+\alpha\mathbf{d}_k)最小,那么相邻的方向是正交的。为了证明这个结论,注意到

df(xk+αdk)dα=∑i=1n∂f(xk+αdk)∂xkid(xki+αdki)dα=∑i=1ngi(xk+αdk)dki=g(xk+αdk)Tdk

\begin{align*} \frac{df(\mathbf{x}_k+\alpha\mathbf{d}_k)}{d\alpha} &=\sum_{i=1}^n\frac{\partial f(\mathbf{x}_k+\alpha\mathbf{d}_k)}{\partial x_{ki}}\frac{d(x_{ki}+\alpha d_{ki})}{d\alpha}\\ &=\sum_{i=1}^ng_i(\mathbf{x}_k+\alpha\mathbf{d}_k)d_{ki}\\ &=\mathbf{g}(\mathbf{x}_k+\alpha\mathbf{d}_k)^T\mathbf{d}_k \end{align*}

其中g(xk+αdk)\mathbf{g}(\mathbf{x}_k+\alpha\mathbf{d}_k)是点xk+αdk\mathbf{x}_k+\alpha\mathbf{d}_k处的梯度,如果α∗\alpha^*是最小化f(xk+αdk)f(\mathbf{x}_k+\alpha\mathbf{d}_k)的α\alpha值,那么

g(xk+α∗dk)Tdk=0

\mathbf{g}(\mathbf{x}_k+\alpha^*\mathbf{d}_k)^T\mathbf{d}_k=0

或者

dTk+1dk=0

\mathbf{d}_{k+1}^T\mathbf{d}_k=0

其中

dk+1=−g(xk+α∗dk)

\mathbf{d}_{k+1}=-\mathbf{g}(\mathbf{x}_k+\alpha^*\mathbf{d}_k)

是点xk+α∗dk\mathbf{x}_k+\alpha^*\mathbf{d}_k处的最速下降方向。从效果上看,相邻方向dk,dk+1\mathbf{d}_k,\mathbf{d}_{k+1}如图4那样是正交的。

消除线搜索\textbf{消除线搜索}

如果可以求出f(x)f(\mathbf{x})的海森矩阵,那么我们可以用解析法求出最小化f(xk+αd)f(\mathbf{x}_k+\alpha\mathbf{d})的α\alpha值,用αk\alpha_k表示。如果δk=αdk{\delta}_k=\alpha\mathbf{d}_k,那么根据泰勒级数可知

f(xk+δk)≈f(xk)+δTkgk+12δTkHkδk

f(\mathbf{x}_k+{\delta}_k)\approx f(\mathbf{x}_k)+{\delta}_k^T\mathbf{g}_k+\frac{1}{2}{\delta}_k^T\mathbf{H}_k{\delta}_k

如果dk\mathbf{d}_k是最速下降方向,例如

δk=−αgk

{\delta}_k=-\alpha\mathbf{g}_k

那么我们可以得出

f(xk−αgk)≈f(xk)−αgTkgk+12α2gTkHkgk

f(\mathbf{x}_k-\alpha\mathbf{g}_k)\approx f(\mathbf{x}_k)-\alpha\mathbf{g}_k^T\mathbf{g}_k+\frac{1}{2}\alpha^2\mathbf{g}_k^T\mathbf{H}_k\mathbf{g}_k

对其求导并等于零得

f(xk−αgk)dα≈−gTkgk+αgTkHkgk=0

\frac{f(\mathbf{x}_k-\alpha\mathbf{g}_k)}{d\alpha}\approx-\mathbf{g}_k^T\mathbf{g}_k+\alpha\mathbf{g}_k^T\mathbf{H}_k\mathbf{g}_k=0

或者

α=αk≈gTkgkalphagTkHkgk

\alpha=\alpha_k\approx\frac{\mathbf{g}_k^T\mathbf{g}_k}{alpha\mathbf{g}_k^T\mathbf{H}_k\mathbf{g}_k}


图3


图4

接下来,如果我们假设 α=αk\alpha=\alpha_k最小化 f(xk+αdk)f(\mathbf{x}_k+\alpha\mathbf{d}_k),那么我们得到

xk+1=xk−gTkgkalphagTkHkgkgk

\mathbf{x}_{k+1}=\mathbf{x}_k-\frac{\mathbf{g}_k^T\mathbf{g}_k}{alpha\mathbf{g}_k^T\mathbf{H}_k\mathbf{g}_k}\mathbf{g}_k

αk\alpha_k的精确性依赖于δk{\delta}_k的模长,因为泰勒级数的二次近似只在xk\mathbf{x}_k的邻域内有效。刚开始∥δk∥\lVert{\delta}_k\rVert相对比较大,所以αk\alpha_k将不准确,但不管怎样,因为在最速下降方向最小化f(xk+αdk)f(\mathbf{x}_k+\alpha\mathbf{d}_k),所以f(x)f(\mathbf{x})一直在减少,故αk\alpha_k的精确性在慢慢提高,甚至每次迭代都能实现最大减少f(x)f(\mathbf{x}),因此能实现收敛。对于二次函数来说,上面的近似符号可以改成等号,因此每次迭代α=αk\alpha=\alpha_k都能最大程度减少f(x)f(\mathbf{x})。

如果无法得到海森矩阵,那么我们可以计算点xk,xk−α̂ gk\mathbf{x}_k,\mathbf{x}_k-\hat{\alpha}\mathbf{g}_k处的f(x)f(\mathbf{x})值来确定αk\alpha_k,其中α̂ \hat{\alpha}是αk\alpha_k的估计值。如果

fk=f(xk)f̂ =f(xk−α̂ gk)

f_k=f(\mathbf{x}_k)\quad\hat{f}=f(\mathbf{x}_k-\hat{\alpha}\mathbf{g}_k)

那么根据泰勒级数可得

f̂ ≈−α̂ gTkgk+12α̂ 2gTkHkgk

\hat{f}\approx-\hat{\alpha}\mathbf{g}_k^T\mathbf{g}_k+\frac{1}{2}\hat{\alpha}^2\mathbf{g}_k^T\mathbf{H}_k\mathbf{g}_k

或者

gTkHkgk≈2(f̂ −fk+α̂ gTkgk)α̂ 2

\mathbf{g}_k^T\mathbf{H}_k\mathbf{g}_k\approx\frac{2(\hat{f}-f_k+\hat{\alpha}\mathbf{g}_k^T\mathbf{g}_k)}{\hat{\alpha}^2}

从上式可得

αk≈g)kTgkα̂ 22(f̂ −fk+α̂ gTkgk)

\alpha_k\approx\frac{\mathbf{g})k^T\mathbf{g}_k\hat{\alpha}^2}{2(\hat{f}-f_k+\hat{\alpha}\mathbf{g}_k^T\mathbf{g}_k)}

合适的α̂ \hat{\alpha}为αk−1\alpha_{k-1},即前一个迭代中的最优α\alpha。对于第一次迭代我们用α̂ =1\hat{\alpha}=1。

收敛\textbf{收敛}

如果函数f(x)∈C2f(\mathbf{x})\in C^2有局部最小点x∗\mathbf{x}^*且x=x∗\mathbf{x}=\mathbf{x}^*处的海森矩阵是正定的,那么可以说明如果xk\mathbf{x}_k足够靠近x∗\mathbf{x}^*,我们有

f(xk+1)−f(x∗)≤(1−r1+r)2[f(xk)−f(x∗)]

f(\mathbf{x}_{k+1})-f(\mathbf{x}^*)\leq\left(\frac{1-r}{1+r}\right)^2[f(\mathbf{x}_k)-f(\mathbf{x}^*)]

其中

r=Hk的最小特征值Hk的最大特征值

r=\frac{\mathbf{H}_k\text{的最小特征值}}{\mathbf{H}_k\text{的最大特征值}}

更进一步,如果f(x)f(\mathbf{x})是二次函数,那么上面的不等式对所有kk都成立。从效果上看,如果条件成立,那么最速下降法线性收敛,其收敛率为

β=≤(1−r1+r)2

\beta=\leq\left(\frac{1-r}{1+r}\right)^2

显然,如果Hk\mathbf{H}_k的特征值基本都相等,那么收敛率比较高;如果至少有一个比最大值特征值小,那么收敛率就比较低。

H\mathbf{H}的特征值λi,i=1,2,…,n\lambda_i,i=1,2,\ldots,n确定几何平面

xTHx=常数

\mathbf{x}^T\mathbf{H}\mathbf{x}=\text{常数}

这个等式给出了xTHx\mathbf{x}^T\mathbf{H}\mathbf{x}的轮廓并且如果H\mathbf{H}是正定的,那么该轮廓是椭球,其轴长为1/λi‾‾√1/\sqrt{\lambda_i}。如果变量个数为二,那么轮廓是椭圆,轴长分别为1/λ1‾‾‾√,1/λ2‾‾‾√1/\sqrt{\lambda_1},1/\sqrt{\lambda_2},因此如果在二维问题上使用最速下降法,当轮廓接近圆时收敛最快,如果就是圆即r=1r=1,那么一次迭代就达到收敛。另一方面,如果轮廓近似椭圆或者说函数存在细长的谷底,那么收敛就非常慢,尤其是在靠近解的地方。rr对收敛的影响通过比较图4与图5就能明显的看出来。


图5

从效果上看,最速下降法试着让梯度减小到零,因为鞍点处的梯度也是零,所以如果这样的点是解的话可能存在问题。然而这样的解基本是不可能,首先,将鞍点作为下次的迭代点这种概率非常低,其次,鞍点邻域内始终有下降方向。

尺度\textbf{尺度}

对某个特定的优化问题,H\mathbf{H}的特征值或者说最速下降法的性能很大程度上依赖于所选的变量,例如在一维或二维问题中,轮廓是偏向于圆还是椭圆依赖于单位的选择,因此通过伸缩变量这种变量变换的方式可以提高收敛速率。

一种可能的伸缩方式是令

x=Ty

\mathbf{x}=\mathbf{Ty}

其中T\mathbf{T}是对角矩阵,然后求解问题

minimizey h(y)=f(x)|x=Ty

\text{minimize}_y\ h(\mathbf{y})=f(\mathbf{x})|_{\mathbf{x=Ty}}

新问题的梯度与海森矩阵分别为

gh=TgxHh=TTHT

\mathbf{g}_h=\mathbf{Tg}_x\quad\mathbf{H}_h=\mathbf{T}^T\mathbf{HT}

因此最速下降方向以及与问题相关的特征值都发生了变化。但是不幸的是,T\mathbf{T}的选择严重依赖具体的问题,对此没有一般的法则。不过有个小技巧,那就是尽量平衡二阶导

∂2f∂x2ifor i=1,2,…,n

\frac{\partial^2f}{\partial x_i^2}\quad\text{for}\ i=1,2,\ldots,n

漫步最优化三十二——最速下降法相关推荐

  1. 漫步最优化四十二——Partan法

    漆黑的冷空中有你,\textbf{漆黑的冷空中有你,} 惺忪的眼睛中有你,\textbf{惺忪的眼睛中有你,} 心底的记忆中有你,\textbf{心底的记忆中有你,} 你留在我的脑海中,\textbf ...

  2. 漫步最优化三十九——Fletcher-Reeves法

    你的目光像桥梁,\textbf{你的目光像桥梁,} 指引我通往你心路的捷径.\textbf{指引我通往你心路的捷径.} 你的魅力像磁铁,\textbf{你的魅力像磁铁,} 加快我靠向你身边的步伐.\t ...

  3. 漫步最优化三十八——非二次函数最小化

    你独一无二的声音,\textbf{你独一无二的声音,} 穿越了繁杂喧嚣,\textbf{穿越了繁杂喧嚣,} 回荡在我的脑中.\textbf{回荡在我的脑中.} 你独一无二的声音,\textbf{你独一 ...

  4. 漫步最优化三十六——基本共轭方向法

    用我的眼神,\textbf{用我的眼神,} 拍下你的睫毛,\textbf{拍下你的睫毛,} 你微笑的嘴角.\textbf{你微笑的嘴角.} 你的微笑像毒药,\textbf{你的微笑像毒药,} 却洋溢着 ...

  5. 漫步最优化三十五——共轭

    我对你的喜欢像玻璃,\textbf{我对你的喜欢像玻璃,} 透明的能被你看穿.\textbf{透明的能被你看穿.} 我对你的思念像影子,\textbf{我对你的思念像影子,} 傍晚时分就被拉长.\te ...

  6. 漫步最优化三十四——高斯-牛顿法

    你的温柔像羽毛,\textbf{你的温柔像羽毛,} 秘密躺在我怀抱.\textbf{秘密躺在我怀抱.} 你的微笑像拥抱,\textbf{你的微笑像拥抱,} 只有我能看到.\textbf{只有我能看到. ...

  7. 漫步最优化三十——非精确线搜索

    说明:今天10.24,祝程序员们节日快乐,呜啦啦啦\textbf{说明:今天10.24,祝程序员们节日快乐,呜啦啦啦} 爱上一个人后,\textbf{爱上一个人后,} 发现自己变得主动了,\textb ...

  8. 漫步数理统计三十二——中心极限定理

    如果X1,X2,-,XnX_1,X_2,\ldots,X_n是均值为μ\mu,方差为σ2\sigma^2正态分布的随机样本,那么对任意正整数nn,随机变量 ∑n1Xi−nμσn‾‾√=n‾‾√(X¯n ...

  9. 漫步数学分析三十二——可微映射的连续性

    对于单变量实值函数而言,f:(a,b)→Rf:(a,b)\to R在x0x_0处可微,那么 limx→x0(f(x)−f(x0))=limx→x0(f(x)−f(x0)x−x0)⋅(x−x0)=f′( ...

最新文章

  1. Maven下载、安装和配置(转)
  2. 课程作业1:字符型强制转化为整型
  3. 分支管理---Feature分支
  4. SpringSpringMVCMybatis框架-张晨光-专题视频课程
  5. 【渝粤教育】国家开放大学2019年春季 0691-22T物理化学及实验 参考试题
  6. oracle 添加字段
  7. python输入直角三角形a、b、输出斜边c_编写一个程序,输入直角三角形两条直角边a和b的长度,利用勾股定理计算斜边c的长度。要求结果保留2位...
  8. 多线程java_初学Java要注意什么 怎么掌握Java多线程知识
  9. tomcat7下配置session复制和nginx做负载均衡
  10. maven多个子项目、父项目之间的引用问题
  11. 正则修饰符、用敏感词库替换
  12. excel手机版_如何一次性将单位所有人的手机号导入手机通讯录中?
  13. html+浏览器自动全屏,web 使网站在浏览器中全屏显示 fullscreen=yes
  14. android字体右对齐,Android TextView将文本右对齐和左对齐
  15. 像素、分辨率、尺寸概念与关系
  16. 超详细的抖音养号上热门技巧,看完这一篇就够了
  17. rgb转换 css 字体
  18. 如何在无线路由器下,再接无线路由器?
  19. ACM里的生成函数初探
  20. Django3在网页上生成二维码

热门文章

  1. 为什么要选择基于NAS存储方案
  2. Enterprise Vault 2007 Series [PST Migration]
  3. 计算二个日期经过几月又几天
  4. 收藏网站制作常用经典css.div.布局.设计实例打包下载
  5. Git如何进行减少提交历史数量以及修改自己的commit中的邮箱
  6. php pjax数据返回,如何将Pjax整合进网站,实现全站无刷新加载?
  7. BUAA-OO-2019 第三单元总结
  8. 三范式理解 数据库原理
  9. 【Day04】介绍防抖节流原理、区别以及应用,并用 JavaScript 进行实现
  10. 【Java】使用Switch语句实现成绩等级判断