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

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

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

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

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

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

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

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

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

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

2.1、简单类比

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

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

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

2.2、L2范数 VS L1范数

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

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

3.1、核心思路

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

3.2、类比

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

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

四、总结

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

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

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

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

相关文章

爬虫逆向:Unicorn 详细使用指南

文章目录 1. Unicorn 介绍1.1 Unicorn 的特点1.2 Unicorn功能2. 安装 Unicorn2.1 安装 Python 绑定2.2 安装 Unicorn 核心库3. Unicorn 的基本使用3.1 初始化模拟器3.2 映射内存3.3 写入代码3.4 设置寄存器3.5 执行代码3.6 读取寄存器4. Unicorn 的高级功能4.1 钩子函数4.2 异常…

【SpringBoot】实现登录功能

在上一篇博客中,我们讲解了注册页面的实现。在此基础上会跳转到登录页面,今天给大家带来的是使用 SpringBoot,MyBatis,Html,CSS,JavaScript,前后端交互实现一个登录功能。 目录 一、效果 二、…

【小白向】Ubuntu|VMware 新建虚拟机后打开 SSH 服务、在主机上安装vscode并连接、配置 git 的 ssh

常常有人问VMware-Tools装了也复制粘贴不了怎么办,这个东西影响因素太多了,具体解决办法你们可以参考一下:【经验】VMware|虚拟机只能使用鼠标无法使用键盘、装不了或装了VMware-Tools无法复制粘贴的可能解决办法_增强型键盘驱动程…

mingw工具源码编译

ming-w64 mingw编译生成的库,需要mingw的lib文件支持。 https://github.com/mingw-w64/mingw-w64 使用msys2的bash git checkout v8.0.3 ./configure --disable-dependency-tracking --targetx86_64-w64-mingw32 mingw32-make.exe -j4 修改makefile中的make 改成mi…

LSTM方法实践——基于LSTM的汽车销量时序建模与预测分析

Hi,大家好,我是半亩花海。本实验基于汽车销量时序数据,使用LSTM网络(长短期记忆网络)构建时间序列预测模型。通过数据预处理、模型训练与评估等完整流程,验证LSTM在短期时序预测中的有效性。 目录 一、实验…

Stable Diffusion教程|快速入门SD绘画原理与安装

什么是Stable Diffusion,什么是炼丹师?根据市场研究机构预测,到2025年全球AI绘画市场规模将达到100亿美元,其中Stable Diffusion(简称SD)作为一种先进的图像生成技术之一,市场份额也在不断增长&…

Webpack构建流程详解优化前端性能\Dev-Server与Proxy\网络攻击\HMR

简版 核心流程图 根据,Webpack的构建流程分为初始化、编译和输出三个阶段。初始化阶段读取配置、加载插件、实例化Compiler。编译阶段(构建依赖关系)涉及Compiler类的运行,生成Compilation对象,处理模块依赖。输出阶…

《Transformer如何进行图像分类:从新手到入门》

引言 如果你对人工智能(AI)或深度学习(Deep Learning)感兴趣,可能听说过“Transformer”这个词。它最初在自然语言处理(NLP)领域大放异彩,比如在翻译、聊天机器人和文本生成中表现出…

Java --- 根据身份证号计算年龄

介绍 根据身份证号计算年龄 Java代码 /*** 根据身份证号计算年龄* param birthDateStr* return*/public static int calculateAge(String birthDateStr) {try {birthDateStrbirthDateStr.substring(6,68);// 定义日期格式SimpleDateFormat sdf new SimpleDateFormat("…

零成本搭建Calibre个人数字图书馆支持EPUB MOBI格式远程直读

文章目录 前言1.网络书库软件下载安装2.网络书库服务器设置3.内网穿透工具设置4.公网使用kindle访问内网私人书库 前言 嘿,各位书虫们!今天要给大家安利一个超级炫酷的技能——如何在本地Windows电脑上搭建自己的私人云端书库。亚马逊服务停了&#xff…

【Linux 指北】常用 Linux 指令汇总

第一章、常用基本指令 # 注意: # #表示管理员 # $表示普通用户 [rootlocalhost Practice]# 说明此处表示管理员01. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件&#xf…

跟踪napi_gro_receive_entry时IP头信息缺失的分析

问题描述 在使用eBPF程序跟踪napi_gro_receive_entry内核跟踪点时,发现获取到的IP头部字段(如saddr、daddr、protocol)为空值。 代码如下: /* 自定义结构体来映射 napi_gro_receive_entry tracepoint 的 format */ struct napi…

Android子线程更新View的方法原理

对于所有的Android开发者来说,“View的更新必须在UI线程中进行”是一项最基本常识。 如果不在UI线程中更新View,系统会抛出CalledFromWrongThreadException异常。那么有没有什么办法可以不在UI线程中更新View?答案当然是有的! 一…

【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)

DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…

Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)

一、计算机眼中的图像 像素 像素是图像的基本单元,每个像素存储着图像的颜色、亮度和其他特征。一系列像素组合到一起就形成 了完整的图像,在计算机中,图像以像素的形式存在并采用二进制格式进行存储。根据图像的颜色不 同,每个像…

SQLiteStudio:一款免费跨平台的SQLite管理工具

SQLiteStudio 是一款专门用于管理和操作 SQLite 数据库的免费工具。它提供直观的图形化界面,简化了数据库的创建、编辑、查询和维护,适合数据库开发者和数据分析师使用。 功能特性 SQLiteStudio 提供的主要功能包括: 免费开源,可…

【软考网工-实践篇】DHCP 动态主机配置协议

一、DHCP简介 DHCP,Dynamic Host Configuration Protocol,动态主机配置协议。 位置:DHCP常见运行于路由器上,作为DHCP服务器功能:用于自动分配IP地址及其他网络参数给网络中的设备作用:简化网络管理&…

【Linux学习笔记】Linux用户和文件权限的深度剖析

【Linux学习笔记】Linux用户和文件权限的深度剖析 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 文章目录 【Linux学习笔记】Linux用户和文件权限的深度剖析前言一. Linux权限管理1.1 文件访问者的分类(人)…

Centos离线安装openssl-devel

文章目录 Centos离线安装openssl-devel1. openssl-devel是什么?2. openssl-devel下载地址3. openssl-devel安装4. 安装结果验证 Centos离线安装openssl-devel 1. openssl-devel是什么? openssl-devel 是 Linux 系统中与 OpenSSL 加密库相关的开发包&…

深度学习篇---Opencv中Haar级联分类器的自定义

文章目录 1. 准备工作1.1安装 OpenCV1.2准备数据集1.2.1正样本1.2.2负样本 2. 数据准备2.1 正样本的准备2.1.1步骤2.1.2生成正样本描述文件2.1.3示例命令2.1.4正样本描述文件格式 2.2 负样本的准备2.2.1步骤2.2.2负样本描述文件格式 3. 训练分类器3.1命令格式3.2参数说明 4. 训…