本文主要讨论在优化模型求解中用到的高级优化算法,这些算法基于常见的优化算法思想,采用一些非常巧妙的技巧,而使得算法到达更快的收敛等特点。这些高级优化算法也只限定于特定的模型求解,下面将对其进行简单总结。
1. Surrogate方法
首先我们考虑一些简单的优化问题
minx12∥x−x0∥22+λ∥x∥1
,事实上我们只需要对
x
向量中的每一个元素进行展开求解即可,它的优化解的表达式如下:
其中, sign 为符号函数。
下面我们考虑 ℓ2 范数正则化约束,问题形式化为 minx12∥x−x0∥22+λ∥x∥2 ,同理我们只需要对 x 向量中的每一个元素进行展开求解即可,它的优化解的表达式如下:
考虑 ℓ∞ 范数正则化约束,问题形式化为 minx12∥x−x0∥22+λ∥x∥∞ 。由于 ℓ∞ 的共轭为 ℓ1 barrior函数,因此上述问题的对偶形式为
其中 y=x0−x 。通过转换的形式则通过 ℓ1 约束问题很好求解。下面介绍另一种求解 ℓ∞ 范数正则化约束问题。首先判断 ∥x0∥1 的取值,如果小于等于 λ ,则 x=0 ;否则,我们对 x0 向量中每一个元素取绝对值,并安降序排列,记为 {v1,⋯,vj,⋯,vM} 。取 j^=max{j:λ−∑jr=1(vr−vj)>0} 。则最后 x 的优化解形式如下:
下面我们继续考虑矩阵 ℓ∗ 核范数正则化约束问题,该问题可以形式化为 minA12∥X−A∥2F+∥A∥∗ ,这类问题的求解一般采用矩阵的SVD分解, X=USVT ;再使用Surrogate策略。一般优化解的形式如下:
其中 S^ 的表达式如下:
2. Accelerated Gradient Algorithm
我们考虑一个常见的优化问题,形式化为
minWf(W)+λψ(W)
,函数的具体形式视情况而定。比如在机器学习领域,
f(W)
一般为总体训练样本的损失函数,
f(W)=1N∑nℓ(χn,W)
,
χn={xn,yn}
为训练样本,而
ℓ
为具体的损失函数,比如平方损失,logistic 损失,hinge损失等;
ψ(W)
一般为待训练参数
W
的正则化约束,这里我们考虑混合约束
一般而言,上式问题的求解可以采用子梯度下降法优化
其中 <A,B>=Tr(ATB) <script type="math/tex" id="MathJax-Element-4160"> =Tr(A^TB)</script>。下面对上式进行重新整理得:
其中 ∥W∥1,∞=∑j∥Wj∥∞ ,即为每一行元素绝对值的最大值累加。为了简化上式,我们令 V=Wt−1L∇f(Wt) 和 λ^=λL ,则
同样,上式问题可以各个维度上的子问题求解,下面我们仅考虑矩阵 W,V 的第 i 行,记着
如果原始问题为 ψ(W)=∥W∥1,2 混合范数约束,则此时的优化子问题为:
因此上述问题求解。可知,该方法对优化目标函数采用泰勒近似展开达到对原问题的简化,从而加快算法的收敛速度。