前一篇我们讲到一个很现实的问题:模型并不是学得越多越好。

当模型开始“记住”训练数据,而不是理解数据规律时,就出现了过度拟合(Overfitting)。

这一篇,我们不再停留在现象层面,而是进入真正的解决方案——正则化(Regularization)。 

它不是一个新的模型,也不是新的算法,而是一种非常朴素但极其有效的思想:让模型在学习数据的同时,被适度约束。

为什么要“约束”模型?

假设你在做一个产品增长预测模型,输入特征有几十个:投放预算、渠道数、活动频率、用户等级、地区、节假日等等,而训练数据只有几百条。

这时候模型很容易出现一种情况:在历史数据上表现几乎完美;一上线,预测效果迅速变差。原因并不是模型不够聪明,而是它太努力地解释每一个历史细节了。

模型会通过不断放大某些参数,把训练数据里的噪声也当成规律。结果就是曲线越来越复杂,决策边界越来越扭曲,泛化能力下降——这就是过度拟合。

而通过约束模型,则可以减少这种情况的发生。

正则化的核心直觉:让模型“别太激动”

想象一下下面两种模型:

模型 A(没有约束)

  • 参数可以无限变大

  • 曲线可以任意弯曲

  • 完美穿过所有训练点

模型 B(被约束)

  • 参数不能太大

  • 曲线更平滑

  • 不追求完美贴合

现实中,模型 B 往往更可靠。 

因为参数越大,模型越复杂。而复杂模型,更容易对数据中的偶然性产生反应。

所以正则化的核心思想就是:通过限制参数大小,让模型保持克制。

正则化成本函数

我们直接看公式。

1、线性回归的原始成本函数

这是我们之前熟悉的均方误差。

2、加入正则化后的成本函数

重点在第二项:

它叫:正则化项(Regularization Term)。

公式到底在做什么?可以简单理解成:

CODE
第一部分:让模型尽量拟合数据
第二部分:惩罚过大的参数

模型现在要同时满足两个目标:预测准确和参数不要太夸张。

λ(Lambda)到底控制什么?

λ是一个权重,它决定模型更在意拟合数据,还是保持简单。

情况一:λ = 0,没有约束。 

结果:参数可以无限大,极易过度拟合。

情况二:λ 非常大,参数被强行压小。

结果: 模型接近一条直线,出现欠拟合。

情况三:合适的 λ 模型

结果:既能学习规律,又不会过度复杂。 

这就是我们真正想要的状态。

为什么只约束 w,不约束 b?

很多人第一次看到会疑惑:为什么不限制偏置项 𝑏 ?

原因很简单:

CODE
𝑤 控制曲线的形状和复杂度, 𝑏 只是整体平移。

限制 b 对复杂度几乎没有影响。

所以工程实践里通常只正则化参数 w。

逻辑回归中的正则化

逻辑回归的成本函数本来是:

加入正则化后:

注意跟线性回归相比:前半部分不同,后半部分完全一样 

这其实说明一件很重要的事:正则化不是某个模型的技巧,而是一种通用思想。

Python 示例:正则化如何让曲线变平滑

下面这个例子演示,同样的数据,不同 λ 下模型的变化:

CODE
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import Ridge
# 数据
np.random.seed(0)
x = np.linspace(0, 10, 20)
y = np.sin(x) + np.random.normal(0, 0.2, size=x.shape)
# 多项式特征
poly = PolynomialFeatures(degree=8)
X_poly = poly.fit_transform(x.reshape(-1,1))
# 不同正则化强度
lambdas = [0, 1, 100]
plt.scatter(x, y, color='black')
for l in lambdas:
    model = Ridge(alpha=l)
    model.fit(X_poly, y)
    y_pred = model.predict(X_poly)
    plt.plot(x, y_pred, label=f"lambda={l}")
plt.legend()
plt.title("Regularization Effect")
plt.show()

生成的图片如下图所示:

你会看到:

CODE
λ=0:曲线剧烈波动(过拟合)
λ变大:曲线逐渐平滑
λ过大:开始欠拟合

这就是正则化在真实世界中的样子。


写到这里,其实正则化并不只是一个公式,而是一种很重要的思维方式:模型并不是越复杂越好,而是要在“表达能力”和“稳定性”之间找到平衡。

线性回归和逻辑回归看起来不同,但在正则化的框架下,它们都在做同一件事——通过约束参数,让模型学会克制,从而真正具备面对新数据的能力。

很多时候,机器学习的进步,并不是让模型学得更多,而是让它学得刚刚好。

附录:本文涉及的专有名词中英文对照(标红为最核心)

中文
英文
简述
正则化
Regularization
通过限制参数大小,让模型不要学得过于复杂,从而提升泛化能力。
正则化成本函数
Regularized Cost Function
在原有成本函数基础上增加“约束项”,同时兼顾拟合能力与模型稳定性。
正则化项
Regularization Term
成本函数中额外加入的参数约束部分,核心作用是压缩参数规模。
正则化参数
Regularization Parameter (λ, Lambda)
控制约束强弱的超参数;越大代表约束越强。
参数收缩
Parameter Shrinkage
训练过程中参数逐渐变小的现象,是正则化的直接效果。
权重衰减
Weight Decay
从优化角度理解的正则化,本质是每一步都让参数略微缩小。
参数约束
Parameter Constraint
对模型参数增加限制条件,避免模型自由度过高。
平滑模型
Smoother Model
参数较小、曲线变化更平缓的模型,通常泛化更稳定。
复杂度控制
Complexity Control
通过正则化等方式控制模型不要过于灵活。
泛化能力
Generalization Ability
模型在未见过的数据上仍然表现良好的能力。
约束优化
Constrained Optimization
在优化目标中加入限制条件的优化方式。