进阶优化算法

本文主要讨论在优化模型求解中用到的高级优化算法,这些算法基于常见的优化算法思想,采用一些非常巧妙的技巧,而使得算法到达更快的收敛等特点。这些高级优化算法也只限定于特定的模型求解,下面将对其进行简单总结。

1. Surrogate方法

首先我们考虑一些简单的优化问题 minx12xx022+λx1 ,事实上我们只需要对 x 向量中的每一个元素进行展开求解即可,它的优化解的表达式如下:

x=Sλ(x0)={0x02λx0sign(x0)λotherwise

其中, sign 为符号函数。
下面我们考虑 2 范数正则化约束,问题形式化为 minx12xx022+λx2 ,同理我们只需要对 x 向量中的每一个元素进行展开求解即可,它的优化解的表达式如下:
x=[(1λx02)x0]+={0x02λ(1λx02)x0otherwise

考虑 范数正则化约束,问题形式化为 minx12xx022+λx 。由于 的共轭为 1 barrior函数,因此上述问题的对偶形式为
miny12yx022s.t.y1<λ

其中 y=x0x 。通过转换的形式则通过 1 约束问题很好求解。下面介绍另一种求解 范数正则化约束问题。首先判断 x01 的取值,如果小于等于 λ ,则 x=0 ;否则,我们对 x0 向量中每一个元素取绝对值,并安降序排列,记为 {v1,,vj,,vM} 。取 j^=max{j:λjr=1(vrvj)>0} 。则最后 x 的优化解形式如下:
xi=sign(x0,i)min(vi,(r=1j^vrλ)/j^)i=1,,M

下面我们继续考虑矩阵 核范数正则化约束问题,该问题可以形式化为 minA12XA2F+A ,这类问题的求解一般采用矩阵的SVD分解, X=USVT ;再使用Surrogate策略。一般优化解的形式如下:
A=US^VT

其中 S^ 的表达式如下:
S^=T(S)=SϵS>ϵS+ϵS<ϵ0otherwise

2. Accelerated Gradient Algorithm

我们考虑一个常见的优化问题,形式化为 minWf(W)+λψ(W) ,函数的具体形式视情况而定。比如在机器学习领域, f(W) 一般为总体训练样本的损失函数, f(W)=1Nn(χn,W) χn={xn,yn} 为训练样本,而 为具体的损失函数,比如平方损失,logistic 损失,hinge损失等; ψ(W) 一般为待训练参数 W 的正则化约束,这里我们考虑混合约束 ψ(W)=W1, ψ(W)=W1,2 。该类混合约束在机器学习模型构建中经常用到,比如多任务建模中( f(W) 则为总体任务下总体训练样本的损失, W={wk}k wk 为第 k 个任务下待训练权重),所以有必要讨论其优化解。
一般而言,上式问题的求解可以采用子梯度下降法优化 W ,但遗憾的是收敛速度较慢。因此在优化目标问题中,对 f(W) W=Wt 处进行二阶泰勒近似展开,优化目标函数为:

minWf(Wt)+<WWt,f(Wt)>+L2WWt2F+λψ(W)

其中 <A,B>=Tr(ATB) 。下面对上式进行重新整理得:
minW12W(Wt1Lf(Wt))2F+λLW1,

其中 W1,=jWj ,即为每一行元素绝对值的最大值累加。为了简化上式,我们令 V=Wt1Lf(Wt) λ^=λL ,则
minW12WV2F+λ^W1,

同样,上式问题可以各个维度上的子问题求解,下面我们仅考虑矩阵 W,V 的第 i 行,记着 w,v 。那么子问题简化为:
minw12wv22+λ^w

如果原始问题为 ψ(W)=W1,2 混合范数约束,则此时的优化子问题为:
minw12wv22+λ^w2

因此上述问题求解。可知,该方法对优化目标函数采用泰勒近似展开达到对原问题的简化,从而加快算法的收敛速度。

猜你喜欢

转载自blog.csdn.net/step_forward_ml/article/details/78390809
今日推荐