深度学习-正则化

摘要

本文系统阐述了深度学习中的正则化技术体系,围绕防止过拟合这一核心目标展开。首先通过偏差-方差框架解析过拟合/欠拟合本质,并使用对比表明确区分特征;其次深入分析了L1/L2正则化的数学原理(2mλ​∥w∥2与mλ​∥w∥1​),揭示其通过权重收缩(W(1−mαλ​))的机制;接着详解了Dropout技术实现方案(随机置零+缩放补偿)及其在计算机视觉中的应用价值;最后补充了早停法和数据增强策略。全文贯通理论公式与可视化示例,形成完备的正则化知识体系。

在这里插入图片描述

文章目录

  • 摘要
  • 为什么需要正则化
  • 过拟合与欠拟合对比表
  • 正则化---为了防止过拟合
  • 总结

为什么需要正则化

这里引入一些概念

  1. 偏差:预测与实际值差的大,训练集,测试集都不准。
  2. 方差:受数据的扰动大,训练集数据差别大(方差大),导致相同模型,不同训练集,预测的结果不同。(训练集准,测试集不准)
  3. 过拟合:训练参数过多,而训练样本过少导致学习了无用特征,或过度看重某个特征,使预测集准确率低。
  4. 欠拟合:训练集,测试集准确率都低。(偏差大)

过拟合与欠拟合对比表

特性过拟合 (Overfitting)欠拟合 (Underfitting)
定义模型在训练集上表现很好,但在测试集上表现差模型在训练集和测试集上表现都差
训练误差
测试误差
模型复杂度通常过于复杂(模型参数过多)通常过于简单(模型参数过少)
学习能力学习能力过强,甚至记住了噪声学习能力不足,无法捕捉数据中的基本模式
数据量通常发生在数据量较少时可能发生在数据量不足或模型太简单时
偏差-方差分解高方差高偏差
解决方案1. 增加数据量
2. 正则化(L1/L2)
3. 减少模型复杂度
4. Dropout
5. 早停(Early Stopping)
1. 增加模型复杂度
2. 增加特征数量
3. 减少正则化
4. 延长训练时间
5. 使用更复杂的模型
典型表现图训练误差曲线远低于测试误差曲线训练误差和测试误差都较高且接近
决策边界非常复杂,可能包含许多不必要的细节过于简单,无法捕捉数据中的结构

正则化—为了防止过拟合

逻辑回归的L1与L2正则化

逻辑回归的参数W数量根据特征的数量而定(一个神经元*特征数),那么正则化如下

L2正则化 w2w^2w2

逻辑回归的损失函数中增加L2正则化

J(w,b)=1m∑i=1mL(y^(i),y(i))+λ2m∥w∥2J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)+\frac{\lambda}{2 m}\|w\|^{2}J(w,b)=m1i=1mL(y^(i),y(i))+2mλw2

其中的L2范数可以理解:λ2m∥w∥22=λ2m∑j=1nxjwj2=λ2mwTw\frac{\lambda}{2 m}\|w\|_{2}^{2}=\frac{\lambda}{2 m} \sum_{j=1}^{n} \frac{x_{j}}{w_{j}^{2}} =\frac{\lambda}{2 m} w^{T} w2mλw22=2mλj=1nwj2xj=2mλwTw

解释:所有w参数的平方和的结果

  • 1m∑i=1mL(y^(i),y(i))\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)m1i=1mL(y^(i),y(i))是当前批次,所有样本损失率的平均值
  • L2范数=λ2m∥w∥2\frac{\lambda}{2 m}\|w\|^{2}2mλw2=λ2mwTw\frac{\lambda}{2 m} w^{T} w2mλwTwwww是权重矩阵(由神经元与特征数目决定)
  • λ\lambdaλ是超参数

L1正则化 www

逻辑回归的损失函数中增加L1正则化

J(w,b)=1m∑i=1mL(y^(i),y(i))+λ2m∥w∥1J(w, b)=\frac{1}{m} \sum_{i=1}^{m} L\left(\hat{y}^{(i)}, y^{(i)}\right)+\frac{\lambda}{2 m}\|w\|_{1}J(w,b)=m1i=1mL(y^(i),y(i))+2mλw1

其中L2范数可以理解为:λ2m∥w∥1=λ2m∑j=1nxj∣wj∣\frac{\lambda}{2 m}\|w\|_{1}=\frac{\lambda}{2 m} \sum_{j=1}^{n} \frac{x_{j}}{\left|w_{j}\right|}2mλw1=2mλj=1nwjxj

梯度下降

•接下来我们通过方向传播来理解这个其中的L2,对于损失函数我们要反向传播求参数梯度:

(1) dW=∂L∂w+λmWdW=\frac{\partial L}{\partial w}+\frac{\lambda}{m} WdW=wL+mλW

前面的默认损失函数的梯度计算结果默认为backprop,那么更新的参数就为

(2) W:=W−αdWW:=W-\alpha dWW:=WαdW 那么我们将第一个公式带入第二个得到

W:=W−α(∂L∂w+λmW)W:=W-\alpha(\frac{\partial L}{\partial w}+\frac{\lambda}{m} W) W:=Wα(wL+mλW)

=W−αλmW−α∗∂L∂w=W-\frac{\alpha \lambda}{m} W-\alpha * \frac{\partial L}{\partial w} =WmαλWαwL

所以每次更新的时候都会让W(1−αλm)W(1-\frac{\alpha \lambda}{m})W(1mαλ),使权重www随迭代次数逐渐减小,所以我们通常称L2范数为权重衰减。

  • 正则化如何防止过拟合的
    在这里插入图片描述
    红线:合适的拟合。
    绿线:过拟合
    蓝线:欠拟合

如上图所示,我们发现,当模型发生过拟合时,模型相对于其他模型,曲线函数更加的弯曲,这说明在局部弯曲的部分,切线斜率特别大,(即模型导数的绝对值特别大,这是由于www从一个较大的值变化到另一个大的值,是www的系数过大导致的),对于整个模型来说,我们可以理解为所有的参数的绝对值之和特别大。因此,如果我们有办法使得这些参数的值,比较稠密均匀地集中在零附近,就能有效地抑制过拟合。于是,便引入了范数。从而使www的系数减小,从而减小拟合的波动,防止过拟合的发生

参考:正则化如何防止过拟合的

注:其中,入为正则化因子,是超参数。由于L1正则化最后得到 w向量中将存在大量的 0,使模型变得稀疏化,因此 L2 正则化更加常用。

dropout正则化

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • dropout为什么起效

加入了dropout后,输入的特征都存在被随机清除的可能,所以该神经元不会再特别依赖于任何一个输入特征,也就是不会给任何一个输入特征设置太大的权重。通过传播过程,dropout将产生和L2正则化相同的收缩权重的效果。(不会给某个特征设置太大的权重)

·对于不同的层,设置的keep_prob大小也不一致,神经元较少的层,会设keep_prob为1.0,而神经元多的层则会设置比较小的keep_prob通常被使用在计算机视觉领域,图像拥有更多的特征,场景容易过拟合,效果被实验人员证明是很不错的。

早停止法

在这里插入图片描述

数据增强

增加数据的多样性,使其能够尽可能覆盖所有情况。
在这里插入图片描述

在这里插入图片描述
如果所有A类都是头朝左,B类都是头朝右,就会可能会把车头朝向视为类别的重要依据。
在这里插入图片描述

  • 数据增强的效果

在这里插入图片描述

总结

过拟合风险
正则化策略
L1/L2权重惩罚
Dropout随机失活
数据增强扩展
早停法干预
抑制大权重
破坏特征依赖
增加多样性
控制训练时机
提升泛化能力

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

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

相关文章

STM32之风扇模块(开关控制+PWM调速)

目录 一、系统概述 二、5V直流风扇模块简介 2.1 基本概述 2.2 关键特性 2.3 接口定义 2.4 典型驱动电路 2.4.1 继电器驱动方案(开关控制) 2.4.2 三极管驱动方案(调速控制) 2.5 常见问题解决 三、继电器模块控制风…

AGX Xavier 搭建360环视教程【二、环境配置】

AGX Xavier 场景下的 【OpenCV FFmpeg CUDA GStreamer】 重装 & 编译的2025年稳定方案✅ 1️⃣ 先卸载老版本AGX 自带很多预装包,原则:卸载干净,避免旧库和新编译冲突。🔹 卸载 OpenCVdpkg -l | grep opencv sudo apt-get …

Cesium实战:交互式多边形绘制与编辑功能完全指南(最终修复版)

📋 文章目录 引言功能概述环境准备核心实现步骤 地图初始化多边形绘制顶点编辑功能颜色与透明度自定义面积计算与显示 常见问题解决方案 多边形颜色显示异常面积标签不可见控制台alpha类型错误地图交互无法恢复 完整代码总结与扩展 引言 Cesium作为一款强大的3D地…

SQL判断先判断条件1是否符合,条件1不符合再判断条件2

伪代码假设存在条件1和条件2SELECT * FROM table1 WHERE 条件1 AND 条件2方法1:先判断条件1是否符合,条件1不符合再判断条件2是否满足:SELECT * FROM table1 WHERE (条件1) OR (NOT 条件1 AND 条件2);方法 2: 使用 IF 或数据库特有函数(…

游戏的程序员会不会偷偷改自己账号的数据?

看到这个问题,我忍不住笑了。 作为一个在程序员这条路上摸爬滚打了快10年的老司机,虽然我主要专精嵌入式开发,但我也接触过不少游戏开发的朋友,对游戏行业的内部运作有一定了解。这个问题可以说是每个游戏玩家都曾经想过的&#x…

uniapp小程序tabbar跳转拦截与弹窗控制

一、第一步1、App.vue中定义globalData用于全局存储状态globalData:{needShowReleaseConfirm: false, // 标记是否需要显示发布页面确认弹窗allowReleaseJump: false ,// 标记是否允许跳转到发布页面},2、在App.vue中的onLaunch写入监听事件onLaunch: function() {// 添加switc…

华为网路设备学习-26(BGP协议 一)

一、AS(自治系统)AS(自治系统)的大小通常指其分配的唯一编号,范围分为两种:‌2字节AS号‌:取值范围1至65535(其中64512-65535为私有AS号) ‌‌4字节AS号‌:取…

大模型开发框架LangChain之函数调用

1.前言 之前一直使用 dify开发 agent,虽然功能很全面、效果也稳定,但是也存在流程固化、不灵活,以及 dify本身太重(内部包含10个容器)等问题。 故最近研究了大名顶顶的 langchain,先从函数调用开始&#xf…

pycharm中自动补全方法返回变量

使用IDEA开发java中,可以使用altenter 快捷键快速补全方法放回的变量使用pycharm也想实现此效果,如下图操作方法:pycharm中默认的补全方法返回变量的快捷键是:CtrlAltv 可以直接使用默认快捷键,也可以在settings->k…

Set 二分 -> 剑指算法竞赛

C【STL】集合set 标准库提供 set 关联容器分为: 按关键字有序保存元素:set(关键字即值,即只保存关键字的容器)、multiset(关键字可重复出现的 set); 无序集合:unordered…

php的原生类

前言:累麻了! 反射类 反射类 ReflectionClass:ReflectionClass 类报告了一个类的有关信息。正如其名用于映射反射一个类的类! new ReflectionClass(MyClass) 会创建一个 ReflectionClass 实例,代表 MyClass 这个类。 …

PC网站和uniapp安卓APP、H5接入支付宝支付

首先我们需要完成支付宝账号注册,支持的账号类型:支付宝企业账号、支付宝个人账号、个体工商户。 到支付宝商家平台 产品中心开通APP支付、手机网站支付、电脑网站支付的产品权限。 一、电脑PC网站接入 电脑PC网站支付是指商户在电脑网页展示商品或服务&…

MCU芯片内部的ECC安全机制

MCU(微控制器单元)芯片内部的 ECC(错误检测与纠正)安全机制 是一种至关重要的硬件级可靠性技术,主要用于保护关键存储单元(如 SRAM、Flash、Cache)中的数据完整性,防止因外部干扰或硬…

【自动驾驶】经典LSS算法解析——深度估计

LSS-Lift.Splat,Shoot 论文题目:Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 代码:https://github.com/nv-tlabs/lift-splat-shoot 概括:先做深度估计和特征融合,然后投…

《【第八篇-图片总结篇】Python图片处理自动化:终极工厂!从裁剪压缩到智能加水印,打造你的视觉内容生产流水线!》

在数字时代,图片无处不在。然而,高质量的图片背后,往往隐藏着繁琐的后期处理:图片文件太大导致加载慢;尺寸不符需要裁剪;版权保护要加水印; 为了兼容性还得批量转换格式……这些重复、机械的工…

frame 与新窗口切换操作【selenium 】

🧭 一、切换到 iframe 内部进行操作在浏览器自动化测试中,iframe 是一个特别的存在。它相当于在当前页面中嵌入了另一个独立的 HTML 页面。当我们试图直接访问 iframe 中的元素时,往往会发现定位不到,比如:elements w…

MYSQL C_API使用全解

文章目录C_API(简单的)安装这个库使用流程初始化连接mysql_init建立连接mysql_real_connect执行SQL语句mysql_query处理结果mysql_store_resultmsyql_use_resultmysql_num_rowsmsyql_free_resultmysql_num_fieldsmysql_fetch_row多线程安全关闭连接mysql…

闲庭信步使用图像验证平台加速FPGA的开发:第二课——RGB转YCbCr的FPGA硬件编程详解

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注…

RK3566/RK3568 Android11 修改selinux模式

概述RK3566/RK3568 Android11 SDK默认的selinux是Enforcing模式(强制模式)。Enforcing:强制模式:SELinux在运行中,且已经开始限制domain/type之间的验证关系 Permisssive:宽容模式:SELinux在运行中,如果验证…

iOS Widget 开发-3:Widget 的种类与尺寸(主屏、锁屏、灵动岛)

iOS 支持多种类型的 Widget,分布在主屏幕、锁屏、灵动岛、待机模式、控制中心等多个系统位置。每种 Widget 都有各自的尺寸、交互能力与限制。 本篇将系统梳理 iOS 当前支持的 Widget 类型与尺寸规格。主屏 Widget(Home Screen Widgets) 主屏…