本文涉及矩阵,基本优化方法(拉格朗日,梯度下降,牛顿方法等)对一些常见方法的进行总结记录。
了解其基本加减乘除转置运算以及导数的求法。
上面的分解就是奇异值分解(Singular Value Decomposition,SVD)。其中U的列向量为A的左奇异向量,V的列向量为右奇异向量。 σi 称为奇异值(singular value)。A的秩(rank)就等于奇异值的个数。
奇异值的用途很广泛,比如低秩矩阵近似(low-rank matrix approximation)。
梯度下降法是求解无约束最优化问题的一种常见方法。
假设 f(x) 是 Rn 上具有一阶连续偏导的函数,要求解的无约束最优化问题是
当目标函数是凸函数时,梯度下降是全局最优解。一般情况下,并不是最优解,其速度也未必是很快的。
梯度下降是一种一阶优化方法,牛顿方法是二阶方法,其迭代次数远小于梯度下降法。但牛顿法计算二阶导数时涉及到海森矩阵的求逆,计算复杂度很高,在高维问题中几乎不可行。于是用其近似函数便诞生了拟牛顿方法。
牛顿法(Newton method)和拟牛顿法(quasi Newton method)也是求解无约束最优化问题的常用方法。收敛速度快。牛顿法是迭代算法,每一步要求解目标函数的海赛矩阵(Hesse matrix)的逆矩阵,计算比较复杂。拟牛顿发通过正定矩阵近似海赛矩阵的逆矩阵或海赛矩阵来简化计算。
假设 f(x) 具有二阶连续偏导,若第k次迭代值为 xk ,则可将f(x)在 xk 附近二阶泰勒展开:
在点 xk 的值。f(x)有极值的必要条件是在极值点处一阶导数为0。特别是当 H(xk) 是正定矩阵时,f(x)的极值为极小值。
牛顿法利用极小点的必要条件:
因为求 H−1k 计算比较复杂。考虑用一个n阶矩阵 Gk=G(xk) 来近似代替 H−1k=H−1xk 。这就是拟牛顿法基本思想。
在 ∇f(x)=gk+Hk(x−xk) 中,取 x=xk+1 :
如果 Hk 是正定的( H−1k 也是正定的),那么可以保证牛顿法搜索方向 pk 是下降方向。
拟牛顿法将 Gk 作为 H−1k 的近似,要满足拟牛顿条件:
即Davidon-Fletcher-Powll算法。其选择 Gk+1 的方法是假设每一步迭代中 Gk+1 由 Gk 加上两个附加项构成。
这样就可以得到 Gk+1 的迭代公式:
以上就是DFP算法。如果初始 G0 是正定的,那么可证明迭代过程中 Gk 都是正定的。
即Broyden-Fletcher-Goldfarb-Shanno算法,算是最流行的拟牛顿算法。
我们考虑用 Bk 逼近 H ,拟牛顿条件为:
Bk+1δk=yk
同样的方法:
得到迭代公式:
简而言之:
Gk+1=aGDFP+(1−a)GBFGS
前两种方法的线性组合也满足拟牛顿条件,而且都是正定的。这里 0≤a≤1 ,这样得到的一类拟牛顿算法称为Broyden类算法。
coordinate descent是一种非梯度优化方法,它在每步迭代中沿一个坐标方向进行搜索,通过循环使用不同的坐标方向来达到目标函数的局部最小值。
坐标下降法不需要计算目标函数的梯度,在每步迭代中仅求解一维搜索问题。但若目标函数不光滑,则有可能陷入非驻点。
上面解决的都是无约束最优化问题,对于余数最优化问题中,我们常用拉格朗日对偶性(Lagrange duality)将其转换。在此我们仅说下结论。
原始问题:假设f(x),c(x),h(x)是R上的连续可微函数,考虑约束最优化:
其广义拉格朗日函数(generailized Lagrange function)
如果f(x)和c(x)是凸函数,h(x)是仿射函数,并且不等式约束c(x)是严格可行的,则x,a,b分别是原始问题和对偶问题的解的充要条件是其满足KKT(Karush-Kuhn-Tucker)条件:
∇xL(x,a,b)=0
∇aL(x,a,b)=0
∇bL(x,a,b)=0
aici(x)=0,i=1,2,…,k
ci(x)≤0,i=1,2,…,k
ai(x)≥0,i=1,2,…,k
hj(x)=0,i=1,2,…,l
二次规划(Quadratic Programmig, QP)包括凸二次优化和非凸二次优化。常用的解法有椭球法,内点发,增广拉格朗日法,梯度投影法等。