【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。

【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。

【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。


文章目录

  • 【深度学习|学习笔记】什么是正则化?如何理解正则化?L0、L1、L2正则化的起源、发展、原理、应用和对比详解,附代码。
  • 前言
    • 一、什么是正则化?为什么需要它?
      • ✅ 定义:
      • 目标:
    • 二、正则化的背景与发展
    • 三、正则化的数学原理与公式
      • 原始目标函数(无正则):
      • ➕ 加入正则化项之后:
    • 四、Python 示例对比:L1 vs L2 正则化
    • 五、L0 正则化的启发性应用(稀疏建模)
    • 六、在机器学习和深度学习中的常见用法
    • 七、常用模型支持正则化的方式
    • ✅ 八、总结对比


欢迎铁子们点赞、关注、收藏!
祝大家逢考必过!逢投必中!上岸上岸上岸!upupup

大多数高校硕博生毕业要求需要参加学术会议,发表EI或者SCI检索的学术论文会议论文。详细信息可关注VX “学术会议小灵通”或参考学术信息专栏:https://blog.csdn.net/2401_89898861/article/details/147195226


前言

以下是结合机器学习发展,全面介绍 正则化(Regularization),并深入讲解 L0、L1、L2 正则化的:

  • 起源与发展
  • ⚙️ 原理与公式
  • 应用与对比
  • Python 代码示例

一、什么是正则化?为什么需要它?

✅ 定义:

  • 正则化(Regularization)是抑制模型复杂度,防止过拟合的一种技术手段。

目标:

  • 限制模型学习“无意义的复杂特征”;
  • 提高模型在测试集/未知样本上的泛化能力。

二、正则化的背景与发展

随着模型越来越复杂(如深度网络、非线性回归等),我们发现:

  • 模型训练集准确率极高;
  • 但在新数据上表现极差(即 过拟合)。

于是研究者提出损失函数中加入“惩罚项”的方法

  • 限制权重的大小 → 避免模型过度依赖某些特征。

这就是正则化的来源。

三、正则化的数学原理与公式

假设我们有一个基本的损失函数,如 MSE(均方误差)或 CrossEntropy(交叉熵)

原始目标函数(无正则):

在这里插入图片描述

➕ 加入正则化项之后:

在这里插入图片描述

  • Ω ( w ) Ω(w) Ω(w):正则项(依赖于参数 w w w
  • λ λ λ:正则化强度(权衡损失项和惩罚项)

四、Python 示例对比:L1 vs L2 正则化

以 逻辑回归为例:

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# L1 正则化
model_l1 = LogisticRegression(penalty='l1', solver='liblinear', C=1.0)
model_l1.fit(X_train, y_train)

# L2 正则化
model_l2 = LogisticRegression(penalty='l2', solver='liblinear', C=1.0)
model_l2.fit(X_train, y_train)

# 预测与评估
y_pred_l1 = model_l1.predict(X_test)
y_pred_l2 = model_l2.predict(X_test)

print("L1 正则准确率:", accuracy_score(y_test, y_pred_l1))
print("L2 正则准确率:", accuracy_score(y_test, y_pred_l2))

print("L1 权重稀疏性:", (model_l1.coef_ == 0).sum(), "个为0")
print("L2 权重稀疏性:", (model_l2.coef_ == 0).sum(), "个为0")

五、L0 正则化的启发性应用(稀疏建模)

L0 正则化追求最小特征集,但因不连续、不可导,计算困难,通常用以下方式近似:

  • 使用 L1 代替(Lasso)
  • 使用神经网络中的 Dropout 技术(也可看作稀疏化方式)

六、在机器学习和深度学习中的常见用法

应用场景 推荐正则类型
高维稀疏特征选择(如文本) ✅ L1 / Lasso
通用稳健模型(如图像识别) ✅ L2 / Ridge
特征压缩、自动选择 ✅ L1、L0启发
深度学习网络 ✅ L2 + Dropout

七、常用模型支持正则化的方式

  • sklearn.linear_model.Lasso:L1 正则
  • sklearn.linear_model.Ridge:L2 正则
  • LogisticRegression:支持 penalty='l1' or 'l2'
  • torch.nn.Linear + 手动加正则项:在损失函数中手动添加权重范数

✅ 八、总结对比

正则化类型 优点 缺点
L0 真实稀疏特征选择 难以优化,通常不直接使用
L1 选择性地消除无用特征 不稳定(多个特征相关时随机选择)
L2 提升稳定性与泛化能力 不会稀疏处理,所有特征都保留

你可能感兴趣的:(深度学习,学习笔记,深度学习,学习,笔记,人工智能,机器学习)