转载:http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/#67364f6b44ff80f9f952d5a46f2307425d2ee9ac

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 来进行学习的话,就变成最小化如下的问题

这里 是数据矩阵,而 是由标签组成的列向量。该问题具有解析解

(eq: 1)

然而,如果 的话,矩阵 将会不是满秩的,而这个解也没法算出来。或者更确切地说,将会有无穷多个解。也就是说,我们的数据不足以确定一个解,如果我们从所有可行解里随机选一个的话,很可能并不是真正好的解,总而言之,我们 overfitting 了。

解决 overfitting 最常用的办法就是 regularization ,例如著名的 ridge regression 就是添加一个 regularizer :

直观地来看,添加这个 regularizer 会使得模型的解偏向于 norm 较小的 。从凸优化的角度来说,最小化上面这个 等价于如下问题:

其中 是和 一一对应的是个常数。也就是说,我们通过限制 的 norm 的大小实现了对模型空间的限制,从而在一定程度上(取决于 的大小)避免了 overfitting 。不过 ridge regression 并不具有产生稀疏解的能力,得到的系数 仍然需要数据中的所有特征才能计算预测结果,从计算量上来说并没有得到改观。

不过,特别是在像生物或者医学等通常需要和人交互的领域,稀疏的解除了计算量上的好处之外,更重要的是更具有“可解释性”。比如说,一个病如果依赖于 5 个变量的话,将会更易于医生理解、描述和总结规律,但是如果依赖于 5000 个变量的话,基本上就超出人肉可处理的范围了。

在这里引入稀疏性的方法是用 regularization 代替 regularization,得到如下的目标函数

(eq: 2)

该问题通常被称为 LASSO (least absolute shrinkage and selection operator) 。LASSO 仍然是一个 convex optimization 问题,不过不再具有解析解。它的优良性质是能产生稀疏性,导致 中许多项变成零。

可是,为什么它能产生稀疏性呢?这也是一直让我挺感兴趣的一个问题,事实上在之前申请学校的时候一次电话面试中我也被问到了这个问题。我当时的回答是背后的理论我并不是很清楚,但是我知道一个直观上的理解。下面我们就先来看一下这个直观上的理解。

首先,和 ridge regression 类似,上面形式的 LASSO 问题也等价于如下形式:

也就是说,我们将模型空间限制在 的一个 -ball 中。为了便于可视化,我们考虑两维的情况,在 平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为 的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解。如图 (fig: 1) 所示:

1

图 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

定义 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 ,我们有

(eq: 3)

然后我们再来看 LASSO ,假设

机器学习 Sparsity and Some Basics of L1 Regularization相关推荐

  1. 稀疏性和L1正则化基础 Sparsity and Some Basics of L1 Regularization

    Sparsity 是当今机器学习领域中的一个重要话题.John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到: Some current challenges ...

  2. 稀疏和L1正规化(Sparsity and Some Basics of L1 Regularization )

    Sparsity 是当今机器学习领域中的一个重要话题.John Lafferty 和 Larry Wasserman 在 2006 年的一篇评论中提到:

  3. 机器学习------L1、L2规范化(L1 Regularization、L1 Regularization)

    取自孙明的"数字图像处理与分析基础" 1. 引入--病态问题和约束 通过改变模型的拟合能力来避免过拟合并不是一件容易的事情,更常用的办法是使用规范化对模型的参数进行一定的约束.下面来考虑一个非常简单的 ...

  4. 机器学习入门13 - 正则化:稀疏性 (Regularization for Sparsity)

    原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-sparsity/ 1- L₁正 ...

  5. 机器学习中的范数理解(L0,L1,L2)

    监督机器学习就是规则化参数的同时最小化误差. 有监督学习的样本都是带有标签的样本,用 yyy 来表示样本的标签,我们通过算法来提取样本特征并对其进行分类或回归,得到结果 y1=WTx" ro ...

  6. 机器学习入门10 - 正则化:简单性(Regularization for Simplicity)

    原文链接:https://developers.google.com/machine-learning/crash-course/regularization-for-simplicity 正则化指的 ...

  7. 学习机器学习四 回归模型——线性回归、L1正则化(Lasso回归)、L2正则化(ridge回归)

    还记得什么是回归吗?回忆下回归就是连续的输出,分类是离散的. 回归模型一般分为:①线性回归--就是线性方程,类似为一元一次方程(y=wx+b),比如你的年龄: ②逻辑回归(类似为曲线方程) 线性回归 ...

  8. 逻辑回归python正则化 选择参数_吴恩达机器学习笔记(三)——正则化(Regularization)...

    1.过拟合的问题(Over-fitting) 如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为0),但是可能会不能推广到新的数据. (1)下图是一个回归问题 ...

  9. python机器学习库sklearn——Lasso回归(L1正则化)

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 Lasso The Las ...

最新文章

  1. 对前端界面工程师这个职位是怎么样理解的?
  2. 将通讯录导入到摩托罗拉A1800通讯录中
  3. 洛谷 P3455BZOJ1101 【[POI2007]ZAP-Queries】
  4. 计算机磁盘分为硬盘和什么,fat32是什么?
  5. 移动端机器学习模型压缩也自动化了:腾讯新框架为自家模型加速50%
  6. java cp命令:命令行指定需要加载的类classpath
  7. 使用C#来手动连接 Access 2007数据库
  8. 《System语言详解》——6. 语句种类
  9. Atitit、 知识管理法 目录 1. 信息管理的演进 1 2. 显性知识管理 1 3. 隐形知识 1 4. 知识产权保护 1 1.信息管理的演进 文献管理,计算机管理,信息资源管理,情报管理,直
  10. java 远程登录linux_使用java登录远程LINUX并对服务实现各种操作
  11. Ajax Js倒计时执行后台方法
  12. 日历2021年日历表|2021年日历表打印版 Excel版
  13. office彻底卸载工具
  14. 如何简单理解光圈大小对手机摄影的影响?
  15. 工业物联网盒子python_【工业4.0面面观】之十八:基于AWS的工业物联网应用案例...
  16. 数据处理 | 一些野路子
  17. 纸质的报销单错了就得重新来,可不可以填写电子报销单?
  18. 一铲子下去,服务器全瘫痪......
  19. @MapKey的使用
  20. YoloV5 + deepsort + Fast-ReID 完整行人重识别系统(三)

热门文章

  1. 2021Java高级进阶学习资料!java面试刷题软件
  2. 9 08 | 目标客户和用户画像
  3. 421 Maximum login limit has been reached. on hdfs-over-ftp
  4. python算法设计 - 埃拉托色尼筛选法
  5. 密码域的HTML代码是,表单中的密码域password
  6. android出现Failed to load AppCompat ActionBar with unknown error.无法预览视图布局解决方法
  7. java中Stream流的使用
  8. 面向Java开发者的ChatGPT提示词工程(4)
  9. linux好多命令用不了,linux系统所有命令突然用不了的解决方法
  10. java基础--接口(interface)