正则化是机器学习和深度学习中常用的一种方法,主要用于防止模型过拟合。

“正则化(regularization)”中的“正则”一词可以从中文的字面意思和其英文对应的词语“regular”来理解。

“正则”的字面意思

  • ”:在汉语中有“正常”、“规范”的意思,指的是符合规范或标准的状态。
  • ”:可以理解为“规则”、“法则”,指代某种原则、标准或约束。

因此,“正则”可以理解为使事物符合一定规则或标准,保持其规范性、规律性。它强调通过某种机制来使事物保持在一个“正常”或“规范”的状态。

跟正则表达式的正则区别

  • 正则化的目的是通过某种惩罚机制(如L1、L2正则)让模型变得不那么复杂,防止它过度拟合数据中的噪声,使得模型更好地泛化到新数据上。
  • 正则表达式用于处理字符串,通过定义符合某种规则的字符序列,能够进行匹配、查找、替换等操作。其“正则”强调的是如何根据一定的语法规则来描述字符串的结构和模式。

两者的“正则”都可以追溯到“regular”这个词,意思都是“规则”或“规范”。正则化是对模型施加某种“规则”或“约束”,而正则表达式则是用某种“规则”来匹配文本。因此,两者在词源上有相似之处,都与规则、模式相关,但具体应用和功能完全不同。

正则化的意义

在机器学习模型中,模型往往有很多参数,若不加以限制,模型可能会变得过度复杂,从而过拟合训练数据,导致在新数据上的表现变差。

正则化通过引入某种惩罚机制,约束模型参数的大小或复杂度,迫使模型变得更简单和泛化能力更强,使模型学到的规律不仅适用于训练数据,也适用于新的数据。

正则化在模型训练过程中的位置

常见的模型训练过程:

  1. 数据输入:输入特征数据集(如图像、文本或数值数据)。
  2. 前向传播:根据当前的模型参数,计算模型的预测输出。
  3. 计算损失函数:通过损失函数衡量预测结果与真实值之间的误差。
  4. 计算目标函数:将损失函数和正则化项加在一起,形成最终的目标函数。
  5. 优化目标函数:使用优化算法(如梯度下降),最小化目标函数,从而调整模型参数。
  6. 参数更新:在考虑损失和正则化项的情况下,更新模型参数。
  7. 循环迭代:重复该过程,直到模型收敛或达到指定的训练轮次。

正则化贯穿于这个全局过程中的目标函数计算和优化步骤,其主要作用是防止模型过拟合、平衡模型的复杂度,从而提高模型的泛化能力。

说明:在机器学习中,我们的目标是通过优化算法(如梯度下降)最小化目标函数,找到最优的模型参数,从而让模型具有较好的泛化能力。

目标函数通常由两部分组成:

  • 损失函数(Loss Function):衡量模型预测与真实值之间差异的函数。
  • 正则化项(Regularization Term):用来控制模型复杂度的额外约束项。

形式为:

目标函数 = 损失函数 + λ⋅正则化项

其中,λ 是正则化系数,用来控制正则化项在目标函数中所占的权重。

如何理解正则化是对模型参数的惩罚

“惩罚”是因为正则化项会增加模型优化的难度。通常情况下,模型会倾向于通过调整参数来使得损失函数最小化,这样可以在训练数据上表现得很好。正则化项通过增加额外的“惩罚项”,迫使模型不仅要考虑减少预测误差,还要减少参数的大小或复杂性。

因此,正则化项被称为“惩罚项”,因为它给模型优化目标增加了新的条件——模型不仅要减少误差,还要控制权重的大小。如果权重太大,正则化项会使得总损失变高,从而“惩罚”模型这种行为。

常见的正则化

常见的正则化项包括:

  • L1 正则化:对模型参数的绝对值进行惩罚。
  • L2 正则化:对模型参数的平方和进行惩罚。

L1 正则化(Lasso)

通过对模型参数的绝对值进行惩罚,鼓励稀疏性。这意味着一些不重要的权重会被直接置为零,从而减少了模型的复杂度。

具体来说就是:在目标函数中加入所有权重的绝对值之和,即在损失函数中加上 \gamma {\textstyle \sum_{i}^{}\left | w_i\right | } ,其中 _是模型参数,````是正则化系数。 通过这样,达到效果:

  • L1 正则化可以产生稀疏的权重矩阵,即很多参数会变为零,因此常用于特征选择。
  • 它强制一些不重要的特征权重变为零,从而使模型更加简洁。

L1 正则化的特殊之处在于它可以使模型的某些参数变为零,这意味着模型自动忽略了一些特征。这种特性对高维数据特别有用,因为它相当于进行了一种特征选择,排除了那些不重要或冗余的特征,使得模型更加简洁。这种稀疏性可以有效减少模型对特定训练数据的依赖,降低过拟合风险。

L2 正则化(Ridge)

在损失函数中加入所有参数平方和的惩罚项,鼓励模型参数尽可能小。这种做法使得模型参数更加平滑,减少对训练集中细节或噪声的过度拟合。

具体来说就是:在目标函数中加入所有权重的平方和,即在损失函数中加上 \gamma {\textstyle \sum_{i}^{} w_i^2 } 。 通过这样,达到效果:

  • L2 正则化会使权重尽可能的小,但不会让权重变为零。
  • 它倾向于分布权重,使模型更加平滑,适用于防止过拟合。

为什么惩罚大参数能防止过拟合?

大的权重值意味着模型对某些特征的依赖非常强,这通常是模型在试图拟合训练数据中特殊噪声点的表现。

通过惩罚大的权重,模型会变得更加平滑,不会为训练集中每一个细节去调整参数,从而更好地适应新的未见过的数据。

总结

正则化是通过在目标函数中添加一个惩罚项来约束模型的参数,特别是模型中的权重或系数,防止模型过度拟合训练数据的一种方法。

正则化的作用是什么?

防止过拟合:模型在训练集上的表现可能很好,但如果模型过于复杂,它可能会记住训练数据中的噪声或异常点,从而在新数据上表现不佳。正则化通过惩罚大权重,使得模型无法完全拟合训练数据中的细节和噪声,减少模型的复杂度,从而提升泛化能力。

简化模型:正则化特别是在 L1 正则化的情况下,可以强迫一些权重变为零,从而使模型只依赖最重要的特征。这可以使模型更简洁。