稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization
Sparsity 是当今机器学习领域中的一个重要话题。John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到:
Some current challenges … are high dimensional data, sparsity, semi-supervised learning, the relation between computation and risk, and structured prediction.John Lafferty and Larry Wasserman. Challenges in statistical machine learning. Statistica Sinica. Volume 16, Number 2, pp. 307-323, 2006.
Sparsity 的最重要的“客户”大概要属 high dimensional data 了吧。现在的机器学习问题中,具有非常高维度的数据随处可见。例如,在文档或图片分类中常用的 bag of words 模型里,如果词典的大小是一百万,那么每个文档将由一百万维的向量来表示。高维度带来的的一个问题就是计算量:在一百万维的空间中,即使计算向量的内积这样的基本操作也会是非常费力的。不过,如果向量是稀疏的的话(事实上在 bag of words 模型中文档向量通常都是非常稀疏的),例如两个向量分别只有 和 个非零元素,那么计算内积可以只使用 次乘法完成。因此稀疏性对于解决高维度数据的计算量问题是非常有效的。
当然高维度带来的问题不止是在计算量上。例如在许多生物相关的问题中,数据的维度非常高,但是由于收集数据需要昂贵的实验,因此可用的训练数据却相当少,这样的问题通常称为“small , large problem”——我们一般用 表示数据点的个数,用 表示变量的个数,即数据维度。当 的时候,不做任何其他假设或者限制的话,学习问题基本上是没法进行的。因为如果用上所有变量的话, 越大,通常会导致模型越复杂,但是反过来 有很小,于是就会出现很严重的 overfitting 问题。例如,最简单的线性回归模型:
使用 square loss 来进行学习的话,就变成最小化如下的问题
这里 是数据矩阵,而 是由标签组成的列向量。该问题具有解析解
然而,如果 的话,矩阵 将会不是满秩的,而这个解也没法算出来。或者更确切地说,将会有无穷多个解。也就是说,我们的数据不足以确定一个解,如果我们从所有可行解里随机选一个的话,很可能并不是真正好的解,总而言之,我们 overfitting 了。
解决 overfitting 最常用的办法就是 regularization ,例如著名的 ridge regression 就是添加一个 regularizer :
直观地来看,添加这个 regularizer 会使得模型的解偏向于 norm 较小的 。从凸优化的角度来说,最小化上面这个 等价于如下问题:
其中 是和 一一对应的是个常数。也就是说,我们通过限制 的 norm 的大小实现了对模型空间的限制,从而在一定程度上(取决于 的大小)避免了 overfitting 。不过 ridge regression 并不具有产生稀疏解的能力,得到的系数 仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。
不过,特别是在像生物或者医学等通常需要和人交互的领域,稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。比如说,一个病如果依赖于 5 个变量的话,将会更易于医生理解、描述和总结规律,但是如果依赖于 5000 个变量的话,基本上就超出人肉可处理的范围了。
在这里引入稀疏性的方法是用 regularization 代替 regularization,得到如下的目标函数
该问题通常被称为 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一个 convex optimization 问题,不过不再具有解析解。它的优良性质是能产生稀疏性,导致 中许多项变成零。
可是,为什么它能产生稀疏性呢?这也是一直让我挺感兴趣的一个问题,事实上在之前申请学校的时候一次电话面试中我也被问到了这个问题。我当时的回答是背后的理论我并不是很清楚,但是我知道一个直观上的理解。下面我们就先来看一下这个直观上的理解。
首先,和 ridge regression 类似,上面形式的 LASSO 问题也等价于如下形式:
也就是说,我们将模型空间限制在 的一个 -ball 中。为了便于可视化,我们考虑两维的情况,在 平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为 的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解。如图 (fig: 1) 所示:
-ball meets quadratic function. -ball has corners. It’s very likely that the meet-point is at one of the corners.
-ball meets quadratic function. -ball has no corner. It is very unlikely that the meet-point is on any of axes."
可以看到,-ball 与 -ball 的不同就在于他在和每个坐标轴相交的地方都有“角”出现,而目标函数的测地线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置为产生稀疏性,例如图中的相交点就有 ,而更高维的时候(想象一下三维的 -ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。
相比之下,-ball 就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么 regularization 能产生稀疏性,而 regularization 不行的原因了。
不过,如果只限于 intuitive 的解释的话,就不那么好玩了,但是背后完整的理论又不是那么容易能够搞清楚的,既然这次的标题是 Basics ,我们就先来看一个简单的特殊情况好了。
接下来我们考虑 orthonormal design 的情况: 。然后看看 LASSO 的解具体是什么样子。注意 orthonormal design 实际上是要求特征之间相互正交。这可以通过对数据进行 PCA 以及模长 normalize 来实现。
注意到 LASSO 的目标函数 (eq: 2) 是 convex 的,根据 KKT 条件,在最优解的地方要求 gradient 。不过这里有一点小问题: -norm 不是光滑的,不存在 gradient ,所以我们需要用一点 subgradient 的东西。
定义 1(subgradient; subdifferential). 对于在 维欧氏空间中的凸开子集 上定义的实值函数 ,一个向量 维向量 称为 在一点 处的 subgradient ,如果对于任意 ,满足由在点 处的所有 subgradient 所组成的集合称为 处的 subdifferential ,记为 。
注意 subgradient 和 subdifferential 只是对凸函数定义的。例如一维的情况, ,在 处的 subdifferential 就是 这个区间(集合)。注意在 的 gradient 存在的点,subdifferential 将是由 gradient 构成的一个单点集合。这样就将 gradient 的概念加以推广了。这个推广有一个很好的性质。
性质(condition for global minimizer). 点 是凸函数 的一个全局最小值点,当且仅当 。
证明很简单,将 带入定义 (def: 1) 中的那个式子立即就可以得到。有了这个工具之后,就可以对 LASSO 的最优解进行分析了。在此之前,我们先看一下原始的 least square 问题的最优解 (eq: 1) 现在变成了什么样子,由于 orthonormal design ,我们有
然后我们再来看 LASSO ,假设 是 的全局最优值点。考虑第 个变量 ,有两种情况。
gradient 存在,此时
由于 gradient 在最小值点必须要等于零,我们有
亦即
根据 orthonormal design 性质以及 least square 问题在 orthonormal design 时的解 (eq: 3) 化简得到
从这个式子也可以明显看出 和 是同号的,于是 等于 ,所以上面的式子变为
再用一次 ,两边同时乘以 ,可以得到
于是刚才的式子可以进一步写为
这里 表示 的正部。
gradient 不存在,此时
根据 subgradient 在最小值点处的性质的性质,此时比有
亦即存在 使得
于是
又因为 ,所以这个时候式子也可以统一为 (eq: 4) 的形式。 如此一来,在 orthonormal design 的情况下,LASSO 的最优解就可以写为 (eq: 4) ,可以用图 (fig: 2) 形象地表达出来。
图上画了原始的 least square 解,LASSO 的解以及 ridge regression 的解,用上面同样的方法(不过由于 ridge regularizer 是 smooth 的,所以过程却简单得多)可以得知 ridge regression 的解是如下形式
可以 ridge regression 只是做了一个全局缩放,而 LASSO 则是做了一个 soft thresholding :将绝对值小于 的那些系数直接变成零了,这也就更加令人信服地解释了 LASSO 为何能够产生稀疏解了。
from: http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/
稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization相关推荐
- 机器学习 Sparsity and Some Basics of L1 Regularization
转载:http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/#67364 ...
- 稀疏和L1正规化(Sparsity and Some Basics of L1 Regularization )
Sparsity 是当今机器学习领域中的一个重要话题.John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到:
- L1、L2正则化与稀疏性
禁止转载,谢谢! 1.正则化(Regularization)的基本概念 - 什么是正则化/如何进行正则化 定义:在机器学习中正则化(regularization)是指在模型的损失函数中加上一个正则 ...
- python实现次梯度(subgradient)和近端梯度下降法 (proximal gradient descent)方法求解L1正则化
l1范数最小化 考虑函数,显然其在零点不可微,其对应的的次微分为: 注意,的取值为一个区间. 两个重要定理: 1)一个凸函数,当且仅当,为全局最小值,即 为最小值点 : 2)为函数(不一定是凸函数) ...
- L1正则化和L2正则化的直观解释
正则化(Regularization) 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm,中文称作L1正则化和L2正则化,或者L1范数和L2 ...
- L1正则化与L2正则化详解
L1.L2正则化 什么是正则化? L1.L2正则化公式 正则化的作用 为什么加入L1正则化的模型会更稀疏 1.梯度视角 2.解空间形状视角 为何黄色区域为解空间? 3.函数叠加视角 为何L1正则化可将 ...
- L1正则化和L2正则化的详细直观解释
正则化(Regularization) 转自:此处 机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化 ...
- L1正则化及其稀疏性的傻瓜解释
本文翻译自:L1 Norm Regularization and Sparsity Explained for Dummies, 特别感谢原作者Shi Yan! 0. 前言 好吧,我想我就是很笨的那一 ...
- 机器学习速成课程 | 练习 | Google Development——编程练习:稀疏性和 L1 正则化
稀疏性和 L1 正则化 学习目标: 计算模型大小 通过应用 L1 正则化来增加稀疏性,以减小模型大小 降低复杂性的一种方法是使用正则化函数,它会使权重正好为零.对于线性模型(例如线性回归),权重为零就 ...
最新文章
- Python print函数用法,print 格式化输出
- python爬虫实战(一)~爬取百度百科人物的文本+图片信息+Restful api接口
- 斐波那契数列(fabnacci)java实现
- Re-installation failed due to different application signatures.
- python中交换a和b的值_交换A和B之间的元素以获得和相等
- 探Button控件的Click事件发生始末
- python批量雷达图_python批量制作雷达图
- 汇总下最近没时间更新的机器学习,五一后更起来
- iOS 图片拉伸、拉伸两端保留中间
- win7原版iso镜像下载 windows7官方原版全系列(正式版、专业版、企业版、家庭版)下载
- ERPS协议学习笔记
- 无人机三维建模(1) 调研
- linux修改重传次数,《关于TCP SYN包的超时与重传》——那些你应该知道的知识(四)...
- IAP协议实现苹果home键功能
- 关于密码复杂度至少8位,包含大写字母、小写字母、数字、特殊字符中至少3种组合的正则
- form 表单 onsubmit 属性
- 【财经期刊FM-Radio|2020年11月19日】
- 给你一个全新的软件,你就是负责人,你怎么去开展工作
- C语言VRAM字符串平滑移动,航空数字化仪表中动画显示技术的应用
- Pr CC 2017安装一直提示缺少MSVCR120.dll
热门文章
- 滴滴KDD2017论文:基于组合优化的出租车分单模型 By 机器之心2017年8月14日 10:29 数据挖掘顶会 KDD 2017 已经开幕,国内有众多来自产业界的论文被 KDD 2017 接收。
- GMIS 2017嘉宾王小川:人工智能技术与应用思考
- 广告计算——平滑CTR
- java难点在哪里_java的难点在哪?
- sensor曝光量和曝光行的区别_4个要点,告诉你拼多多新的产品怎么增加曝光量!...
- 小工匠聊架构-超高并发秒杀系统设计 06_数据一致性
- 高并发编程-happens-before
- 盘点一下全网最有趣的代码注释
- ROS知识 【6】Ubuntu20.04下安装ROS-noetic
- php.ini权限,php开启与关闭错误提示适用于没有修改php.ini的权限_PHP