Sparsity constraint稀疏约束详解

引子: 线性模型是我们经常使用的一种模型,比如:
文本分类中,bag-of-words 有p = 20 K 个特征, 共有 N = 5K 个文本样例;
在图像去模糊化,图像分类中,有p=65K 个像素点特征,N=100个样例;
等等
这些问题我们都可以使用线性模型解决,比如线性回归,logistic回归, Cox 回归来解决。 因为 p 远大于 N,所以必须引入正则化。
为什么这里要用正则化呢?
以我们很熟悉的线性回归模型为例:线性回归问题事实上是一个最小二乘问题(A least-squaresproblem ),目标函数为:
,其中是所要求的参数, 注:这里表述使用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 

Sparsity constraint稀疏约束详解相关推荐

  1. 外键约束详解及术语释疑

    外键约束详解及术语释疑 先要理清几个概念: 1)候选键(Candidate Key):关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作 ...

  2. ORACLE的索引和约束详解数据库

    ORACLE的索引和约束详解数据库 Oracle的约束 * 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段, 必须在表级定义约束 * 在定义 ...

  3. sql unique约束详解

    sql unique约束详解 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证. PRIMARY KEY 拥有自动定义的 ...

  4. mysql怎么约束_MySQL 约束详解

    MySQL 约束详解 MySQL 中的约束是用来保证数据的完整性的机制.数据完整性一般有以下三种形式: 实体完整性:保证表中有一个主键. 域完整性:保证数据每列的值满足特定条件. 引用完整性:保证两张 ...

  5. mysql外键约束详解_详解MySQL 外键约束

    详解MySQL 外键约束,西欧,西西里,玛雅,兵种,诺曼 详解MySQL 外键约束 易采站长站,站长之家为您整理了详解MySQL 外键约束的相关内容. 官方文档: https://dev.mysql. ...

  6. 特征选择与稀疏学习详解

    入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删. 目录 一.特征选择的总体介绍 1.特征 (1)相关特征 (2)无关特征 (3)冗余特征 2.特 ...

  7. oracle 主键_Oracle约束详解

    一 约束的定义 约束是强加在表上的规则或条件.确保数据库满足业务规则.保证数据的完整性.当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则的话,系统就会拒绝执行这个操作.约束 ...

  8. ORACLE的索引和约束详解

    Oracle的约束 * 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段, 必须在表级定义约束 * 在定义约束时可以通过CONSTRAINT关 ...

  9. MySQL五大约束详解(我有多详细只有我知道小白都能懂哦)

    1.约束概念和分类 2.五大约束的添加和删除 3.自增长列 1.约束概念和分类 1.1约束的概念: 对表中的数据进行限定,保证数据的正确性,有效性,完整性 1.2约束分类 1.主键约束(primary ...

最新文章

  1. 新手求助,关于添加隐式intent程序崩溃问题
  2. 四十三、Scrapy 爬取前程无忧51jobs
  3. 文件上传 upload-labs 1~20做题记录
  4. 【SQLAlchemy】简单整理filter和filter_by的区别
  5. jenkins java_具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道
  6. 【强化学习】A3C代码注释版本
  7. keil 查看 stm32 io波形_你知道 KEIL 自带示波器吗?
  8. html响应式布局平移,Canvas 随鼠标平移的响应式画布/魔法奇缘场景
  9. Ext.Ajax.request 与FormPanel.form.submit
  10. 有哪些开源的小程序商城源码?
  11. 施耐德PLC Unity Pro xl 软件使用一
  12. 周志华----机器学习
  13. 计算机怎样设置光盘启动项,怎么设置开机启动项-设置光盘启动教程
  14. 纯CSS实现图片动画
  15. php奖状生成器源码,PHP生成奖状
  16. 启动nacos报错:Exception in thread main java.lang.UnsupportedClassVersionError
  17. 法律人如何使用python_执业10年,我见过太多法律人掉进这个大坑!
  18. python post 请求json文件_requests的post请求提交表单、json串和文件数据讲解
  19. 计算机应用能力科目怎么选择,专业技术人员计算机应用能力考试科目类别
  20. 源码分享意义何在?为何很多官方软件开发商都会有破解版和bug版本的系统盛行?

热门文章

  1. 计算机不能启动 如何排除故障,电脑开机屏幕界面无法启动的故障排除
  2. ARM NEON编程
  3. 盘根错节的腐朽(二)
  4. 虚拟机运行c++程序
  5. 华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)
  6. Ubuntu设置中文的方法
  7. 力扣638. 大礼包(回溯法+剪枝优化)
  8. 【爬虫实战】python爬取中国最好大学排行榜
  9. iOS开发- 隐藏状态栏(电池栏)
  10. Centos7 测试实际网速/带宽