深度学习正则化技术之权重衰减法、暂退法(通俗易懂版)

embedded/2025/3/14 22:09:23/

一、影响模型泛性的因素有?什么是正则化技术?有什么用?

通常,影响模型泛化能力的因素有:

  • 可调节参数的个数:可调节的参数过少,会造成模型过于简单,欠拟合;过多,会造成成模型过于复杂,捕获过多训练数据中的噪声或特定细节,过拟合。
  • 参数采用的值:权重取值范围较大,较大的权重值会导致模型对输入数据更加敏感,从而可能捕获训练数据中的噪声或特定细节,这会使模型变得过于复杂,容易过拟合训练数据。
  • 训练数据量:数据越多,拟合数据模型就需要更加灵活,学习训练数据中的噪声和特定细节就变得更加困难。

深度学习中训练模型由于数据的不足和训练轮数的增加也可能导致模型学习到了训练数据中的噪声,模型的训练误差远远大于泛化误差,模型在训练数据上的表现远远好过在测试数据上的表现,这就是模型的过拟合。简单来说就是由于练习题库少,做题很多遍但是学习到的做题方法不够,却记住了练习题库,导致做练习题分数很高,但是做新的考试题目就表现得很差。

过拟合一般取决于训练数据量和模型的复杂程度这两个因素,模型的复杂程度高,所以就会记住训练数据中无关紧要的噪声部分,对预测测试数据产生不良影响。

缓解模型过拟合一般有三种方式:

  • 更多训练数据:成本高,耗时长。
  • 限制参数(特征)个数:过于生硬,参数过少模型容易过于简单,参数过多模型容易过于复杂。
  • 正则化技术:它是比限制参数个数更细粒度的调节模型复杂度的技术,一种避免模型过于复杂的技术,常见的正则化技术有权重衰减和暂退法

二、权重衰减——限制参数“放飞自我”

权重衰减又叫做L2正则化,通过权重向量的L2范数度量模型的权重向量(模型参数)的复杂度,将这种范数度量作为惩罚函数添加到损失函数中,避免模型在训练过程中权重参数变得过于复杂,造成过拟合。

2.1、简单类比

考试前复习老师要求不要扣偏题怪题(防止模型过度关注噪声),而是抓核心知识点(掌握主要特征),相当于老师划定了考试范围。就不会只学习带项圈的猫的特征(项圈即噪声),而遇到不戴项圈的猫时候就判定不是猫。

所谓的大道至简,越简洁的公式越具有普遍意义。比如:用大量小积木块可以完整拟合训练数据(比如特定形状的桥),但是换形状后就垮了;使用少量搭积木块虽然不能很完美的拟合训练数据,但是更容易搭出不同形状的桥,形状也更加稳定。

通过限制模型参数的大小,迫使模型学习更简单、更通用的规律,而不是死记硬背训练数据。它的本质是在拟合数据和保持简单性之间找到平衡

2.2、L2范数 VS L1范数

  • L2(权重衰减)惩罚的是参数的平方和,对权重的大向量施加了巨大的惩罚,不会让少数参数占据绝对的影响力,而是让各个参数都对模型做出一定的贡献,更好的保持了大量特征上的均匀分布权重,所以会让参数趋近小而分散。
  • L1惩罚的是绝对值之和,对于绝对值较小的参数,由于每次都会更靠近零,变成0后就不会再更新,所以L1会让部分参数归零,适合特征选择。

三、暂退法——神经元随机装傻

3.1、核心思路

在训练时,随机让一部分神经元“装傻”(暂时失效),迫使模型不能过度依赖某些特定的神经元,必须学会用多样化的路径做预测。

3.2、类比

如果你是一个老师,你想要教会全班回答一个问题。如果只提问学霸,那么其他同学就会躺平,仅仅依靠学霸来应付提问。上面类似传统的训练,要想打破这种模型参数之间的特定依赖,每一层都依赖前一层输出——即打破共适应性,提问的时候可以采用随机抽取同学回答问题,不再是固定学霸回答,其他同学必须学习回答问题,进而训练全班同学回答问题的能力——即使神经元随机失效,稀疏化神经元依赖,相当于训练了多个子模型,进而提高模型的泛化能力。

Dropout 是一种“以退为进”的策略,主要应用在神经网络的训练过程中的前向传播阶段,通过随机让神经元失效,强迫模型学习鲁棒的特征,避免过拟合。它的本质是给训练过程增加噪声,让模型在“不确定性”中变得更强大。

四、总结

  • Dropout:动态改变网络结构,训练多样性子模型。

  • 权重衰减:直接约束参数,从数学上控制模型复杂度。


http://www.ppmy.cn/embedded/172590.html

相关文章

数据中心安全建设方案,数据安全运营体系建设方案,信息中心安全解决方案(PPT)

1. 项目简介 项目背景 项目建设思路 项目建设内容 项目建设目标 2. 技术平台建设方案 监控范围 平台架构 安全模型 部署示意图 详细方案 3. 人员流程制度建设方案 人员建设规划 流程建设规划 制度建设规划 软件全套资料部分文档清单: 工作安排任务书,可行…

【每日学点HarmonyOS Next知识】顶部状态栏、文本最大行数后缀、弹窗背景、状态栏颜色、导航

1、HarmonyOS 应用把顶部系统状态栏信息完全覆盖了&#xff1f; //设置窗口全屏模式时导航栏、状态栏的可见模式&#xff08;需全部显示&#xff0c;该参数设置为[status, navigation]&#xff0c;不设置&#xff0c;则默认不显示&#xff09; let names: Array<status | n…

前端面试:ajax 和 xhr 是什么关系?

在前端开发中&#xff0c;AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;和 XHR&#xff08;XMLHttpRequest&#xff09;是两个密切相关但有些不同的概念。以下是对这两者的详细解释及其关系&#xff1a; 1. AJAX 定义&#xff1a;AJAX 是一个用于创建异步 we…

Redis 部署方式有哪些

以下是 Redis 主从复制和分布式部署的详细方法和步骤&#xff1a; 1.Redis 主从复制部署 架构 主从复制是 Redis 最基本的分布式机制&#xff0c;通过将数据从主节点&#xff08;Master&#xff09;复制到多个从节点&#xff08;Slave&#xff09;&#xff0c;实现读写分离和数…

C盘清理技巧分享:释放空间,提升电脑性能

目录 1. 引言 2. C盘空间不足的影响 3. C盘清理的必要性 4. C盘清理的具体技巧 4.1 删除临时文件 4.2 清理系统还原点 4.3 卸载不必要的程序 4.4 清理下载文件夹 4.5 移动大文件到其他盘 4.6 清理系统缓存 4.7 使用磁盘清理工具 4.8 清理Windows更新文件 4.9 禁用…

47.HarmonyOS NEXT 登录模块开发教程(二):一键登录页面实现

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 登录模块开发教程&#xff08;二&#xff09;&#xff1a;一键登录页面实现 文章目录 HarmonyOS NEXT 登录模块开发教程&#xff0…

flutter EventBus 的使用介绍

一、EventBus 初识 EventBus 是一个只有20多行的代码库, 通常用它来做事件分发。 EventBus 遵从 publish/subscribe 模式,即发布/订阅模式;简化了模块之间通信,对于项目的解耦很实用; 组件地址: https://github.com/marcojakob/dart-event-bus 源码: class EventBus…

Swift 手动导入 RxSwift.xcframework 报错

0x00 问题 The signature of “RxCocoa.xcframework” cannot be validated and may have been compromised. Validation Error: A sealed resource is missing or invalid 0x01 办法 手动修复签名&#xff0c;能 Build 成功&#xff01; 打开终端&#xff0c;重新签名&…