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

1- L₁正则化

稀疏矢量通常包含许多维度。创建特征组合会导致包含更多维度。
由于使用此类高维度特征矢量,因此模型可能会非常庞大,并且需要大量的 RAM。

在高维度稀疏矢量中,最好尽可能使权重正好降至 0。
正好为 0 的权重基本上会使相应特征从模型中移除。
将特征设为 0 可节省 RAM 空间,且可以减少模型中的噪点。

通过添加适当选择的正则化项,最好情况下,可以使无意义维度的权重正好降至 0,就能够避免在推理时支付这些模型系数的存储费用。
可以使用 L1 正则化使模型中很多信息缺乏的系数正好为 0,从而在推理时节省 RAM。
注意:L2 正则化可以使权重变小,但是并不能使它们正好为 0.0,因此L2 正则化并不适合此场景。

2- L1和L2正则化

L2 和 L1 采用不同的方式降低权重:

  • L2 会降低权重2
  • L1 会降低 |权重|

因此,L2 和 L1 具有不同的导数:

  • L2 的导数为 2 * 权重
  • L1 的导数为 k(一个常数,其值与权重无关)

可以将 L2 的导数的作用理解为每次移除权重的 x%。
对于任意数字,即使按每次减去 x% 的幅度执行数十亿次减法计算,最后得出的值也绝不会正好为 0。总而言之,L2 通常不会使权重变为 0。

可以将 L1 的导数的作用理解为每次从权重中减去一个常数。
不过,由于减去的是绝对值,L1 在 0 处具有不连续性,这会导致与 0 相交的减法结果变为 0。
例如,如果减法使权重从 +0.1 变为 -0.2,L1 便会将权重设为 0。就这样,L1 使权重变为 0 了。

注意:以上说明适用于一维模型。

3- 理解

问题

1- 假设某个线性模型具有 100 个输入特征:其中 10 个特征信息丰富,另外 90 个特征信息比较缺乏。
假设所有特征的值均介于 -1 和 1 之间。以下哪些陈述属实?

    • L1 正则化会使大多数信息缺乏的权重正好为 0.0。
    • L1 正则化可能会使信息丰富的特征的权重正好为 0.0。
    • L1 正则化会使很多信息缺乏的权重接近于(但并非正好是)0.0。

2- 假设某个线性模型具有 100 个输入特征,这些特征的值均介于 -1 到 1 之间:

    • 其中 10 个特征信息丰富。
    • 另外 90 个特征信息比较缺乏。

哪种类型的正则化会产生较小的模型?

    • L1 正则化。
    • L2 正则化。

答案

1-
 L1 正则化会使大多数信息缺乏的权重正好为 0.0。--- 正确
 lambda 充分的 L1 正则化往往会使信息缺乏的权重正好为 0.0。这样,这些信息缺乏的特征便会远离模型。

 L1 正则化可能会使信息丰富的特征的权重正好为 0.0。--- 正确
 请注意,L1 正则化可能会使以下类型的特征的权重正好为 0:
      信息缺乏的特征。
      不同程度的信息丰富的特征。
      与其他类似的信息丰富特征密切相关的信息丰富特征。

L1 正则化会使很多信息缺乏的权重接近于(但并非正好是)0.0。--- 错误
 一般来说,lambda 充分的 L1 正则化往往会使信息缺乏的特征的权重正好为 0.0。
 与 L2 正则化不同,无论权重距 0.0 有多远,L1 正则化都很难使权重降低但不为 0.0。

2-
L1 正则化。--- 正确
L1 正则化往往会减少特征的数量。也就是说,L1 正则化常常会减小模型的大小。

L2 正则化。--- 错误
L2 正则化很少会减少特征的数量。 也就是说,L2 正则化很少会减小模型的大小。

4- 练习

xxx

5- 关键词

稀疏特征 (sparse feature)
一种特征向量,其中的大多数值都为 0 或为空。
例如,某个向量包含一个为 1 的值和一百万个为 0 的值,则该向量就属于稀疏向量。
再举一个例子,搜索查询中的单词也可能属于稀疏特征 - 在某种指定语言中有很多可能的单词,但在某个指定的查询中仅包含其中几个。
与密集特征相对。

特征组合 (feature cross)
通过将单独的特征进行组合(求笛卡尔积)而形成的合成特征。特征组合有助于表达非线性关系。

凸优化 (convex optimization)
使用数学方法(例如梯度下降法)寻找凸函数最小值的过程。
机器学习方面的大量研究都是专注于如何通过公式将各种问题表示成凸优化问题,以及如何更高效地解决这些问题。

L1 正则化 (L₁ regularization)
一种正则化,根据权重的绝对值的总和来惩罚权重。
在依赖稀疏特征的模型中,L1 正则化有助于使不相关或几乎不相关的特征的权重正好为 0,从而将这些特征从模型中移除。与 L2 正则化相对。

L2 正则化 (L₂ regularization)
一种正则化,根据权重的平方和来惩罚权重。
L2 正则化有助于使离群值(具有较大正值或较小负值)权重接近于 0,但又不正好为 0。(与 L1 正则化相对。)
在线性模型中,L2 正则化始终可以改进泛化。

独热编码 (one-hot encoding)
一种稀疏向量,其中:

    • 一个元素设为 1。
    • 所有其他元素均设为 0。

独热编码常用于表示拥有有限个可能值的字符串或标识符。
例如,假设某个指定的植物学数据集记录了 15000 个不同的物种,其中每个物种都用独一无二的字符串标识符来表示。
在特征工程过程中,可能需要将这些字符串标识符编码为独热向量,向量的大小为 15000。

权重 (weight)
线性模型中特征的系数,或深度网络中的边。
训练线性模型的目标是确定每个特征的理想权重。
如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习入门13 - 正则化:稀疏性 (Regularization for Sparsity)的更多相关文章

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

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

  2. 机器学习入门 - Google机器学习速成课程 - 笔记汇总

    机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...

  3. [转]MNIST机器学习入门

    MNIST机器学习入门 转自:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html?plg_ ...

  4. tensorfllow MNIST机器学习入门

    MNIST机器学习入门 这个教程的目标读者是对机器学习和TensorFlow都不太了解的新手.如果你已经了解MNIST和softmax回归(softmax regression)的相关知识,你可以阅读 ...

  5. Andrew Ng机器学习课程13

    Andrew Ng机器学习课程13 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要从一般的角度介绍EM算法及其思想,并推导了EM算法的收敛性.最后 ...

  6. TensorFlow.NET机器学习入门【4】采用神经网络处理分类问题

    上一篇文章我们介绍了通过神经网络来处理一个非线性回归的问题,这次我们将采用神经网络来处理一个多元分类的问题. 这次我们解决这样一个问题:输入一个人的身高和体重的数据,程序判断出这个人的身材状况,一共三 ...

  7. L1、L2范式及稀疏性约束

    L1.L2范式及稀疏性约束 假设需要求解的目标函数为: E(x) = f(x) + r(x) 其中f(x)为损失函数,用来评价模型训练损失,必须是任意的可微凸函数,r(x)为规范化约束因子,用来对模型 ...

  8. Azure机器学习入门(三)创建Azure机器学习实验

    在此动手实践中,我们将在Azure机器学习Studio中一步步地开发预测分析模型,首先我们从UCI机器学习库的链接下载普查收入数据集的样本并开始动手实践: http://archive.ics.uci ...

  9. web安全之机器学习入门——3.1 KNN/k近邻

    目录 sklearn.neighbors.NearestNeighbors 参数/方法 基础用法 用于监督学习 检测异常操作(一) 检测异常操作(二) 检测rootkit 检测webshell skl ...

随机推荐

  1. android shape 怎么在底部画横线

    使用layer-list可以,画了两层 1 2 3 4 5 6 7 8 9         <layer-list>             <!-- This is the lin ...

  2. UVA 2290 Transmitters

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  3. 跟踪SQL

    在数据库中,找到以下页面,并选择事件中的Tsql下的bath...与stm...

  4. Concept Drift(概念漂移)

    Introdution concept drift在机器学习.时间序列以及模式识别领域的一种现象.如果是在机器学习领域中,这个概念指的就是一个模型要去预测的一个目标变量,概念漂移就是这个目标变量随着时 ...

  5. Unity编辑器扩展-Custom List, displaying data your way

    本文转自http://catlikecoding.com/unity/tutorials/editor/custom-list/ Custom List, displaying data your w ...

  6. Session使用(14)

    用session统计某个网页的访问人数(因为我还不会js,所以就做了个简易版本的) 1.创建Session监听器,每创建了一个Session对象就执行监听类中·的sessionCreated方法. p ...

  7. nginx,hello World!

     向nginx中添加第一个最简单的hello world模块 一.编写ngx_http_mytest_module模块 1. ngx_http_mytest_module.c #include < ...

  8. How to setup Visual Studio without pain

    Visual Studio (VS) can be very hard to install. If you are lucky, one whole day may be enough to ins ...

  9. 《Serverless架构-无服务单页应用开发》读后感

    本书的作者是[美]Ben Rady,译者郑赞美.简传挺,书中作者详细的介绍了如何使用html.js以及amazon提供的诸多云服务(Simple Storage Service(S3).Cognito ...

  10. Java学习之JDBC 2019/3/10

    Java学习之JDBC 大部分的程序都是用来通过处理数据来达到人们预期的效果,数据是粮食,没有数据操作的程序就像helloworld程序一样没有用处.因此数据库操作是重中之重,是程序发挥功能的基石,j ...