zoukankan      html  css  js  c++  java
  • 机器学习入门13

    原文链接: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,则相应的特征对模型来说没有任何贡献。


  • 相关阅读:
    python urllib urllib2
    python 标准库获取网络信息
    dell N1500 安全配置
    python jinjia2模板使用
    flask-admin
    github使用
    python中文处理
    C++输入和输出中进制问题
    hdu1708(C++)
    hdu1017(C++)
  • 原文地址:https://www.cnblogs.com/anliven/p/10344515.html
Copyright © 2011-2022 走看看