参考书:MLAPP
机器学习中,从监督学习到非监督学习、从线性回归到聚类降维,最终都转化成求解一个优化问题。本文从数学角度记录机器学习中的优化问题,内容包括优化问题类型、求解算法、应用,这其实对应着:
机器学习常用最小化损失函数的思想求解参数,其优化问题对应:
min θ ∈ Θ L ( θ ) \min_{\theta\in\Theta}L(\theta) θ∈ΘminL(θ)
不同的 L L L和变量空间 Θ \Theta Θ确定了不同的优化模型,而模型的特征和性质决定了解的存在性、判断最优解和求解的方法。
凸优化VS非凸优化
假设目标函数 L L L是凸函数,并且参数空间 Θ \Theta Θ是凸集,那么模型就是凸优化模型,否则即为非凸模型。
凸优化是一类性质非常好的模型,理论十分完善。由于凸优化的局部最优就是全局最优,所以求解凸优化时只需要找到局部最优解即可。
而非凸优化不仅不能保证局部解就是全局解,还存在一类非常特殊的鞍点,使得梯度下降陷入局部解无法继续下降。
光滑优化VS非光滑优化
假设目标函数 L L L满足一定的光滑条件,比如拉普拉斯光滑条件 ∣ L ( x ) − L ( y ) ∣ ≤ a ∣ x − y ∣ |L(x)-L(y)|\leq a|x-y| ∣L(x)−L(y)∣≤a∣x−y∣就称为一阶光滑。
优化问题常用梯度下降,对于非光滑的目标函数,无法求得梯度,因此需要用到别的方法求解,比如下一节提到的次梯度下降等。
一阶方法是指在求解过程中用到了目标函数的一阶梯度(次梯度)信息。
迭代格式:
θ t + 1 = θ t + η t d t \theta_{t+1}=\theta_t+\eta_td_t θt+1=θt+ηtdt
二阶方法指用到了目标函数的二阶导数信息。
迭代格式:
θ t + 1 = θ t − η t H t − 1 g t \theta_{t+1}=\theta_t-\eta_tH_t^{-1}g_t θt+1=θt−ηtHt−1gt
其中 H t H_t Ht是二阶hessian矩阵
实践中,求解二阶hessian矩阵十分耗时,一般会对二阶hessian矩阵进行近似,按照不同的规则,有不同的近似方法,常用的是BFGS:
之前的目标函数都是确定性的,无随机变量,但在实际机器学习中目标函数中会有随机变量:
L ( θ ) = E q ( z ) [ L ( θ , z ) ] L(\theta)=\mathbb E _{q(z)}[L(\theta,z)] L(θ)=Eq(z)[L(θ,z)]
每步迭代格式:
θ t + 1 = θ t − η t g t \theta_{t+1}=\theta_t-\eta_tg_t θt+1=θt−ηtgt
其中 g t = ∇ θ L ( θ t , z t ) , z t ∼ q ( z ) g_t=\nabla_{\theta} L(\theta_t,z_t),z_t\sim q(z) gt=∇θL(θt,zt),zt∼q(z)
例如在样本数N,损失函数 l ( y , f ( x ) ) l(y,f(x)) l(y,f(x))的损失最小化优化模型中:
L ( θ t ) = 1 N ∑ n = 1 N l ( y n , f ( x ( i ) , θ t ) ) L(\theta_t)=\frac{1}{N}\sum_{n=1}^N l(y_n,f(x^{(i)},\theta_t)) L(θt)=N1n=1∑Nl(yn,f(x(i),θt))
迭代格式:
θ t + 1 = θ t − η t M t − 1 g t \theta_{t+1}=\theta_t-\eta_tM_t^{-1}g_t θt+1=θt−ηtMt−1gt
其中 M t − 1 M_t^{-1} Mt−1就是preconditioned矩阵,它不一定涉及二阶导数信息
有时候求解原目标函数比较困难,退一步求解一个它的下界,这个下界要满足几个条件:
这样的函数称为surrogate function,满足
Q ( θ , θ t ) ≤ L ( θ ) , Q ( θ t , θ t ) = L ( θ t ) Q(\theta,\theta_t)\leq L(\theta),Q(\theta_t,\theta_t)=L(\theta_t) Q(θ,θt)≤L(θ),Q(θt,θt)=L(θt)
每步转而求解