zoukankan      html  css  js  c++  java
  • 机器学习学习记录【持续更新】——L2正则化

    什么是L2正则化?

    请查看以下泛化曲线,该曲线显示的是训练集和验证集相对于训练迭代次数的损失。
    在这里插入图片描述
    上图显示的是某个模型的训练损失逐渐减少,但验证损失最终增加。换言之,该泛化曲线显示该模型与训练集中的数据过拟合。根据奥卡姆剃刀定律,或许我们可以通过降低复杂模型的复杂度来防止过拟合,这种原则称为正则化。
    也就是说,并非只是以最小化损失(经验风险最小化)为目标,而是以最小化损失和复杂度为目标,这称为结构风险最小化。
    我们可以使用 L2 正则化公式来量化复杂度,该公式将正则化项定义为所有特征权重的平方和:
    在这里插入图片描述

    lambda

    模型开发者通过以下方式来调整正则化项的整体影响:用正则化项的值乘以名为 lambda(又称为正则化率)的标量。也就是说,模型开发者会执行以下运算:在这里插入图片描述
    执行 L2 正则化对模型具有以下影响:

    • 使权重值接近于 0(但并非正好为 0)
    • 使权重的平均值接近于 0,且呈正态(钟形曲线或高斯曲线)分布。

    在选择 lambda 值时,目标是在简单化和训练数据拟合之间达到适当的平衡:

    • 如果您的 lambda 值过高,则模型会非常简单,但是您将面临数据欠拟合的风险。您的模型将无法从训练数据中获得足够的信息来做出有用的预测。

    • 如果您的 lambda 值过低,则模型会比较复杂,并且您将面临数据过拟合的风险。您的模型将因获得过多训练数据特点方面的信息而无法泛化到新数据。

    所以lambda的值,常常需要根据数据的不同来手动调试!!!

  • 相关阅读:
    C++每次读取一行字符串输入(学习笔记) (转)
    Ubuntu使用Windows下的conio.h
    容斥原理、欧拉函数、phi
    UVa1635
    转:用STL中的vector动态开辟二维数组
    [转载]Vector用法(C++ Primer中文版)
    c++中vector的pair与make_pair的使用,双关键字排序
    uva12716 GCD XOR
    在 Ubuntu 14.04 中安装 Pepper Flash Player For Chromium
    Careercup
  • 原文地址:https://www.cnblogs.com/782687539-nanfu/p/12707593.html
Copyright © 2011-2022 走看看