【漫话机器学习系列】077.范数惩罚是如何起作用的(How Norm Penalties Work)

ops/2025/2/6 11:08:36/

范数惩罚的作用与原理

范数惩罚(Norm Penalty) 是一种常用于机器学习模型中的正则化技术,它的主要目的是控制模型复杂度,防止过拟合。通过对模型的参数进行惩罚(即在损失函数中加入惩罚项),使得模型的参数尽可能小或具有某种特定的结构,从而提升模型的泛化能力。

范数惩罚一般分为L1范数惩罚L2范数惩罚两种,分别对应着Lasso回归Ridge回归。这两种范数惩罚的作用是通过对模型参数的约束来减少模型的复杂度,避免过拟合。

1. L1范数惩罚(Lasso)

L1范数惩罚通过最小化参数的绝对值之和来施加惩罚。它的惩罚项为:

其中:

  • 是模型的参数(例如线性回归中的权重)。
  • λ 是正则化强度的超参数,控制惩罚项的权重。

L1范数的特点是:

  • 它倾向于将某些参数的值缩小到0。因此,它能起到特征选择的作用,通过自动地去除一些不重要的特征(使得对应的权重变为零)。
  • 适用于高维度数据和特征较多的场景。

L1范数惩罚的优点:

  • 可以进行特征选择,自动剔除冗余特征。
  • 对于稀疏数据(即大多数特征值为零的数据)有良好的效果。

2. L2范数惩罚(Ridge)

L2范数惩罚通过最小化参数的平方和来施加惩罚。它的惩罚项为:

其中:

  • ​ 是模型的参数。
  • λ 是正则化强度的超参数。

L2范数的特点是:

  • 它将所有参数都缩小到较小的值,而不会将它们缩小为零。也就是说,L2惩罚可以使模型的参数变得更小,但通常不会完全消除某些参数。
  • 适用于特征较多,且特征之间存在一定相关性的情况。

L2范数惩罚的优点:

  • 它通常能使得模型参数变得平滑,避免模型过于复杂,从而有效防止过拟合。
  • 对于小的噪声数据,L2正则化通常能够更好地保持稳定性。

3. L1和L2的组合(Elastic Net)

Elastic Net 是 L1 和 L2 正则化的组合,它结合了 Lasso 和 Ridge 的优点。它的惩罚项为:

Elastic Net 同时使用 L1 和 L2 正则化,使得模型不仅可以选择重要特征(L1范数的特点),而且可以避免在特征空间中出现非常大的系数(L2范数的特点)。

4. 范数惩罚对模型的影响

范数惩罚的作用可以通过以下方式起作用:

  1. 控制模型复杂度:通过惩罚模型的参数,限制模型的自由度,使得模型不会过度拟合训练数据,特别是在特征较多或数据较少的情况下。
  2. 防止过拟合:当数据量较小或噪声较多时,模型很容易过拟合。范数惩罚通过限制参数的大小或数量,从而抑制过拟合。
  3. 提升模型泛化能力:正则化约束模型,使得它对训练集外的数据也有良好的表现。

5. 正则化强度超参数(λ)

  • 选择合适的 λ:正则化强度 λ 控制了惩罚项的影响。如果 λ 太大,模型的复杂度会被过度约束,可能会欠拟合;如果 λ 太小,惩罚项的作用就不明显,可能会导致过拟合。通常通过交叉验证来选择合适的 λ。

总结

范数惩罚通过限制模型参数的大小或数量,防止模型过拟合并提高泛化能力。L1范数惩罚具有特征选择的效果,而L2范数惩罚则通过平滑模型来减少复杂性。Elastic Net 结合了两者的优点,适用于更多的实际场景。

 


http://www.ppmy.cn/ops/156132.html

相关文章

git 指定ssh key

在git clone操作中指定SSH密钥,可以通过以下几种方法实现: 1 使用–config选项在克隆时指定密钥 当你克隆一个git仓库时,可以直接在命令中指定要使用的ssh密钥。这种方法适用于一次性操作,不需要修改全局或仓库级别的配置 git …

S4 HANA手工记账Tax Payable – FB41

本文主要介绍在S4 HANA OP中手工记账Tax Payable – FB41。具体请参照如下内容: 手工记账Tax Payable – FB41 该事务代码用于手工处理税码统驭科目的记账,一般税码科目需要设置为只能自动记账,因此无法手工对税码统驭科目记账,但…

thymeleaf模板引擎

一、什么是thymeleaf模板引擎 模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。 它可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式,可以让(网站&…

响应式编程_03响应式编程在Netflix Hystrix 、Spring Cloud Gateway、Spring WebFlux中的应用

文章目录 概述响应式编程在主流开源框架中的应用Netflix Hystrix 中的滑动窗口 (基于RxJava框架)HystrixCircuitBreaker 如何动态获取系统运行时的各项数据如何实现滑动窗口? 小结Spring Cloud Gateway 中的过滤器Filter (基于Project Reacto…

Python利用VideoCapture和FFmpeg读取多个rtsp流性能的比较

最近一个项目,要用python读取30个海康摄像头的rtsp流,一开始直接用cv2.VideoCapture(video_path),结果运行一段时间后发现读出来的frame经常出现花屏的现象。所以通过两种方式对程序进行了修改。 1、我先是通过cap.set(cv2.CAP_PROP_BUFFERS…

Ollama AI 开发助手完全指南:从入门到实践

本文将详细介绍如何使用 Ollama AI 开发助手来提升开发效率,包括环境搭建、模型选择、最佳实践等全方位内容。 © ivwdcwso (ID: u012172506) 目录 基础环境配置模型选择与使用开发工具集成实践应用场景性能优化与注意事项最佳实践总结一、基础环境配置 1.1 系统要求 在…

基于AnolisOS8.6+Kubespray2.23部署Kubernetes-v1.27

测试环境 Virtual Box,AnolisOS-8.6-x86_64-minimal.iso,4 vCPU, 8G RAM, 50 vDisk。最小化安装。需联网。 系统环境 关闭防火墙 systemctl stop firewalld systemctl disable firewalld systemctl status firewalld selinux关闭 cat /etc/selinux/c…

LeetCode - #197 Swift 实现找出温度更高的日期

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…