机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数,它们之间存在多个方面的区别。

以下是关于L1范数和L2范数区别的详细解释:

一、定义差异

  • L1范数:也被称为曼哈顿范数,是向量元素的绝对值之和。对于一个n维向量x,其L1范数表示为:||x||₁ = |x₁| + |x₂| + ... + |xₙ|
  • L2范数:也被称为欧几里得范数,是向量元素的平方和的平方根。对于一个n维向量x,其L2范数表示为:||x||₂ = √(x₁² + x₂² + ... + xₙ²)。

二、几何特性

  • 在二维空间中,L1范数的单位球是一个菱形,而L2范数的单位球是一个圆。这种几何形状的差异反映了两种范数在向量空间中的不同约束方式。

三、稀疏性

  • L1范数:由于其性质,L1范数在某些优化问题中会导致解向量的稀疏性,即解的许多组件为零。这种特性使得L1范数常用于特征选择,因为它可以自动将不重要的特征系数置为零
  • L2范数:不具有稀疏性特点。L2范数倾向于选择更多的特征,但这些特征的系数都会接近于零,而不是完全为零。

四、对异常值的敏感度

  • L1范数:相对于L2范数,L1范数对异常值更具有鲁棒性。因为L1范数是通过绝对值求和来计算的,所以它对大数值的敏感度较低
  • L2范数:对异常值更敏感。由于L2范数计算了每个元素的平方,因此大数值的元素会对其产生更大的影响。

五、求解难度

  • L1范数:在某些情况下,L1范数的优化问题可能更难求解,尤其是在高维空间中。然而,L1范数的稀疏性特点使得它在某些特定问题(如特征选择)中具有优势。
  • L2范数:通常更容易求解,尤其是当使用像梯度下降这样的优化算法时。L2范数的平滑性使得其优化问题更加稳定。

六、在正则化中的应用

  • L1正则化:常用于Lasso回归中,可以导致特征选择,即让某些特征的系数变为零。这有助于降低模型的复杂度并提高模型的解释性
  • L2正则化:常用于Ridge回归中,可以防止过拟合,提升模型的泛化能力。L2正则化通过约束模型参数的平方和来限制模型的复杂度,使得模型的参数不会过大

2、正则化是一种防止机器学习模型过拟合的技术,常见的正则化方法包括L1正则化、L2正则化和dropout。

以下是它们的详细介绍:

L1 正则化(Lasso Regularization)

L1 正则化通过损失函数中加入权重绝对值的和来约束模型的复杂度,其公式为:

其中,λ 是正则化强度的超参数,wi​ 是模型的权重。

特点:

  • 能够产生稀疏权重矩阵,适合特征选择
  • 某些权重可能会变成零,从而将不重要的特征移除

L2 正则化(Ridge Regularization)

L2 正则化通过损失函数中加入权重平方和来约束模型的复杂度,其公式为:

特点:

  • 更倾向于使权重变小,但不会将权重变成零
  • 保持所有特征的影响,但减少过拟合

Dropout

Dropout 是一种在训练过程中随机忽略部分神经元的技术,以减少过拟合训练时每个神经元以一定的概率p被忽略(即设置为零),而在测试时所有神经元都被使用,但其输出按比例缩放,以反映训练时的忽略。

特点:

  • 强化模型的鲁棒性,因为模型不能依赖某个特定的神经元
  • 可以有效减少过拟合,尤其在深度神经网络中。

公式: 假设有一个隐藏层向量 h,dropout后的向量 h~ 可以表示为:

其中,r 是一个与 h 维度相同的向量,每个元素以概率 p 为 0,概率 1−p 为 1。

实施方法:

这种方法有效地减少了模型对某个特定神经元的依赖,从而提高了模型的泛化能力

比较和应用场景

  • L1 正则化 适用于希望得到稀疏模型(即少数重要特征,特征选择)的情况。
  • L2 正则化 适用于希望保持所有特征的贡献,同时避免权重过大,适用于大多数线性模型
  • Dropout 适用于深度神经网络,特别是在大规模数据集上的应用,可以显著减少过拟合

在实际应用中,常常会结合使用这些正则化方法,例如在神经网络中同时使用L2正则化和dropout。

相关推荐

  1. StarkNet架构之L1-L2消息传递机制

    2024-07-14 14:12:01       39 阅读
  2. L1-035 情人节

    2024-07-14 14:12:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 14:12:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 14:12:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 14:12:01       58 阅读
  4. Python语言-面向对象

    2024-07-14 14:12:01       69 阅读

热门阅读

  1. 昇思25天学习打卡营第23天|LSTM+CRF序列标注

    2024-07-14 14:12:01       23 阅读
  2. QT creator简介

    2024-07-14 14:12:01       28 阅读
  3. 05.CSS 缓动变量 && 首字下沉 & 放大缩小动画

    2024-07-14 14:12:01       22 阅读
  4. iOS热门面试题(三)

    2024-07-14 14:12:01       19 阅读
  5. 六爻排盘 api数据接口

    2024-07-14 14:12:01       21 阅读
  6. LeetCode 367, 56, 22

    2024-07-14 14:12:01       21 阅读