凸函数
若函数满足
其中,,则称是凸函数。可以是多元函数。
Jensen不等式
若为凸函数,则对于任意点集,若,
【证明】利用数学归纳法证明
首先,当,
当时,
假定当n=k时,满足
当时,
故得证。
牛顿法
简述
牛顿法是求的极值,一般是最小化。牛顿法的思路是:随机(或者根据某种规则)选择一个起始点,用quadratic form来逼近附近的图形。此时,获得了一个二次逼近函数。对该二次逼近函数求极值点(通过偏导数等于0),将该极值点作为新的起始点,重复以上流程(即在新起始点附近用二次函数逼近原函数),直至收敛。
算法
用二次函数逼近,
其中Hessian矩阵为函数的二阶偏导数矩阵,
为求该逼近函数的极值点,我们对其求偏导数,并令其等于0
求得新的起始点
令,上式可化为
详述
引导:首先,让我们从导数的定义开始。已知和点,
以上当趋近于a的时候取等号。我们将条件放宽一点,如果x不趋近a,将等号改成约等号
将上式移项得
等式(3)可以用来求在处的近似值。的取值越趋近,求出来的近似值越趋近真实值。此处我们无法通过迭代,使得我们求得的越来越趋近于真实值。同时,我们不难发现,其实(3)就是泰勒展开的前两项。
那牛顿法的精髓迭代什么时候出现呢?让我们试图寻找的解吧。条件允许的话,我们可以求得的解析解。如果条件不允许呢(什么时候不允许?)?将代入等式(3),得
由(4)可以求出的近似解,但如果a取值离真实解差太多,近似解误差较大。不用慌,我们可以重复过程(4),每次都用上次求得的作为a的取值,最终x会收敛于x的真实值(为什么会收敛?)。
同样的道理,如果我们想求的最优解呢?我们可以通过求解函数的导数,令导数等于0,求得的x便是最优解处的变量x。但同样我们可能无法获取解析解,因此,我们采用牛顿法求解,只不过原函数变成了原函数求导
通过迭代求解(5),可以求解的近似值了。
多元函数的逼近(local approximation)
拟牛顿法
简述
牛顿法需要计算Hessian矩阵的逆矩阵,首先我们不一定能保证Hessian存在逆矩阵,其次逆矩阵的运算复杂度比较高,消耗计算资源。为解决这个问题,拟牛顿法的思想就是用一个近似的矩阵来代替Hessian矩阵的逆矩阵,在迭代过程中,矩阵也通过迭代的方式进行更新。
如何更新矩阵U呢?先看一下,在迭代过程中,我们需要的求解的变量和更新的变量
变量 | 描述 | 更新条件 | |
---|---|---|---|
每次迭代的起始点 | |||
原函数在点处的梯度向量 | |||
代替Hessian矩阵的逆矩阵 | |||
根据算法中等式(3),将代入其中,得
此处如果疑惑为何将代入等到的式子与牛顿法求解的公式不一样的话,仔细分析(3.1)和(1.5)不难发现,等式成立,是因为在求二次逼近函数的最小值时,取,因此有
由等式(3.1)可知,如果知道,我们可以求得
在牛顿法中,我们通过来求得,从而求出;在拟牛顿法中,我们通过,求得
疑惑的地方:为什么拟牛顿条件由可以转换为。原本等式满足的是对于t而言,为何对也成立???
拟牛顿条件
先看牛顿法:取值(或来自上一次迭代),二次逼近函数,求导并求出Hessian矩阵,获取极值点,得到;
拟牛顿法:取值(或来自上一次迭代),上次迭代得到的近似矩阵,求,根据拟牛顿条件求解。
分别将在和展开:
对上式分别求梯度:
对(a)将代入,对(b)将代入,分别得以下:
对于拟牛顿法,在已知的时候,我们要求的是,也即,但如果根据(d)来求解,得到的Hessian矩阵不能保证是正定的。因此,我们需要采用迭代的方式来求解。(d)作为拟牛顿条件。
《统计学习方法》中,用的是(c)来推出拟牛顿条件,给我带来了很大的困扰。因为(c)求出的是的逆矩阵的approximation矩阵,但是用来求,而是已知的,我们想求的是
总结一下,拟牛顿的思想是,假设在处的二次逼近函数在处的梯度等于原函数在处的梯度,然后通过这个条件(限制)来求解Hessian矩阵的逆矩阵的趋近矩阵。虽然这个趋近不一定吻合,但随着不断的迭代,越来越趋近目标值。
那么接下来我们的工作就是,根据拟牛顿条件(d)来定义。
DFP算法
该算法定义
因为需要满足正定矩阵的要求,我们令
我们希望找到合适的
加入拟牛顿条件,可得
因为(结合律),
此时,我们令,则
此时,我们令,则拟牛顿条件满足了,根据,求出
因此
其中,正定矩阵
BFGS算法
DFP算法构造的是Hessian矩阵的逆矩阵的近似矩阵,BFGS则直接构造Hessian矩阵的近似矩阵。
网友评论