机器学习部分数学基础

本文涉及矩阵,基本优化方法(拉格朗日,梯度下降,牛顿方法等)对一些常见方法的进行总结记录。

矩阵

了解其基本加减乘除转置运算以及导数的求法。

奇异值分解

A=UVT

其中U,T都是酉矩阵, 是对角矩阵,且对角元素为 σi σi 非负,而且 σ1σ2

上面的分解就是奇异值分解(Singular Value Decomposition,SVD)。其中U的列向量为A的左奇异向量,V的列向量为右奇异向量。 σi 称为奇异值(singular value)。A的秩(rank)就等于奇异值的个数。

奇异值的用途很广泛,比如低秩矩阵近似(low-rank matrix approximation)。

优化

梯度下降法

梯度下降法是求解无约束最优化问题的一种常见方法。
假设 f(x) Rn 上具有一阶连续偏导的函数,要求解的无约束最优化问题是

minf(x)

梯度下降法选取适当的初值 x0 ,由于负梯度方向是使函数值下降最快的方向,以负梯度方向更新 x ,直到收敛。
由于 f(x) 具有一阶连续偏导,若第k次迭代值为 xk ,则可将 f(x) xk 附近进行一阶泰勒展开:
f(x)=f(xk)+gTk(xxk)
这里, gk=g(xk=f(xk)) f(x) xk 的梯度。
求出第k+1次迭代值 xk+1
xk+1xk+λkpk

其中, pk 是搜索方向,取负梯度方向 pk=f(xk) λk 是步长,由一维搜索确定。

当目标函数是凸函数时,梯度下降是全局最优解。一般情况下,并不是最优解,其速度也未必是很快的。
梯度下降是一种一阶优化方法,牛顿方法是二阶方法,其迭代次数远小于梯度下降法。但牛顿法计算二阶导数时涉及到海森矩阵的求逆,计算复杂度很高,在高维问题中几乎不可行。于是用其近似函数便诞生了拟牛顿方法。

牛顿法与拟牛顿发法

牛顿法(Newton method)和拟牛顿法(quasi Newton method)也是求解无约束最优化问题的常用方法。收敛速度快。牛顿法是迭代算法,每一步要求解目标函数的海赛矩阵(Hesse matrix)的逆矩阵,计算比较复杂。拟牛顿发通过正定矩阵近似海赛矩阵的逆矩阵或海赛矩阵来简化计算。

牛顿法

假设 f(x) 具有二阶连续偏导,若第k次迭代值为 xk ,则可将f(x)在 xk 附近二阶泰勒展开:

f(x)=f(xk)+gTk(xxk)+12(xxk)TH(xk)(xxk)

gk 是梯度,$H(x^k)是海赛矩阵

H(x)=[2fxi]n×n

在点 xk 的值。f(x)有极值的必要条件是在极值点处一阶导数为0。特别是当 H(xk) 是正定矩阵时,f(x)的极值为极小值。
牛顿法利用极小点的必要条件:

f(x)=0

假设 f(xk+1=0) :
f(x)=gk+Hk(xxk)

其中 Hk=H(xk) ,我们得到:
gk+Hk(xk+1xk)=0

所以:
xk+1=xkH1kpk

拟牛顿法

因为求 H1k 计算比较复杂。考虑用一个n阶矩阵 Gk=G(xk) 来近似代替 H1k=H1xk 。这就是拟牛顿法基本思想。

f(x)=gk+Hk(xxk) 中,取 x=xk+1 :

gk+1gk=Hk(xk+1xk)

yk=gk+1gk,δk=xk+1xk ,则:
yk=Hkδk

或者:
H1kyk=δk

这称为拟牛顿条件。

如果 Hk 是正定的( H1k 也是正定的),那么可以保证牛顿法搜索方向 pk 是下降方向。
拟牛顿法将 Gk 作为 H1k 的近似,要满足拟牛顿条件:

Gk+1yk=δk

按照拟牛顿条件,在每次迭代中可以选择更新矩阵 Gk+1 :
Gk+1=Gk+ΔGk

这种选择有一定的灵活性,因此有多种具体实现方法。

DPF算法

即Davidon-Fletcher-Powll算法。其选择 Gk+1 的方法是假设每一步迭代中 Gk+1 Gk 加上两个附加项构成。

Gk+1yk=Gkyk+Pkyk+Qkyk

为使其满足拟牛顿条件,可令: Pkyk=δk Qkyk=Gkyk
我们可以通过如下公式找到符合条件的PQ:
Pk=δkδTkδTkyk

Qk=GkykyTkGkyTkGkyk

这样就可以得到 Gk+1 的迭代公式:

Gk+1=Gk+δkδTkδTkykGkykyTkGkyTkGkyk

以上就是DFP算法。如果初始 G0 是正定的,那么可证明迭代过程中 Gk 都是正定的。

BFGS算法

即Broyden-Fletcher-Goldfarb-Shanno算法,算是最流行的拟牛顿算法。
我们考虑用 Bk 逼近 H ,拟牛顿条件为:
Bk+1δk=yk
同样的方法:

Bk+1δk=Bkδk+Pkδk+Qkδk

Pkδk=yk

Qkδk=Bkδk

得到迭代公式:

Bk+1=Bk+ykyTkyTkδkBkδkδTkBkδTkBkδk

跟DFP算法一样,若 B0 正定,则 Bk 正定。

Broyden类算法

简而言之:
Gk+1=aGDFP+(1a)GBFGS
前两种方法的线性组合也满足拟牛顿条件,而且都是正定的。这里 0a1 ,这样得到的一类拟牛顿算法称为Broyden类算法。

坐标下降法

coordinate descent是一种非梯度优化方法,它在每步迭代中沿一个坐标方向进行搜索,通过循环使用不同的坐标方向来达到目标函数的局部最小值。

坐标下降法不需要计算目标函数的梯度,在每步迭代中仅求解一维搜索问题。但若目标函数不光滑,则有可能陷入非驻点。

拉格朗日最优化

上面解决的都是无约束最优化问题,对于余数最优化问题中,我们常用拉格朗日对偶性(Lagrange duality)将其转换。在此我们仅说下结论。
原始问题:假设f(x),c(x),h(x)是R上的连续可微函数,考虑约束最优化:

minf(x)

s.t.ci(x)0,i=1,2,,k

hj(x)=0,j=1,2,,l

其广义拉格朗日函数(generailized Lagrange function)

L(x,a,b)=f(x)+i=1kaici(x)+j=1lbjhj(x)

如果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)包括凸二次优化和非凸二次优化。常用的解法有椭球法,内点发,增广拉格朗日法,梯度投影法等。

你可能感兴趣的:(机器学习)