基于 Lp 正则化的高维稀疏解的反演

本文探讨了高维稀疏解逼近问题,通过优化问题和概率论视角解释了L1正则化为何产生稀疏模型。介绍了L1和L1.5正则化的求解方法,包括软阈值迭代算法和重赋权技巧,并通过实例分析了在不同矩阵条件下L1和L1.5的表现。

一、稀疏解的逼近问题

对于高维稀疏解的逼近问题,可以归结为模型
y=Ax+ϵ y=A x+\epsilon y=Ax+ϵ
其中,A∈RM×NA \in \mathbb{R} ^{M \times N}ARM×N是给定或者训练得到的M×NM \times NM×N矩阵,y∈RM\bf y \in \mathbb{R} ^MyRM是测得的数据,ϵ\epsilonϵ是扰动噪声。我们的目的是根据已知数据y,A,ϵ\bf y ,A,\epsilony,A,ϵ,来反演高维稀疏解x∈RN\bf x \in \mathbb{R} ^NxRN

机器学习的回归问题中,为了防止过拟合和提高模型泛化性能,对原始损失函数引入额外惩罚项信息,即LpL_pLp正则化
x=arg⁡min⁡x∥Ax−y∥2+λ∥x∥Lpp,0≤p≤2 \bold{x}=\arg \min_{\bold{x}} \left \| A \bold{x} -\bold{y}\right \| ^2+\lambda \left \| \bold{x}\right \| _{L_p}^{p} ,0 \le p \le 2 x=argxminAxy2+λxLpp,0p2
特别的,当p=0p=0p=0时,
∥x∥L0=∑i=1NIxi≠0,Ixi≠0={1xi≠00xi=0 \left \| \bold x \right \| _{L_0}=\sum_{i=1}^N I_{x_i \ne 0},I_{x_i \ne 0}= \left\{\begin{matrix} 1 & x_i \ne 0\\ 0 & x_i = 0 \end{matrix}\right. xL0=i=1NIxi=0,Ixi=0={10xi=0xi=0根据不同的问题,选择合适的参数ppp

L1L_1L1正则化可以使得参数稀疏化,从而过滤掉模型的一些无用特征,提高模型的泛化能力,降低过拟合的可能。L2L_2L2正则化可以使得参数平滑,防止模型过拟合。因此对比而言,L1L_1L1正则化更适合处理高维稀疏数据。

下面以二维为例,从优化问题和概率论角度来讨论为什么L1L_1L1正则化产生稀疏模型。

1.1、优化问题角度

此时模型的求解转化为如下的优化问题
x=arg⁡min⁡x∥[a11a12a21a22][x1x2]−[y1y2]∥2+λ∑i=12∣xi∣p \bold{x}=\arg \min_{x} \left \| \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{bmatrix}\begin{bmatrix} x_1\\ x_2 \end{bmatrix}-\begin{bmatrix} y_1 \\ y_2 \end{bmatrix} \right \| ^2 +\lambda \sum_{i=1}^2 \left | x_i \right | ^p x=argxmin[a11a21a12a22][x1x2][y1y2]2+λi=12xip
将损失函数f(x)f(x)f(x)投影到x1,x2x_1,x_2x1,x2平面,即等值线(如图彩色线条),并分别画出L1L_1L1正则化项和L2L_2L2正则化项(如图黑色线条)
L1
L 2
正则化项同拉格朗日乘子的作用一样,起了约束作用。因为当损失函数f(x)f(x)f(x)的等值线与正则化项首次相交的地方就是最优解。从上图可见,L1L_1L1正则化项比L2L_2L2多出4个突出的角,当等值线与这些角相交的机率会大大增加。而在这些角上,某个权值xix_ixi等于0。当维数增加,L1L_1L1突出的角更多,因此更容易产生稀疏模型。
3维

1.2、概率论问题角度}

L1L_1L1正则化相当于为x\bf xx加入了Laplace先验分布,而L2L_2L2正则化项相当于为x\bf xx加入了Gaussian先验分布。
在这里插入图片描述

从分布图直观上看,在两端Gaussian分布的概率pG(x)p_G(x)pG(x)小于Laplace分布的概率pL(x)p_L(x)pL(x),且在中间段Gaussian分布等于0和接近0的分布很接近,说明Gaussian分布下的$\bf x $比较均匀。而Laplace分布等于0处的概率远大于其他部分,说明Laplace分布下的x 存在更多的0元素。

二、L1L_{1}L1L1/2L_{1/2}L1/2正则化的求解

2.2、L1L_1L1的软阈值迭代算法

对于连续可微的无约束优化问题
min⁡x∈Rf(x) \min _{\bf x \in \mathbb{R} } f(\bf x) xRminf(x)
且满足Lipschitz连续条件
∥▽f(xk)−▽f(xk−1)∥2≤L(f)∥xk−xk−1∥2 \left \| \bigtriangledown f(\bf x_k)-\bigtriangledown f(\bf x_{k-1}) \right \| _2 \le L(f)\left \| \bf \bf x_k-\bf \bf x_{k-1} \right \| _2 f(xk)f(xk1)2L(f)xkxk12
根据梯度法,给定初始点x0∈Rx_0 \in Rx0R和初始步长t,有
xk=xk−1−t▽f(xk−1) \bf x_k=\bf x_{k-1}-t \bigtriangledown f(\bf x_{k-1}) xk=xk1tf(xk1)
f(x)f(\bf x)f(x)xk−1\bf x_{k-1}xk1处做二阶泰勒展开,并省略高阶项
f(x)=f(xk−1)+⟨x−xk−1,▽f(xk−1)⟩+⟨∥x−xk−1∥22,▽2f(xk−1)⟩2 f(\bf x)=f(\bf x_{k-1})+\left \langle \bf x-\bf x_{k-1}, \bigtriangledown f(\bf x_{k-1})\right \rangle +\frac{ \left \langle \left \|\bf x-\bf x_{k-1} \right \|_2^2 , \bigtriangledown ^2f(\bf x_{k-1})\right \rangle}{2} f(x)=f(xk1)+xxk1,f(xk1)+2xxk122,2f(xk1)
结合上述公式,可得
xk=arg⁡min⁡x{f(xk−1)+⟨x−xk−1,▽f(xk−1)⟩+∥x−xk−1∥222t} \bf x_k =\arg \min _{\bf x} \left \{ f(\bf {x_{k-1}})+\left \langle \bf {x}-\bf {x_{k-1}},\bigtriangledown f(x_{k-1}) \right \rangle +\frac{\left \| x-x_{k-1} \right \|_2^2 }{2t} \right \} xk=argxmin{f(xk1)+xxk1,f(xk1)+2txxk122}
忽略常数项,则上式又可写成
xk=arg⁡min⁡x(▽f(xk−1))T(x−xk−1)+12t(x−xk−1)T(x−xk−1)=arg⁡min⁡x12t[x−(xk−1−2t▽f(xk−1)]T(x−xk−1) \begin{aligned} \bf x_k&=\arg \min _{\bf x} (\bigtriangledown \bf f(x_{k-1}))^T(x-x_{k-1})+\frac{1}{2t}(x-x_{k-1})^T(x-x_{k-1}) \\ &=\arg \min _{\bf x} \bf \frac{1}{2t} \left [ x-(x_{k-1}-2t\bigtriangledown f(x_{k-1}) \right ]^T(x-x_{k-1}) \end{aligned} xk=argxmin(f(xk1))T(xxk1)+2t1(xxk1)T(xxk1)=argxmin2t1[x(xk12tf(xk1)]T(xxk1)
可见有两个零点,取中点得到函数的最小值
xk=12[xk−1−2t▽f(xk−1)+xk−1]=xk−1−t▽f(xk−1) \begin{aligned} \bf x_k&=\bf \frac{1}{2}\left [ x_{k-1}-2t\bigtriangledown f(x_{k-1})+x_{k-1} \right ] \\ &=\bf x_{k-1}-t\bigtriangledown f(x_{k-1}) \end{aligned} xk=21[xk12tf(xk1)+xk1]=xk1tf(xk1)
将上述的梯度法思想用到L1L_1L1正则化问题,得到迭代公式
xk=arg⁡min⁡x{f(xk−1)+⟨x−xk−1,▽f(xk−1)⟩+∥x−xk−1∥222t+λ∥x∥1} \bf x_k =\arg \min _{\bf x} \left \{ f(\bf {x_{k-1}})+\left \langle \bf {x}-\bf {x_{k-1}},\bigtriangledown f(x_{k-1}) \right \rangle +\frac{\left \| x-x_{k-1} \right \|_2^2 }{2t }+\lambda \left \| x \right \|_1 \right \} xk=argxmin{f(xk1)+xxk1,f(xk1)+2txxk122+λx1}
忽略常数项,则上式又可写成
xk=arg⁡min⁡x{∥x−(xk−1−t▽f(xk−1))∥222t+λ∥x∥1} \bf x_k =\arg \min _{\bf x} \left \{\frac{\left \| x-(x_{k-1}-t\bigtriangledown f(x_{k-1}) )\right \|_2^2 }{2t }+\lambda \left \| x \right \|_1 \right \} xk=argxmin{2tx(xk1tf(xk1))22+λx1}

考虑一般的优化问题
xk=arg⁡min⁡x{∥x−s∥222t+λ∥x∥1}=arg⁡min⁡x∑i=1n12t(xi−si)2+λ∣xi∣ \begin{aligned} \bf x_k &=\bf \arg \min_x \left \{\frac{\left \| x-s\right \|_2^2 }{2t }+\lambda \left \| x \right \|_1 \right \} \\ &= \arg \min_x \sum _{i=1}^n \frac{1}{2t}(x_i-s_i)^2+\lambda \left | x_i \right | \end{aligned} xk=argxmin{2txs22+λx1}=argxmini=1n2t1(xisi)2+λxi
g(xi)=12t(xi−si)2+λ∣xi∣g(x_i)=\frac{1}{2t}(x_i-s_i)^2+\lambda \left | x_i \right |g(xi)=2t1(xisi)2+λxi,对g(xi)g(x_i)g(xi)求导并令其等于0,
dgdxi=1t(xi−si)+sgn(xi)=0⟹xi=si−λt⋅sgn(xi) \begin{aligned} &\frac{\mathrm{d}g }{\mathrm{d}x_i} =\frac{1}{t}(x_i-s_i)+sgn(x_i)=0 \\ &\Longrightarrow x_i=s_i-\lambda t·sgn(x_i) \end{aligned} dxidg=t1(xisi)+sgn(xi)=0xi=siλtsgn(xi)
即当xi>0x_i>0xi>0时,xi=si−tλx_i=s_i-t\lambdaxi=sitλ;当xi=0x_i=0xi=0时,xi=si=0x_i=s_i=0xi=si=0xi《0x_i《0xi0时,xi=si+tλx_i=s_i +t\lambdaxi=si+tλ.\
所以,{xi=si−tλ if si>tλxi=0 if −tλ≤si≤tλxi=si+tλ if si<−tλ \begin{cases} x_i=s_i-t\lambda & \text{ if } s_i>t\lambda \\ x_i=0 & \text{ if } -t\lambda \le s_i \le t\lambda \\ x_i=s_i+t\lambda & \text{ if } s_i<-t\lambda \end{cases} xi=sitλxi=0xi=si+tλ if si>tλ if tλsitλ if si<tλ
上式可进一步化简,得
xi=max⁡(∣si∣−λt,0)⋅sgn(si)=Pλt(s) x_i=\max( \left | s_i \right | -\lambda t,0)·sgn(s_i)=P_{\lambda t}(s) xi=max(siλt,0)sgn(si)=Pλt(s)

xk=Pλt(s) \bf x_k=P_{\lambda t}(s) xk=Pλt(s)

综上所述,方程的解可写为
xk=Pλt(xk−1−t▽f(xk−1)) \bf x_k=P_{\lambda t}(x_{k-1}-t\bigtriangledown f(x_{k-1})) xk=Pλt(xk1tf(xk1))
其中,PλtP_{\lambda t}Pλt为软阈值算子,步长ttt可取1L(▽f)\frac{1}{L(\bigtriangledown f)}L(f)1

2.1、L1/2L_{1/2}L1/2正则化算法

2008年,徐宗本在《 L1/2L_{1/2}L1/2正则化》中证明,L1/2L_{1/2}L1/2正则化子比L1L_{1}L1正则化子具有更好的稀疏性和稳健性。
在这里插入图片描述
文献中为了求解L1/2L_{1/2}L1/2正则化问题,提出重赋权迭代求解思想,将L1/2L_{1/2}L1/2正则化问题转化为L1L_{1}L1正则化问题
xk+1=arg⁡min⁡x∥y−Ax∥22+λ∑i=1N∣xi∣∣xi,k∣ x_{k+1}=\arg \min _x \left \| y-Ax \right \| _2^2+\lambda \sum_{i=1}^N \frac{\left | x_{i} \right |}{\sqrt{\left | x_{i,k} \right | } } xk+1=argxminyAx22+λi=1Nxi,kxi
因为xix_ixi可能出现0,为了保证算法可实施,可采用1∣xi,k∣+ϵ\frac{1}{\sqrt{\left | x_{i,k} \right |}+\epsilon}xi,k+ϵ1替代1∣xi,k∣\frac{1}{\sqrt{\left | x_{i,k} \right |}}xi,k1,即
xk+1=arg⁡min⁡x∥y−Ax∥22+λ∑i=1N∣xi∣∣xi,k∣+ϵ x_{k+1}=\arg \min _x \left \| y-Ax \right \| _2^2+\lambda \sum_{i=1}^N \frac{\left | x_{i} \right |}{\sqrt{\left | x_{i,k} \right | } +\epsilon} xk+1=argxminyAx22+λi=1Nxi,k+ϵxi

三、算例

3.1、例1——高斯分布矩阵

数据源:
1、随机产生250×500250 \times 500250×500的高斯信号矩阵A,矩阵条件数为 5.5415
2、 随机产生500×1500 \times 1500×1的高斯分布数据x\bf xx,再随机令其中20个元素非零,其余为零。。由Ax=yA \bf x=yAx=y,可3、得到数据y\bf yy
对得到的数据y\bf yy,施加1%1\%1%的随机噪声

计算结果:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.2、例2-积分方程

数据源:

1、考虑一个卷积型积分方程例子:
∫01K(x,t)g(t)dt=f(x),0≤x≤1 \int_0^1K(x,t)g(t) \mathrm{d} t=f(x),0\le x\le1 01K(x,t)g(t)dt=f(x),0x1
其中核函数K(x,t)=extK(x,t)=e^{xt}K(x,t)=ext。当核函数矩阵为20×2020 \times 2020×20时,其条件数为2463.
2、 随机产生20×120 \times 120×1的高斯分布数据x\bf xx,再随机令其中5个元素非零,其余为零。由Kx=yK \bf x=yKx=y,可得到数据y\bf yy
3、对得到的数据y\bf yy,施加1%1\%1%的随机噪声
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3、例3-Hilbert矩阵

数据源:
1、 产生500×500500 \times 500500×500的Hilbert矩阵A,矩阵条件数为6.8337×10206.8337 \times 10^{20}6.8337×1020
2、随机产生500×1500 \times 1500×1的高斯分布数据x\bf xx,再随机令其中20个元素非零,其余为零。由Ax=yA \bf x=yAx=y,可得到数据y\bf yy
3、对得到的数据y\bf yy,施加1%1\%1%的随机噪声
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Hilbert矩阵下的高维稀疏数据反演,不论是L1L_1L1正则化还是L1/2L_{1/2}L1/2正则化,得到的结果均不理想,不能将原数据x\bf xx的稀疏性表现出来,而是将其磨光。但从观测数据y\bf yy上分析,虽然拟合的y\bf yy也被磨光处理,但依旧能较好的拟合真实数据。

经过多次尝试发现,Hilbert矩阵下的高维稀疏数据逼近模型,即Ax=yA \bf x=yAx=y,对于固定的A和y\bf yy,其解x\bf xx不唯一。

这是因为Hilbert矩阵的特征值矩阵高度稀疏,当x\bf xx也是稀疏数据,运算时将会丢失很多关键信息,因此无法正确反演稀疏数据x\bf xx。以16位有限数字为界,则500×500500 \times 500500×500的Hilbert矩阵,其特征值矩阵的稀疏密度为93%。

### L1 正则化疏解的理论与实现 L1 正则化通过引入绝对值惩罚项来影响线性回归模型中的参数估计过程。其核心目标在于促使部分系数变为零,从而形成疏解。这种特性使得 L1 正则化特别适合于高维数据集以及特征选择场景。 #### 疏解形成的数学基础 当应用 L1 正则化到简单线性回归模型时,优化问题可以表示为最小化损失函数加上正则化项的形式: \[ \min_{w} \frac{1}{n}\sum_{i=1}^{n}(y_i - w^T x_i)^2 + \lambda \|w\|_1 \] 其中 \( \|w\|_1 = \sum_{j}|w_j| \) 是权重向量 \( w \) 的 L1 范数[^1]。由于 L1 范数是一个非平滑函数,在某些维度上会迫使权值趋近于零,因此能够自然地筛选掉不重要的特征。 #### 实现方法概述 为了求解上述带约束的目标函数,通常采用如下几种算法之一: - **坐标下降法 (Coordinate Descent)**: 这种迭代技术每次只更新单个变量而固定其他所有变量不变,非常适合处理大规模疏矩阵。 - **最小角回归 (Least Angle Regression, LARS)**: 它是一种专门设计用于高效计算整个路径上的 Lasso 解的方法。 下面给出基于 Python 和 Scikit-Learn 库的一个基本实现例子: ```python from sklearn.linear_model import Lasso import numpy as np # 假设 X_train, y_train 已经定义好 alpha = 0.1 # 控制正则强度的超参 lambda 对应于此处 alpha 参数 lasso_regressor = Lasso(alpha=alpha) # 训练模型 lasso_regressor.fit(X_train, y_train) # 输出得到的疏权重 print("Sparse Weights:", lasso_regressor.coef_) ``` 此代码片段展示了如何利用 `scikit-learn` 中内置的 Lasso 类快速构建并训练带有 L1 正则化的线性回归模型[^2]。 #### 关键区别对比 相较于传统的 Ridge 或者说 L2 正则化方式,L1 方法更倾向于生成具有较少非零成分的结果集合;换句话说就是它能有效减少最终预测器所依赖的基础属性数量。这不仅有助于简化解释还可能提升泛化能力因为消除了那些贡献较小甚至可能是噪声干扰的因素的影响.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闲谈社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值