【AI知识点】正则化(Regularization)

news2024/10/6 14:09:36

正则化(Regularization) 是机器学习和统计学中的一种技术,用于防止模型过拟合。在训练模型时,模型可能会过度拟合训练数据,导致在新数据上的表现较差。正则化通过在优化过程中引入额外的约束或惩罚项,使模型更简单、泛化能力更强,从而避免过拟合。

1. 过拟合问题的背景

过拟合(Overfitting) 发生在模型在训练数据上表现得非常好,但在测试数据上表现不佳时。原因是模型学到了数据中的噪声或随机波动,而不是数据的基本模式。这通常发生在模型过于复杂时,比如当模型的参数过多,或者模型训练的迭代次数过多。

过拟合的表现通常是:

  • 训练集误差很小,模型在训练集上表现很好。
  • 测试集误差较大,模型在新数据上表现较差。

为了解决这个问题,我们可以通过正则化来限制模型的复杂度,使其更好地泛化到新数据上。


2. 正则化的基本原理

正则化通过在损失函数中引入一个额外的惩罚项,来限制模型的复杂度,防止模型过度拟合训练数据。正则化会迫使模型的参数变小(接近于零),从而使得模型更加平滑,避免复杂的参数设置。

目标函数的通用形式为:

目标函数 = 原始损失函数 + λ ⋅ 正则化项 \text{目标函数} = \text{原始损失函数} + \lambda \cdot \text{正则化项} 目标函数=原始损失函数+λ正则化项

其中:

  • 原始损失函数:例如,线性回归中的均方误差 (MSE)。
  • 正则化项:通常是模型参数的某种形式的范数(如 L1 或 L2 范数)。
  • λ \lambda λ:正则化强度的超参数,控制正则化项的影响大小。当 λ = 0 \lambda = 0 λ=0 时,没有正则化;当 λ \lambda λ 较大时,正则化项的影响变强。

3. 常见的正则化方法

a. L2 正则化(Ridge 回归,岭回归)

L2 正则化 是一种常见的正则化技术,它在损失函数中加入参数的平方和作为惩罚项。具体来说,L2 正则化会通过惩罚模型参数的平方和来限制模型的参数值。

对于线性回归问题,L2 正则化的目标函数为:

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 + \lambda \sum_{j=1}^{n} \theta_j^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2+λj=1nθj2

其中:

  • h θ ( x ( i ) ) h_\theta(x^{(i)}) hθ(x(i)) 是模型的预测值。
  • y ( i ) y^{(i)} y(i) 是实际值。
  • θ j \theta_j θj 是模型的参数。
  • λ \lambda λ 是正则化系数,控制正则化项的大小。

L2 正则化的效果是将参数尽可能缩小,但不会将参数完全置零。因此,它适合处理高维度特征空间的数据,通过缩小参数值来避免模型过于复杂。

b. L1 正则化(Lasso 回归)

L1 正则化 是另一种正则化方法,它在损失函数中加入参数的绝对值和作为惩罚项。具体来说,L1 正则化通过惩罚模型参数的绝对值和来使某些不重要的参数值变为零。

L1 正则化的目标函数为:

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n ∣ θ j ∣ J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 + \lambda \sum_{j=1}^{n} |\theta_j| J(θ)=2m1i=1m(hθ(x(i))y(i))2+λj=1nθj

L1 正则化有一个非常有用的性质:它可以将某些参数压缩为 0,从而实现特征选择。因此,L1 正则化不仅能够控制模型的复杂度,还能使得模型仅依赖于最重要的特征。

c. Elastic Net 正则化

Elastic Net 正则化 是 L1 和 L2 正则化的结合,它的目标是结合 L1 正则化和 L2 正则化的优点。Elastic Net 通过调整两个超参数来平衡 L1 和 L2 正则化的影响。

Elastic Net 的目标函数为:

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ 1 ∑ j = 1 n ∣ θ j ∣ + λ 2 ∑ j = 1 n θ j 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 + \lambda_1 \sum_{j=1}^{n} |\theta_j| + \lambda_2 \sum_{j=1}^{n} \theta_j^2 J(θ)=2m1i=1m(hθ(x(i))y(i))2+λ1j=1nθj+λ2j=1nθj2

Elastic Net 在高维特征空间中表现良好,尤其适合处理高度相关的特征,因为它结合了 L1 正则化的稀疏性和 L2 正则化的稳定性。


4. 正则化的作用

a. 防止过拟合

正则化的主要作用是防止过拟合。模型在训练数据上表现过好,可能是因为学习了数据中的噪声。通过惩罚大参数值,正则化可以强迫模型更加平滑,避免过拟合。

b. 提高泛化能力

正则化使得模型更简单,因此提高了模型对新数据的泛化能力。通过限制模型的复杂度,正则化帮助模型更好地学习数据的潜在模式,而不是噪声或偶然性。

c. 特征选择

L1 正则化具有特征选择的能力。由于它可以将某些参数缩减为 0,因此可以帮助自动选择最有用的特征,并忽略不重要的特征。这在高维数据中特别有用。


5. 正则化超参数的选择

正则化强度由超参数 λ \lambda λ 控制。如何选择合适的 λ \lambda λ 值对模型性能有重要影响。通常,我们通过交叉验证(Cross-Validation) 来选择最优的正则化参数值:

  • 较大的 λ \lambda λ 会使正则化的惩罚更强,导致模型参数趋向于零,模型更简单,但可能出现欠拟合
  • 较小的 λ \lambda λ 会减弱正则化的效果,导致模型更复杂,可能会出现过拟合

交叉验证可以帮助我们在模型的偏差-方差权衡(Bias-Variance Tradeoff) 之间找到最佳平衡。


6. 正则化在深度学习中的应用

在深度学习中,正则化同样扮演重要角色,尤其是在训练深度神经网络时,模型的参数往往非常多,容易出现过拟合。常用的正则化技术包括:

a. 权重衰减(Weight Decay)

权重衰减 实际上与 L2 正则化是等价的,都是通过添加参数的平方和作为正则化项来约束模型。二者常常被互换使用。

  • 权重衰减 更常用在优化器的实现中,比如 Adam、SGD 等优化算法中会引入权重衰减参数来直接影响梯度更新。在这些优化器的梯度更新规则中,权重衰减通过对模型参数进行小幅度的调整,使得每次更新时参数都会缩小一部分。
    • 例如,带有权重衰减的 SGD 的更新公式如下:
      θ t + 1 = θ t − η ( ∇ θ t L ( θ t ) + λ θ t ) \theta_{t+1} = \theta_t - \eta (\nabla_{\theta_t} L(\theta_t) + \lambda \theta_t) θt+1=θtη(θtL(θt)+λθt)
      其中 η \eta η 是学习率, λ θ t \lambda \theta_t λθt 是正则化(权重衰减)的影响项。
  • L2 正则化 通常是通过对损失函数增加 L2 范数惩罚项的形式出现。

b. Dropout

Dropout 是一种用于神经网络的正则化技术。在训练过程中,Dropout 随机将一些神经元的输出设为 0,使得每次训练使用不同的网络结构。这种方法能够防止神经元之间的共适应现象,增强模型的泛化能力。

  • 应用:Dropout 常用于深度神经网络的中间层,尤其是卷积神经网络(CNN)和循环神经网络(RNN)。
  • 神经元之间的共适应现象:在标准神经网络中,某些神经元可能会形成依赖关系,导致网络只适应特定的特征组合。通过 Dropout,网络每次训练时使用不同的神经元子集,迫使每个神经元在不同的上下文中独立学习特征,从而防止这些“共适应”现象。

下图中左边是标准的神经网络(全连接神经网络),右边是使用了 Dropout 技术的神经网络。

在这里插入图片描述
图片来源:https://paperswithcode.com/method/dropout

c. 数据增强(Data Augmentation)

数据增强(Data Augmentation)是一种提升机器学习模型泛化能力的技术,主要用于在有限的数据集上扩展训练数据。通过对现有数据进行一定的变换操作,生成新的数据样本,数据增强可以有效地提高模型的鲁棒性和性能,特别是在图像、文本和语音等领域中。常见的增强方式包括:

  1. 图像领域:对图片进行旋转、翻转、缩放、平移、颜色调整等操作来生成新的样本。
  2. 文本领域:对句子进行同义词替换、随机删除或插入单词、打乱词序等。
  3. 语音领域:对音频进行变速、添加噪声、改变音量等操作。

数据增强的核心思想是通过人为增加数据的多样性,来减少模型对特定模式的依赖,进而提高模型在新数据上的表现能力。


7. 正则化的实际应用

a. 线性回归

线性回归中,正则化可以有效避免模型对数据过拟合。例如,Lasso 回归可以在处理高维数据时通过将一些系数缩减为零,自动执行特征选择。

b. 逻辑回归

逻辑回归中,正则化同样重要,尤其是在处理大量特征时,L1 正则化可以选择最重要的特征,而 L2 正则化可以使模型更加平滑和稳健。

c. 神经网络

神经网络中,模型往往有大量的参数,正则化可以帮助防止模型过拟合训练数据,从而提高模型的泛化能力。


8. 总结

正则化(Regularization) 是机器学习中防止过拟合、提高泛化能力的重要工具。通过限制模型的复杂度,正则化能够帮助我们构建在新数据上表现更好的模型。常用的正则化方法包括 L2 正则化(Ridge 回归)、L1 正则化(Lasso 回归)和 Elastic Net,它们适用于不同的数据场景和模型需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2192080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python如何比较字符串

Python可使用cmp()方法来比较两个对象,相等返回 0 ,前大于后,返回 1,小于返回 -1。 a "abc" b "abc" c "aba" d "abd" print cmp(a,b) print cmp(a,c) print cmp(a,d) //返回 0 1 …

pWnos1.0 靶机渗透 (Perl CGI 的反弹 shell 利用)

靶机介绍 来自 vulnhub 主机发现 ┌──(kali㉿kali)-[~/testPwnos1.0] …

解决 OpenCloudOS 中 yum 安装 yum-utils 命令报错的问题

目录 前言1. 问题背景与错误分析2. 深入分析错误原因2.1 OpenCloudOS 与 CentOS 之间的区别2.2 文件冲突的具体分析 3. 解决方案3.1 使用 --replacefiles 强制安装3.2 使用 yum swap 替换冲突包3.3 手动调整冲突包 4. 预防与优化建议4.1 确保软件源的兼容性4.2 定期更新系统 结…

爆赞!豆瓣9.6,多语言版本全球发行,程序员入门大模型必读之作!

当一本书的内容足够好,它就会拥有多个语言版本 我已将这本大模型书免费分享出来,需要的小伙伴可以扫取。 在这个信息全球化的时代,一本书籍的卓越内容往往能够跨越语言的界限,触及世界各地读者的心灵。今天,我们庆祝…

617、合并二叉树

1、题目描述 . - 力扣(LeetCode) 规则:一个二叉树覆盖到另一颗二叉树上。 (1)重复的节点就将节点值做累加 (2)不重复的节点就取并集。 最终得到一个全新的二叉树,如下图所示。 2、分析 分析:也属于构造二叉树&#x…

Llama 3.2 安卓手机安装教程

在刚刚结束的Meta开发者大会上,Llama 3.2惊艳亮相。此次,它不仅拥有多模态能力,还与Arm等公司合作,推出了专门针对高通、联发科硬件优化的“移动”版本。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 -…

Centos Stream 9备份与恢复、实体小主机安装PVE系统、PVE安装Centos Stream 9

最近折腾小主机,搭建项目环境,记录相关步骤 数据无价,丢失难复 1. Centos Stream 9备份与恢复 1.1 系统备份 root权限用户执行进入根目录: cd /第一种方式备份命令: tar cvpzf backup.tgz / --exclude/proc --exclu…

参数标准+-db和-db

-db是因为比值是相近的,值越进行越好,正负db代表两个值差异不大,可以分子比分母大或者分母比分子大-db代表串扰,分子比分母小,所以负db的值越小越好

探索 GraphRAG:从存储到查询,深入解析 NebulaGraph 与传统 SQL 的对比

近年来,图数据库逐渐成为大数据和人工智能领域的热议话题。特别是随着 GraphRAG 技术的火爆,如何高效存储和查询大规模图数据成为很多开发者关心的问题。出于好奇,我最近尝试了 GraphRAG 并研究其存储结构,因此决定进一步探索图数…

(笔记)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第3关---浦语提示词工程实践

学员闯关手册:https://aicarrier.feishu.cn/wiki/ZcgkwqteZi9s4ZkYr0Gcayg1n1g?open_in_browsertrue 课程视频:https://www.bilibili.com/video/BV1cU411S7iV/ 课程文档: https://github.com/InternLM/Tutorial/tree/camp3/docs/L1/Prompt 关…

2024年最新大模型LLM学习路径全解析!看完你就是LLM大师

ChatGPT的出现在全球掀起了AI大模型的浪潮,2023年可以被称为AI元年,AI大模型以一种野蛮的方式,闯入你我的生活之中。 从问答对话到辅助编程,从图画解析到自主创作,AI所展现出来的能力,超出了多数人的预料&…

aws(学习笔记第二课) AWS SDK(node js)

aws(学习笔记第二课) 使用AWS SDK(node js) 学习内容: 使用AWS SDK(node js) 1. AWS SDK(node js) AWS支持多种SDK开发(除了AWS CLI,还支持其他的SDK) AndroidPythonNode.js(Javas…

【梯级水电站调度优化】基于标准粒子群

课题名称: 基于标准粒子群算法的梯级水电站调度优化 代码获取方式(付费): 相关资料: 1. 粒子群算法的基本原理 2. 梯级水电站调度优化模型 3. 代码注释 4. 代码讲解视频(个人录制) 程序实…

【电路笔记】-运算放大器微分器

运算放大器微分器 文章目录 运算放大器微分器1、概述2、运算放大器微分器的表示2.1 理想微分器2.2 输出公式2.3 交流分析3、实际微分器3.1 理想配置的局限性3.2 带串联电阻的伪微分器3.3 具有并联电容器的伪微分器4、总结1、概述 在我们之前关于积分器运算放大器的文章中,我们…

数据库概述(3)

课程主页:Guoliang Li Tsinghua 继续补充DBMS概况: DBMS概况 存储管理层 缓冲区管理 为了持久保存数据库里面的数据,必定要做持久化技术,也就是会用到磁盘,然而磁盘读取数据的速度是比较慢的,一般是毫…

港股大跌敲响警钟

10月3日,港股早间突如其来的下跌一度登上热搜榜,而午后回暖的恒指则一度抹去跌幅持平。截至当日收盘,恒指跌1.47%,报22,113.51点,守住了22000点关口;恒生科技指数跌、跌3.46%,报4978…

好用耐用充电宝品牌有哪些?推荐2024年热门款充电宝

作为一位热衷于探索各种数码产品的测评博主,今天我又来给大家带来满满的干货啦!在这个智能手机不离手的年代,拥有一款好用耐用的充电宝简直就成了出行必备。那么,在众多品牌和型号中,哪些充电宝真正值得我们入手呢&…

机器学习系列篇章0 --- 人工智能机器学习相关概念梳理

说明 人工智能(Artificial Intelligence, AI)是大势所趋,我们正处于一个AI开始大爆发的时代,基于AI的各类工具在科研、生产、生活各方各面给我们带来了巨大的便利和影响(好的以及坏的),有关AI的一切我们不可不察。 我并非计算机这个行当的科…

msvcp140dll丢失是怎回事,对比哪种解决方法更简单有效

1. msvcp140.dll 简介 1.1 定义与作用 msvcp140.dll 是 Microsoft Visual C 2015 Redistributable Package 的一部分,它包含了 C 运行时库的函数和类,这些库是支持 Windows 应用程序运行的关键组件。msvcp140.dll 文件提供了对 C 程序中常用的功能的支…

Jedis多线程环境报错:redis Could not get a resource from the pool 的主要原因及解决办法。

本篇文章主要讲解,Jedis多线程环境报错:redis Could not get a resource from the pool 的主要原因及解决办法。 作者:任聪聪 日期:2024年10月6日01:29:21 报错信息: 报文: redis Could not get a resou…