Sparsity constraint稀疏约束详解

article/2025/10/26 6:50:02

Sparsity constraint稀疏约束详解

引子: 线性模型是我们经常使用的一种模型,比如:

文本分类中,bag-of-words 有p = 20 K 个特征, 共有 N = 5K 个文本样例;
在图像去模糊化,图像分类中,有p=65K 个像素点特征,N=100个样例;
等等

这些问题我们都可以使用线性模型解决,比如线性回归,logistic回归, Cox 回归来解决。 因为 p 远大于 N,所以必须引入正则化。
为什么这里要用正则化呢?
以我们很熟悉的线性回归模型为例:线性回归问题事实上是一个最小二乘问题( A least-squares problem ),目标函数为:

,其中 是所要求的参数, 注:这里表述使用Convex Optimization book的描述,与通常的稍有不同,
事实上 x 相当于我们常说的参数 w 

上式可以化为:

从而我们可以得到它的解析解:


看起来好像很简单,但是存在一个问题,我们在求最优解时,即最小化f(x)时,若Ax - b 是不可逆的,则求导且令导数为0后方程有无穷解。事实上我们求导置为0后
得到的就是一个线性等式的集合,利用我们学过的线性代数的知识,即求一个齐次线性方程组的解,当方程组数小于参数数量时,或者说线性方程组对应的系数矩阵的行
数小于列数时,有无穷多解。所以我们前面所说的p对应于系数矩阵的行,样本数对应于系数矩阵的列,所以此时无法求出最优解。而且此时也出现过拟合的问题。
其实在实际中我们经常遇到这种情况:变量数(样本维度)远大于样本数目的情况,样本数目太少不足以估计出所有的所要求的系数。
我们可以基于两个思路来考虑:
首先,如此多的参数(特征)是否都与我们要求的结果有关系呢,或者说是不是有些变量(特征)对我们结果并没有影响或影响非常小可以忽略不计;
另一方面来考虑,对参数w 我们可以求出无穷多解,这个解空间太大了,我们能不能给它一个约束,使解空间大大缩小,或者说在新的解空间里能够找到最优解。
通常的解决方法是:
(1) Forward stepwise
(2) Best-subset
(3) Ridge regression 
(4) Lasso regression 
其中(4)即用到了我们所要探究的稀疏约束,所以我们来看看Lasso regression 回归到底是什么:
其实就是对我们的模型加了这样一个约束条件:

即Lasso 是在线性模型上加了一个L1正则化项:


为了说明稀疏性,我们也来看下方法(3) Ridge regression:
它是对模型加了这样一个约束条件:

即Ridge 是在线性模型上加了一个L2正则化项:

Ridge 仅仅对变量进行了收缩(shrinkage),但是Lasso 既对变量进行了选择,也进行了收缩,如下图所示:

看上图,相交之处即所求解;看左图,圆很容易与约束区域的角相交,此时w1为0,对于一个更高维的情况,很可能有很多会有更多地
wi为0的情况,这也意味着我们对变量进行了选择,由此造成了稀疏性。而对于右图,在坐标轴上相交的概率会远小于前者,很难形成
稀疏性。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

回顾一下L1 正则化的历史:
首先,David L. Donoho 和 Iain M. Johnstone 在1994年发表的论文”小波软阈值去噪“中首次使用了类似于L1的公式:
论文地址:http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=412133

随后1995年,Tibshirani 将Lasso 应用于回归问题中,而且给出了详细的解释,
论文地址:https://statweb.stanford.edu/~tibs/lasso/lasso.pdf

此后,Tibshirani 又将Lasso应用于几个其他的模型,如Logistics回归。

Donoho2004, CandesandTao2005 又将lasso应用于压缩感知之中。
---------------------------------------------------------------------------------------------------

很明显Eq.1是一个凸函数,存在最优解,但是注意到L1正则化项并不是可导的,亦即不可导的凸函数求最优解问题,该如何解决呢?目前主要有6种解决方法:
(1)将不平滑问题转化为平滑问题
(2)坐标下降法 (coordinate descend)
(3)ADMM算法
(4)次梯度下降法(subgradient)
(5)梯度下降
(6)加速梯度下降 

我们来看次梯度方法,次梯度的定义如下:

怎么理解次梯度呢?若  f(x) 是一个凸函数,且在x0 处可导 , 则由一阶泰勒展开式,可得:

若f(x) 在x0处 不可导,我们仍然可以得到f(x)的一个下界:

以下面的函数为例:


在x1 点 函数可导,此时次梯度与导数相同,只有一个;在x2点,函数不可导,此时次梯度不止有一个,次梯度的取值范围是一个闭区间。
由此我们求解的思路是:对于可导的地方,按照常规方法直接求导求解即可;对于不可导的地方,使用次梯度。下面来求目标函数Eq.1的最优解:

不考虑正则化项,由前面说过的最小二乘法,我们有:

简单起见,我们只考虑标准正交化的情况,即有:

将Eq.3 代入 Eq.2 可得:

假设 是 J(w) 的全局最优解, 考虑第 j 个 变量,存在两种可能:
(1)梯度存在时候, ,我们有:

由Eq.5 可得:

将Eq.3 和 Eq.4 代入Eq.6 得:

sign是符号函数,易得和 同号(假设符号后计算下即可证明),从而有
将Eq.8 代入 Eq.7 得:

在利用 Eq.8 ,然后两边同乘 ,可得:

由 Eq.10 和 Eq.9可得:

这里
(2)当梯度不存在时,即 时,有:

这里用到了一个性质:点x0 是凸函数 f 的一个全局最小值点,当且仅当 。(注:这里上式没有给出具体的迭代求解过程)。可得:

由Eq.13 得:

由此可得,Eq.14 同样满足Eq.11,于是两种情况都可以用Eq.11 表示,所以Eq.1的最优解可以使用Eq.11表示。


参考:
http://blog.csdn.net/lansatiankongxxc/article/details/46386341
http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/#d20da8b6b2900b1772cb16581253a77032cec97e
ttps://web.stanford.edu/~hastie/TALKS/Sparsity.pdf 


http://chatgpt.dhexx.cn/article/rF9fYuHs.shtml

相关文章

[机器学习速成课程] 稀疏性正则化 (Regularization for Sparsity)-学习笔记

稀疏性和 L1 正则化 学习目标: 计算模型大小通过应用 L1 正则化来增加稀疏性,以减小模型大小 降低复杂性的一种方法是使用正则化函数,它会使权重正好为零。对于线性模型(例如线性回归),权重为零就相当于完…

机器学习14:稀疏性-Sparsity

现实世界中,问题的特征的数量往往是很大的,而其中起决定性作用的往往是很小的一部分,稀疏规则化算子的引入会学习去掉这些没有信息的特征,也就是把这些特征对应的权重置为 0。 1.稀疏性正则化:L₁ 正则化 稀疏向量通常…

稀疏(sparsity)矩阵的行压缩存储

压缩矩阵行或列来存储矩阵的格式是很普遍的,它们不会存储不必要的元素(即空值)。但是它们也不是非常有效的,当在一个矩阵-向量积或预解决的每个简单标量中需要间接寻址。行压缩存储方式会把一个稀疏矩阵行的非零数值放在连续的存储…

redis删除锁

redis删除锁 参考:百度安全验证 前言 在分布式系统中,由于redis分布式锁相对于更简单和高效,成为了分布式锁的首先,被我们用到了很多实际业务场景当中。 但不是说用了redis分布式锁,就可以高枕无忧了,如…

Redis进阶: 锁的使用

Redis进阶: 锁的使用 1. 概念1. 原子性2. 事务 2. 使用Redis构建全局并发锁3. Redlock(redis分布式锁)总结 相关Blog 1. 概念 1. 原子性 原子性 原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务&…

redis锁的几种实现

1. redis加锁分类 redis能用的的加锁命令分表是INCR、SETNX、SET 2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。 然后其它用户在执行 INCR 操作进行加一时&#xff0…

java redis锁_Java中Redis锁的实现

由于具体业务场景的需求,需要保证数据在分布式环境下的正确更新,所以研究了一下Java中分布式锁的实现。 Java分布式锁的实现方式主要有以下三种: 数据库实现的乐观锁 Redis实现的分布式锁 Zookeeper实现的分布式锁 其中,较常用的是前两种方式,但是数据库实现方式需要较多的…

Redis的分布式锁详解

一、什么是分布式锁: 1、什么是分布式锁: 分布式锁,即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题,而分布式锁,就是解决了分布式系统中控制共享资源访问的问题。与单体应用不同的是&…

redis锁

一、redis锁的实现 加锁命令: SETNX key value: 当键不存在时,对键进行设置操作并返回成功1,否则返回失败0。 Key是锁的唯一标识,一般按业务来决定命名; Value 往往用来比较加锁的是哪一个线程或者哪一个…

超图 hypergraph 二分图 Bipartite graph

超图是什么 超图超图的意义应用 二分图 超图 超图是什么? 超图的本质特征在于它的超边,它可以连接两个以上的结点(包括两个)。按这样的意义来说,我们所熟悉的普通图只是超图的一个特例而已,而超图则定义了一个更加宽泛的图。 超图…

BiNE: Bipartite Network Embedding 阅读笔记

论文传送门 作者 华东师范大学: 高明周傲英Leihui Chen 中国科学技术大学:何向南 摘要 传统的学习图数据的节点表示的方法大都聚焦于一般的同构网络,忽略了二部图的特殊性质。因此这些方法对于二部图嵌入来说可能是次优的。 本文提出了B…

C#,图论与图算法,二分图(Bipartite Graph)最佳二分匹配(Maximum Bipartite Matching)算法与源程序

二部图中的匹配是一组边的选择方式,使两条边不共享一个端点。最大匹配是最大大小(最大边数)的匹配。在最大匹配中,如果向其添加任何边,则该边不再是匹配。对于给定的二部图,可以有多个最大匹配。 我们为什…

【论文精读】Bipartite network projection and personal recommendation

一、Introduction 在过去的几年里,人们对复杂网络进行了大量的研究,一类特殊的网络是二部网络(bipartite network)。特点是其节点可分割为两个互不相交的子集X和Y,连接只允许存在于不同集合中两个节点之间。例如人类的…

【一致性仿真】Group-Bipartite Consensus in the Networks With Cooperative-Competitive Interactions

文章链接:Group-Bipartite Consensus in the Networks With Cooperative-Competitive Interactions 仿真图Fig3: MATLAB代码 % Group-Bipartite Consensus in the Networks With Cooperative-Competitive Interactions % Protocol Simulation Results …

C#,图论与图算法,二分图(Bipartite Graph)的霍普克罗夫特-卡普(Hopcroft Karp)最大匹配算法与源程序

二分图Bipartite graph 有没有可能通过数学过程找到你的灵魂伴侣?大概让我们一起探索吧! 假设有两组人注册了约会服务。在他们注册后,会向他们展示另一组人的图像并给出他们的描述。他们被要求选择他们愿意与之匹配的人。 所有信息都被输入…

[VLDB 2022]Butterfly Counting on Uncertain Bipartite Graphs

总结 非确定二部图上的蝴蝶结构统计,精确算法。在普通的蝴蝶结构统计上,增加了边权重,使得传统算法失效,再在这基础上定义新的统计并优化老方法。 动机 Butterfly的数量直接展示了二部图的密度,是个很重要的属性。相…

二分匹配大总结——Bipartite Graph Matchings[LnJJF]

文章目录 二分匹配——Bipartite Graph Matchings[LnJJF]认识:什么是二分图?理解:现实模型如何与二分图相互转化?如何判断能否转化?能够转化的话,如何转化? 应用:已知一个二分图&…

【一致性仿真】Fixed-time bipartite consensus of multi-agent systems with disturbances

文章链接:Fixed-time bipartite consensus of multi-agent systems with disturbances 仿真图Fig2: MATLAB代码: % Fixed-time bipartite consensus of multi-agent systems with disturbances % author:JCGUY % date:2022-04-20 clear clc…

Bipartite Graph多视图学习聚类文章总结

看了一些anchor graph和bipartite graph 的文章始终不知道他们的区别在哪里。今天总结一下这类文章。 1.能看到最早的这类关于多视图学习的文章 Large-Scale Multi-View Spectral Clustering via Bipartite Graph(AAAI-2015) 目标:we addre…

Fast spectral clustering learning with hierarchical bipartite graph for large-scale data

Fast spectral clustering learning with hierarchical bipartite graph for large-scale data 基于层次二分图的大规模数据快速谱聚类学习 abstract 传统方法:不适用大规模问题 高斯核函数 提出了一种新的基于层次二分图(SCHBG)的光谱聚…