1. 引言
零和约束Lasso问题在生物领域有着广泛的应用背景。这种约束模型适用于许多生物学问题,尤其是在基因组学和生物信息学领域。例如:文献[1]中考虑具有零和约束的Lasso问题,如下:
(1)
其中
表示欧式范数,
表示
范数,
为变量,
,
,
均为给定量。在一些组成数据的回归模型中,即表示整体百分比或比例的数据中,需要这种特殊结构的约束。
由于约束的特殊性,该类优化问题通常出现在许多不同的领域,例如地质学、生物学、生态学和经济学。如:在微生物组分析中,数据集通常是标准化的,并产生成分数据[2] [3]。因此,设计求解该类问题的高效算法具有更加广泛的应用价值。为了使求解该类问题的算法具有广泛的应用性,现考虑求解如下更一般的等式约束广义Lasso问题:
(2)
其中非光滑项函数
,
表示欧式范数,
表示
范数,
为变量
,
,
均为给定量;约束中的
表示线性映射;向量
。
近年来,许多学者利用该问题的特殊结构,建立了良好的算法用来求解模型(1)。例如,Lin等人于2014年在[4]中提出了一种通过循环坐标下降的拉格朗日方法解决子问题;而Altenbuchinge等人于2017年在[5]中提出了基于变量随机选择的坐标下降策略。对于复合凸优化问题,Li [6]等人提出了一种快速邻近点算法求解复合凸优化问题模型,并基于对偶原理的半光滑牛顿算法高效稳定地求解了邻近点算法所涉及的重要子问题。
此外,考虑到约束套索的更一般形式,2016年Gaines等人在[7]中分析了一种基于二次规划的方法和ADMM方法,2020年Deng等人在[8]中提出了一种半光滑牛顿增广拉格朗日方法,文献[7] [9] [10]中设计了路径算法。
基于以上算法的启发,本文的目标是将邻近点半光滑牛顿算法推广到用于求解带线性等式约束Lasso问题(2),并通过数值实验证实该算法求解该类带等式约束Lasso问题具有良好性能。
2. 理论知识
本节将讨论凸复合优化问题的一些稳定性性质。在之后的理论分析中可以很容易看出,这些稳定性性质是我们建立邻近点算法快速收敛的关键。
首先,给出邻近映射的定义,这将对分析邻近点算法起着至关重要的作用。
定义1 ([11] Definition 6.1) (proximal mapping)令
为有限维实值希尔伯特空间,
为凸且封闭的函数。给定参数
,邻近映射定义如下:
接下来将给出Moreau包络的具体定义,如下:
定义2 ([11] Definition 6.52) (Moreau envelope)给定适当的闭凸函数
且参数
,则函数h的Moreau包络为:
其中参数t称为光滑参数。
接下来,将给出有关非光滑性的相关分析的重要结论。
设
为两个有限维实向量空间。设
为
的一个开集,且
为局部Lipschitz连续函数。由Rademacher定理([12] Theorem 9.60)可知,函数
在
中几乎处处F可微。用
表示集合
中函数
均F可微的点集。用
表示函数
在点
处的B次微分,定义如下:
进一步,函数
在点x处的Clarke广义Jacobian矩阵是由
的凸包定义,即
,并且用
表示函数
在点x处沿着非零方向
的方向导数。
下面回顾一些关于半光滑性的概念。这有助于建立算法局部收敛的超线性速度。类似于[13]和[14],给出半光滑性的定义。
定义3 (半光滑性质) [13] [14]令
是局部Lipschitz连续的。令
为函数族,其中每个函数
为
到
的映射,并且满足
。函数F被称为在点
处关于
是半光滑的,若F在点
处方向可微且对于任意有
其中
表示当
时
的高阶无穷小量。
同样,函数F被称为在点
处关于
是强半光滑的,若F在点
处方向可微且对于任意有
其中
表示当
时
的同阶无穷小量。
在上述理论知识的基础上,将进行优化问题的具体算法设计。
3. 求解等式约束广义Lasso问题(2)
由于问题(2)中
范数的存在,使得问题不易求解,因此考虑采用邻近点算法(PPA)求解问题(2),邻近点算法求解产生了问题(2)的PPA子问题,此时PPA子问题的目标函数中两个变量可以完全分离,又保证了其强凸性。
3.1. PPA子问题
将问题(2)的目标函数Moreau-Yosida正则化后得PPA子问题:
(3)
其中
是正则化因子,
。
由于问题(2)的目标函数是凸函数,所以加入正则项后可得目标函数
是强凸的,因此在约束准则Slater条件成立的情况下,强对偶性是成立
的,即原始问题与对偶问题的对偶间隙为零,因此可以通过求解(3)的对偶问题的最优可行解,从而得到对应的原始问题(2)的最优可行解
。
3.2. 对偶问题
首先给出PPA子问题(3)的对偶问题。通过引入松弛变量z,问题(3)等价于
(4)
其拉格朗日函数为:
(5)
其中
,
分别是
,
对应的拉格朗日乘子。关于
极小化
得:
(6)
其中
是极小化拉格朗日函数(5)中的变量
得到的最优解,
的具体形式将通过如下的引理给出。
于是得到问题(4)的对偶问题:
(7)
引理1 设
是问题(4)的对偶问题(7)的一组最优解,则存在
是PPA子问题的等价问题(4)的一组最优解,且满足如下等式:
(8)
证明:下面将给出具体的求解过程,分别极小化(5)中的广义拉格朗日函数中的变量x和z,可以得到
(9)
(10)
其中(9)式中倒数第二个等式的解是
在
处的邻近算子。
□
由引理1可得原始变量
都可以由最优对偶变量
表示,所以问题(4)的对偶问题(7)的目标函数
中关于变量x的部分
(11)
显然成立,其中(11)式中的第二个等式是根据定义2得到的。因此,函数(6)式可以简化为:
由引理1可知,PPA子问题的等价问题(4)的解
可以由对偶变量
表示,因此接下来将给出求解问题(4)的邻近点算法的框架以及算法的收敛性分析。
3.3. 邻近点算法设计
下面算法将给出求解问题(4)的邻近点算法。
算法1. 邻近点算法(PPA)求解问题(4)
1 |
初始化:
; |
2 |
for
do |
3 |
计算:
; |
4 |
计算:
的更新由(8)式得到; |
5 |
if
then |
6 |
输出:
; |
7 |
else |
8 |
更新:
; |
9 |
end |
10 |
end |
对于算法1中
的更新的具体形式已在引理1中详细给出。
3.4. 邻近点算法收敛性分析
本小节将给出算法1的收敛结果。在此之前,提出一些假设和命题。将与问题(4)相关的Moreau包络定义为
(12)
命题1 ([15] Proposition 2.2)当对偶问题(7)的极大值在点
处取得,则以下条件等价:
1)
是优化问题(4)的极小值点;
2)
,其中
和
分别是问题(4)和(12)式的极小值。
命题1的成立,说明问题(4)取到最优点
和(12)式取到极值点
是同时成立的,且此时原问题和对偶问题的目标函数值也相等。
在分析算法1的收敛性和收敛速度之前,首先给出如下假设。
假设1 问题(4)的最优解集
非空,
且存在参数
,
和
使得
且
其中
定理1 [16]设
是由邻近点算法1产生的序列。若
满足
,则有
且若问题(4)的最优解集
非空,则序列
收敛到问题(4)的最优解
。
假设1成立时,由定理1可知算法1产生的序列
收敛到
,如下的定理可说明算法1是线性收敛的。
定理2 [16]令假设1中的
且对于任意的j,都有
成立,于是有:
1) 若
,
,则
2) 若
,则
4. PPA子问题(3)的求解
已知问题(2)的求解实际上等价于求解一系列PPA子问题(3),以及PPA算法具有线性收敛性。由于PPA子问题(3)的等价问题(4)和其对偶问题(7)是零对偶间隙的,且等价问题(4)的解
可以由对偶变量
表示。因此,设计高效的算法求解对偶问题(7)非常关键,本节将进一步分析并设计求解对偶问题(7)的高效算法。
为便于分析,首先将对偶问题(7)写成如下等价形式:
(13)
注意到,此时问题(13)的目标函数
是凸的且连续可微。
4.1. 梯度
为方便表示,记
,
。
问题(13)的目标函数
关于变量
的梯度
具体形式为:
(14)
(15)
因此问题(13)的目标函数
的梯度
为:
(16)
4.2. 广义Hessian矩阵
根据已知梯度,现在进一步分析问题(13)的目标函数
的广义Hessian矩阵。
考虑到
是Lipschitz连续的,则在Clarke意义下
在点
处的广义Jacobian矩阵是B-次微分
的凸包,即
记
(17)
对(17)式的分析如下:
为了方便表示,记
(18)
(19)
由于
在
处不可导,因此邻近算子的导数需要使用次梯度来表示。当x不等于0时,邻近算子的次梯度为其导数。当
时,邻近算子的次梯度可以是任何介于
的值。因此,此处有
其中
和
中的下标
表示对应向量的第i个元素。于是有:
4.3. 最优性条件
已知问题(13)是一个凸的无约束优化问题,现通过如下的定理给出该问题的一阶最优性条件。
定理3 假设最优点对
是问题(13)的全局最优解,则满足如下条件:
(20)
注意到(20)式可以写成
(21)
在点
处,定义问题(13)的KKT误差为
(22)
因此,问题(13)一阶最优性条件成立等价于
所以可以用KKT误差
来衡量当前迭代点的最优性。
接下来给出问题(13)的二阶充分性条件。
命题2 [17]对于函数
在点u处的广义Jacobian矩阵
。
1) 若
为问题(13)的局部极小值点,则对任意非零s有
2) 令
满足KKT条件(20)。若对任意非零s有二阶充分性条件
成立,则
为问题(13)的严格局部极小值点。
4.4. 半光滑牛顿算法
由于半光滑牛顿算法的局部快速收敛性,极大提高了子问题的求解效率,进一步可以提高算法1的整体效率。在本小节中,考虑采用半光滑牛顿算法求解子问题(13)。
由于
范数的邻近算子是局部Lipschitz连续的,因此可以定义
的Clarke广义Jacobian,记为
。进一步定义目标函数
的广义Hessian,即
的Clarke广义Jacobian,记为
。由于
没有显式表达式,因此定义如下的替代映射:
对于给定的
,有
所以,
可以被认为是
的一个较好的替代映射。对于给定的
,令
其中,则
。
具体来说,广义牛顿方向
可以通过求解无约束的二次规划
(23)
得到,其中
,
为问题(13)的目标函数
在点
处的广义Hessian矩阵。
根据目标函数的性质以及算法的理论,将问题转化为求解如下牛顿方程:
(24)
由于
中的映射是对称和半正定的,但它们仍然可能是奇异的。对此,设置
(25)
其中
,
为恒等映射,
定义为
,
和
为两个正参数,并且
为(21)式中定义的在点
处的KKT误差。显然,当
时,
为正定的。
考虑使用半光滑牛顿算法求解子问题(13),生成迭代为
(26)
其中
为第k步合适的步长,
为广义Hessian矩阵
的逆。
记
则
为在
处得到的正则化广义牛顿方向,它可以通过求解广义牛顿方程:
(27)
得到。
对此,考虑到计算成本,通常采用共轭梯度(CG)算法来求解广义牛顿方程(27)的近似解。现在给出半光滑牛顿算法求解系统(24)的基本框架。
算法2. 半光滑牛顿算法求解问题(24)
1 |
Input:
; |
2 |
Given:
; |
3 |
Compute
and
from (23) |
4 |
for
do |
5 |
if
then |
6 |
return
and
; |
7 |
end; |
8 |
Compute
and
by solving (23); |
9 |
Set
; |
10 |
while
do |
11 |
Set
; |
12 |
end |
13 |
Set
and
and
; |
14 |
end |
在下文中,交代了算法的终止条件。与[18]类似,考虑使用gap来表示原问题和对偶问题的间隙,以便于测量原目标与对偶目标之间的差距,即
其中probj和dobj分别表示原问题目标函数值和对偶问题目标函数值。
当
时,算法终止,其中
为给定误差,
为(22)式中定义的KKT误差,gap为点
处的间隙。因此,在算法2中给出了求解问题(23)的算法。
4.5. 半光滑牛顿算法收敛性分
本小节将分析半光滑牛顿算法的收敛性,为方便表示,记
。
定义4 假设
是局部Lipschitz连续的,则其广义Jacobian存在。取在
点任意的广义Jacobian矩阵
,若
可逆,其基本的迭代格式为
(28)
假设2 映射
在最优点
处是半光滑和所有Jacobian矩阵是非奇异的。
引理2 如果假设2成立,则存在常数
和一个小邻域
使得对于任意的
和
,下面结论成立:
1)
是一个孤立解;
2)
是非奇异的并且
;
3) 局部误差届条件对于
在邻域
上成立,也就是说
。
如下定理给出了半光滑牛顿算法的局部二次收敛性。
定理4 设
具有半光滑性并且
是优化问题(13)的最优解。那么迭代(28)是良定义的,且存在一个小邻域
,使得对于任意的k有
,迭代(28)是超线性收敛的。如果
是强半光滑的,迭代(28)是二次收敛的。
证明:根据引理2,迭代(28)式是良定义的。可以推出:
其中最后一个等式来源于强半光滑性。
□
5. 数值实验
本节将通过仿真数值实验来测试本文使用的邻近点对偶半光滑牛顿算法(记为PPA_DSN)算法求解含等式约束广义Lasso问题的实际效果。算法采用MatlabR2017a编程实现,且所有实验均在AMD Ryzen 7 6800HS Creator Edition 3.20 GHz,16.0 GB内存的个人笔记本电脑上运行。同时,考虑选择邻近梯度算法(记为PPA_DG)和交替方向乘子法算法(记为ADMM_GLP)作为对比算法。算法PPA_DSN所需参数分别为:设计矩阵A的规模:
;观测向量y的规模:m维;最大迭代时间600秒;最大误差
。
对于所有算法,若下面任一条件满足,则终止程序:
1) 算法残差
。
2) 达到最大迭代数maxit = 200。
为进行实验观测算法PPA_DSN求解含等式约束广义Lasso问题的效率,首先设置含等式约束广义Lasso问题的样本数量为m,特征数量为n,设计矩阵A的每个分量
均随机生成;设向量
(
表示随机扰动向量),正则化参数
。
Figure 1. In correspondence with the experimental data of three algorithms
图1. 三种算法对比的实验数据
为了验证PPA_DSN算法的有效性和稳定性,我们进行了不同参数设置下的实验。下文提供PPA_DSN算法、邻近梯度算法(记为PPA_DG)和交替方向乘子算法(记为ADMM_GLP)的数值结果。我们针对零和约束Lasso问题(1),取变量维数
,
,正则化参数
,最大迭代时间600秒,最大误差。在这些设置下,共进行了27组实验。考虑到实验数据均为随机生成的,每组实验重复了3次,并取数值结果的平均值。具体结果详见图1,其中Res、Iter、Iterf、Iterd和Time分别表示残差
、迭代步数、目标函数计算次数、搜索方向计算次数和CPU运行时间(以秒为单位)。从图1可以看出,算法PPA_DSN成功求解了所有测试问题,并且在大多数情况下,CPU耗时不超过1秒。
6. 总结
本文主要对一类含线性等式约束的广义Lasso问题进行算法研究。由于大多实际问题的求解过程中会涉及对样本数据的限制,如零和约束Lasso问题,因此考虑求解一类含线性等式约束的广义Lasso问题。受众多研究者先前对Lasso模型的算法研究的启发,本文考虑将邻近点半光滑牛顿算法推广到用于求解含线性等式约束Lasso问题,并通过数值实验与邻近梯度算法以及交替方向乘子法进行对比,证实了该算法求解该类含线性等式约束Lasso问题具有良好性能。