原文链接: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. 把button中文字的省略号放到后面

    butt.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; 加上这句话就可以,uibutton有uilabel的方法

  2. Android自动化之Monkey测试(二)

    本文主要从以下方面进行分享. 一.查看应用包名二.Monkey启动三.Monkey停止四.Monkey命令五.日志分析 一.查看应用包名 大多数时候,我们都是对特定的应用进行monkey测试,因此需要 ...

  3. 由odoo源不稳定想到的,一个非常简单但是有效的方式解决yum源不稳定的问题,实现无限重试

    如题,最近在安装odoo 10, 但是官方源的速度是在是不敢恭维,断断续续的. yum 有没有能够无限重试的参数,于是用python写了个死循环,让它无限重试下去 脚本如下: #! /usr/bin/ ...

  4. 从Excel表中导入数据时日期格式的验证问题解决

    #region IsDateTimeType 私有方法判断导入数据是否是日期格式 /// <summary> /// 私有方法判断导入数据是否是日期格式 /// </summary& ...

  5. 冒泡排序&&选择排序

    package cn.lijun.demo;//冒泡排序public class Test5 { public static void main(String[] args) { int[] arr ...

  6. 虚拟机运行docker后映射端口到windows开发机

    1.运行容器(以Oracle-xe-11g为例) 运行容器时先在虚拟机内映射端口 docker run -d -p 9090:8080 -p 1521:1521 wnameless/oracle-xe ...

  7. k8s对接ceph存储

    前提条件:已经部署好ceph集群 本次实验由于环境有限,ceph集群是部署在k8s的master节点上的 一.创建ceph存储池 在ceph集群的mon节点上执行以下命令: ceph osd pool ...

  8. vi中删除所有查找到的行

    vi中删除所有查找到的行 在linux中查找文件,结果中有很多是.svn目录里的,把查找结果放到一个文件里. 用vi打开该文件,按ESC,进入命令行模式,输入 :g/\.svn/d 就可以把所有含”. ...

  9. unic

    在线考试 答题剩余时间0小时51分18秒 考生须知 1.本次考试结束后,剩余补考次数:2次 2.考试时间为60分钟,超时系统自动交卷 3.本次考试满分100分(5*20道),60分通过考试 1. (单 ...

  10. 洛谷P2689 东南西北

    https://www.luogu.org/problemnew/show/P2689 #include<iostream> #include<algorithm> using ...