论文阅读:基于谱分析的全新早停策略

news2024/10/6 4:01:22

来自JMLR的一篇论文,https://www.jmlr.org/papers/volume24/21-1441/21-1441.pdf

这篇文章试图通过分析模型权重矩阵的频谱来解释模型,并在此基础上提出了一种用于早停的频谱标准。

1,分类难度对权重矩阵谱的影响

1.1 相关研究

在最近针对深度模型的可解释性研究中,出现了一种流行的方法,即对DNNs的各种大型特征随机矩阵进行谱分析,所谓大型特征随机矩阵,就是例如反向传播算法的Hessian矩阵、不同层之间的权重矩阵以及输出特征的协方差矩阵等。这样的谱分析有助于深入了解DNNs的行为。

1.2  权重矩阵的谱的类型

权重矩阵的谱在训练的最后阶段被分类为三种类型:轻尾(LT)、块过渡期(BT)和重尾(HT)。

重尾(Heavy Tails)、轻尾(Light Tails)和块过渡(Bulk Transition)是指权重矩阵或Hessian矩阵的特征值分布的不同类型。区别如下:

1)重尾分布指的是在特征值分布的尾部存在较大概率密度,即存在一些非常大的特征值。在深度学习中,重尾可能表明权重矩阵中存在高度相关的条目,这可能导致过拟合或模型的泛化能力下降。

2)轻尾分布的特征是特征值分布的尾部概率密度较低,即特征值普遍较小,没有特别大的异常值。在深度学习中,轻尾可能表示权重矩阵的正则化较好,有助于提高模型的泛化能力。

3)块过渡是一种介于重尾和轻尾之间的状态,特征值分布的主体(块)接近Marcenko-Pastur分布,但可能存在一些异常的“尖峰”或“离群点”。这种状态可能表明模型正在从过拟合状态(重尾)过渡到更好的泛化状态(轻尾),或者是模型训练过程中的一个中间阶段。

1.3 如何计算权重矩阵的谱

对权重矩阵计算其Gram矩阵,接着求解Gram矩阵的特征值。接着将计算出的特征值按降序排列,以便于分析最大的特征值。最后,构建经验谱分布,这是一个经验分布函数,用于估计权重矩阵特征值的分布。ESD可以通过直方图或核密度估计来实现。

其中I是指示函数,当括号内的表达式为真时,I的值为1;否则为0。

1.4作者的发现

作者发现分类难度是影响权重矩阵谱中出现HT的一个重要因素。分类难度越高,HT出现的几率越大。在合成数据集和真实数据集上进行的实验都支持这一发现。特别是,降低数据集的信噪比或在高斯数据实验中增加类别数量K,都会增加分类难度,并在训练结束时产生重尾。在真实数据实验中,由于CIFAR10具有更复杂的特征和更高的分类难度,因此在CIFAR10的实验中出现重尾的情况比在MNIST的实验中更多。

2,基于权重矩阵谱的早停准则

2.1 内容

本文提出的基于谱的早停策略通过分析深度神经网络(DNN)权重矩阵的谱特性来确定训练过程中的停止时机。

步骤:

1)权重矩阵的谱分析:这涉及到计算权重矩阵的非零特征值.

2)特征值排序与检测:将这些特征值按降序排列,并使用算法自动检测特征值中的“尖峰”(spikes),即那些远离其他特征值的特征值。

3)计算谱准则值也就是计算权重矩阵的谱与Marcenko-Pastur (MP) 定律的偏差。这涉及到构造一个直方图估计器来近似权重矩阵特征值的联合密度,并与MP定律的密度函数进行比较。

距离的定义是这样的

其中P_{M}(x)是ESD的直方图估计,公式如下

其中,,对于一个n×p的随机矩阵,其中n/p→c(c是一个正常数)。\sigma ^{2}是权重矩阵元素的方差。参数 M 通常表示直方图估计中使用的“bins”或“binsize”的数量,用于将数据分成多个区间以估计概率密度函数,本文设置为2[n^{\frac{1}{3}}]。B(x) 表示的是一个函数,它将一个实数 x 映射到包含 x 的“bin”或区间。在频谱分析中,B(x)可以用于计算每个区间内的点的数量,从而估计概率密度函数或特征值分布。

而后一项是MP分布的密度函数,公式如下:

MP分布可用于描述大随机矩阵特征值的分布。MP定律与DNN的泛化能力有关。接近MP分布的谱可能意味着模型具有较好的泛化能力,而偏离MP分布可能指示过拟合或其他问题。

4)设定阈值:该值基于L1距离

5)监控训练过程:在训练过程中,对于每个训练周期,计算权重矩阵的谱准则值

6)判断停止时机:如果在连续的几个训练周期中,谱准则值超过了阈值,则认为达到早停条件。

2.2 相较于传统早停策略的优势

1)不需要测试集:传统早停依赖于对模型在测试集上的准确率或者loss的测量,而本文提出的基于谱分析的早停策略完全不需要测试集。只要分析训练集上的权重矩阵的谱就可以了

2)适应性强:因为是依靠权重矩阵的谱分析而不是测试集,所以数据类型或者数据集组成结构等影响较小

3)鲁棒性更强:实验证明,即使训练准确率还在上升,本方法依然能实现早停。

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

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

相关文章

SN74HC14+陶瓷振子做振荡器的试验初步

本想试验一下465khz用SN74HC14做振荡器,实验了很多次,无法起振。 用1M,4M的也无法起振,用到10Mhz时,能起振,用小频谱仪看,谐波相当丰富,从10M到300Mhz,当然我是通过实验在…

python14 字典类型

字典类型 键值对方式,可变数据类型,所以有增删改功能 声明方式1 {} 大括号,示例 d {key1 : value1, key2 : value2, key3 : value3 ....} 声明方式2 使用内置函数 dict() 创建1)通过映射函数创建字典zip(list1,list2) 继承了序列的所有操作 …

第零篇——数学到底应该怎么学?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 宏观讲解数学定位,数学学习方式方法,再次详细学习…

C# OpenCV 部署RecRecNet广角图像畸变矫正

C# OpenCV 部署RecRecNet广角图像畸变矫正 目录 说明 效果 模型信息 项目 代码 下载 说明 ICCV2023 - RecRecNet: Rectangling Rectified Wide-Angle Images by Thin-Plate Spline Model and DoF-based Curriculum Learning 参考: https://github.com/Kang…

Vue52-scoped样式

一、scoped样式的作用 1-1、scoped样式的作用 vue中组件的样式都是汇总到一起的。容易出现一个问题:类名冲突。 示例: school和student组件的类名都叫demo,则student的样式将覆盖school的样式,因为App.vue中,先引入的…

Spring事务管理、SpringAop

目录 ​编辑 Spring事务管理 注解:Transactional rollbackFor 事务属性-传播行为 propagation SpringAOP AOP核心概念 通知类型 通知顺序 切入点表达式 切入点表达式-execution 切入点表达式-annotation 连接点 ​编辑 将案例中 增、删、改 相关接口的操作日志记…

unity跑酷游戏(源码)

包括:触发机关, 优化 fog的调试 效果 碰到障碍物游戏时间暂停(挂载到障碍物上) 上面需要有碰撞体 游戏物体上需要有标签 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Barri…

【仿真建模-anylogic】FlowchartBlock原理解析

Author:赵志乾 Date:2024-06-17 Declaration:All Right Reserved!!! 1. 类图 2. 原理解析 2.1 核心函数 函数功能FlowchartBlock(Engine engine ,Agent owner, AgentList population )构造函数&#xff…

C语言王国——深入自定义类型(结构体)

目录 一、引言 二、结构体 1. 结构体类型的声明 2. 结构体变量的创建和初始化 2.1 创建 2.2 初始化 2.3 typedef 2.4 特殊声明 2.5 自引用 3. 结构成员访问操作符 4. 结构体内存对齐 4.1 对齐规则 4.2 offsetof 4.3 为什么存在内存对齐 5. 结构体传参 6. 结构体实现…

仅靠独立网站也能赚到100万,真的太牛了

你听说过 Photopea 吗?这是一个免费的类似 Photoshop 的图像编辑器。 这个项目: 每月1300万访问量每月150万用户使用小时每月10万美元的广告收入 Photopea 项目的天才创造者是 Ivan Kutskir。 令人惊讶的是,他独自处理了每日50万用户&…

数组趣味玩法:在Java SE中尝试创新玩法

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

C++ | Leetcode C++题解之第160题相交链表

题目: 题解: class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {if (headA nullptr || headB nullptr) {return nullptr;}ListNode *pA headA, *pB headB;while (pA ! pB) {pA pA nullptr ? headB : p…

【Vue3】插槽的使用及其分类

历史小剧场 后来我才明白,造反的宋江,和招安的宋江,始终是同一个人。 为什么要造反? 造反,就是为了招安。 ----《明朝那些事儿》 概念 在日常的项目开发中,当我们在编写一个完整的组件时,不可避…

款基于SpringBoot+Vue+ElementUI技术栈开发的自定义表单工具(已开源)

TDuck填鸭表单是一个开源的问卷调查系统,一款基于SpringBootVueElementUI技术栈开发的自定义表单工具,它不仅支持问卷调查,还能进行数据收集。TDuck团队经过两年的优化,使得社区版功能趋于稳定。2023年5月,团队推出了可…

flstudio怎么调中文

FL Studio设置中文的步骤如下: 打开FL Studio:首先,需要打开FL Studio编曲软件。 进入常规设置:在软件顶部菜单栏中,选择“OPTIONS”,然后点击“General setting”,进入常规设置窗口。 切换语言…

Centos部署openGauss6.0创新版本,丝滑的体验

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…

Pytest框架中fixture功能详解

文章目录 1 定义 Fixture函数 2 Fixture 的函数参数 2.1 传入其他fixture函数作为参数 2.2 传入request对象参数 示例1:访问fixture的调用者 示例2:使用fixture的参数 3 Fixture 的作用域参数scope 3.1 scopeclass场景 3.2 scopesession场景 4…

ImageNet-1k 测试集 两大坑

1、官方网站提交test set标签时,千万不能提交zip文件,即便明文说可以 https://image-net.org/challenges/LSVRC/eval_server.php 不然就会浪费一次提交机会,直接提交submission.txt就可以,注意每排5个预测结果,用于计…

Excel报表

(Apache POI) 入门案例 P164 使用POI需要导入下面2个坐标&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId> </dependency> <dependency><groupId>org.apache.poi</groupId>&…

[个人感悟] 缓存应该考察哪些问题?

前言 缓存, 根据冯诺依曼计算机模型, 无非是为了更高效的交互, 使用内存IO替换本地磁盘IO. 又因为内存的稀缺性, 其必然存储的是热点数据, 且较小的数据. [虽然直至今日, 已有使用缓存作为数据库的使用, 但是与磁盘IO相比, 其价格仍是数倍之多.] 当涉及缓存问题时, 又分为本地…