Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CVPR 2023|两行代码高效缓解视觉Transformer过拟合,美图&国科大联合提出正则化方法DropKey

CVPR 2023|两行代码高效缓解视觉Transformer过拟合,美图&国科大联合提出正则化方法DropKey

作者头像
机器之心
发布于 2023-04-11 01:11:50
发布于 2023-04-11 01:11:50
4930
举报
文章被收录于专栏:机器之心机器之心

机器之心专栏

机器之心编辑部

美图影像研究院(MT Lab)与中国科学院大学突破性地提出正则化方法 DropKey,用于缓解 Vision Transformer 中的过拟合问题。该方法通过在注意力计算阶段随机 drop 部分 Key 以鼓励网络捕获目标对象的全局信息,从而避免了由过于聚焦局部信息所引发的模型偏置问题,继而提升了基于 Transformer 的视觉类算法的精度。该论文已被计算机视觉三大顶会之一 CVPR 2023 接收。

近期,基于 Transformer 的算法被广泛应用于计算机视觉的各类任务中,但该类算法在训练数据量较小时容易产生过拟合问题。现有 Vision Transformer 通常直接引入 CNN 中常用的 Dropout 算法作为正则化器,其在注意力权重图上进行随机 Drop 并为不同深度的注意力层设置统一的 drop 概率。尽管 Dropout 十分简单,但这种 drop 方式主要面临三个主要问题。

首先,在 softmax 归一化后进行随机 Drop 会打破注意力权重的概率分布并且无法对权重峰值进行惩罚,从而导致模型仍会过拟合于局部特定信息(如图 1)。其次,网络深层中较大的 Drop 概率会导致高层语义信息缺失,而浅层中较小的 drop 概率会导致过拟合于底层细节特征,因此恒定的 drop 概率会导致训练过程的不稳定。最后,CNN 中常用的结构化 drop 方式在 Vision Transformer 上的有效性并不明朗。

图 1 不同正则化器对注意力分布图的影响

美图影像研究院(MT Lab)与中国科学院大学在 CVPR 2023 上发表了一篇文章,提出一种新颖且即插即用的正则化器 DropKey,该正则化器可以有效缓解 Vision Transformer 中的过拟合问题。

论文链接:https://arxiv.org/abs/2208.02646

文章中对以下三个核心问题进行了研究:

第一,在注意力层应该对什么信息执行 Drop 操作?与直接 Drop 注意力权重不同,该方法在计算注意力矩阵之前执行 Drop 操作,并将 Key 作为基础 Drop 单元。该方法在理论上验证了正则化器 DropKey 可以对高注意力区域进行惩罚并将注意力权值分配到其它感兴趣的区域,从而增强模型对全局信息的捕获能力。

第二,如何设置 Drop 概率?与所有层共享同一个 Drop 概率相比,该论文提出了一种新颖的 Drop 概率设置方法,即随着自注意力层的加深而逐渐衰减 Drop 概率值。

第三,是否需要像 CNN 一样进行结构化 Drop 操作?该方法尝试了基于块窗口和交叉窗口的结构化 Drop 方式,并发现这种技巧对于 Vision Transformer 来说并不重要。

背景

Vision Transformer(ViT)是近期计算机视觉模型中的新范式,它被广泛地应用于图像识别图像分割、人体关键点检测和人物互相检测等任务中。具体而言,ViT 将图片分割为固定数量的图像块,将每个图像块都视作一个基本单位,同时引入了多头自注意力机制来提取包含相互关系的特征信息。但现有 ViT 类方法在小数据集上往往会出现过拟合问题,即仅使用目标局部特征来完成指定任务。

为了克服以上问题,该论文提出了一种即插即拔、仅需要两行代码便可实现的正则化器 DropKey 用以缓解 ViT 类方法的过拟合问题。不同于已有的 Dropout,DropKey 将 Key 设置为 drop 对象并从理论和实验上验证了该改变可以对高注意力值部分进行惩罚,同时鼓励模型更多关注与目标有关的其他图像块,有助于捕捉全局鲁棒特征。此外,该论文还提出为不断加深的注意力层设置递减的 drop 概率,这可以避免模型过度拟合低级特征并同时保证有充足的高级特征以进行稳定的训练。此外,该论文还通过实验证明,结构化 drop 方法对 ViT 来说不是必要的。

DropKey

为了探究引发过拟合问题的本质原因,该研究首先将注意力机制形式化为一个简单的优化目标并对其拉格朗日展开形式进行分析。发现当模型在不断地优化时,当前迭代中注意力占比越大的图像块,在下次迭代过程中会倾向于被分配更大的注意力权值。为缓解这一问题,DropKey 通过随机 drop 部分 Key 的方式来隐式地为每个注意力块分配一个自适应算子以约束注意力分布从而使其变得更加平滑。值得注意的是,相对于其他根据特定任务而设计的正则化器,DropKey 无需任何手工设计。由于在训练阶段对 Key 执行随机 drop,这将导致训练和测试阶段的输出期望不一致,因此该方法还提出使用蒙特卡洛方法或微调技巧以对齐输出期望。此外,该方法的实现仅需两行代码,具体如图 2 所示。

图 2 DropKey 实现方法

一般而言,ViT 会叠加多个注意力层以逐步学习高维特征。通常,较浅层会提取低维视觉特征,而深层则旨在提取建模空间上粗糙但复杂的信息。因此,该研究尝试为深层设置较小的 drop 概率以避免丢失目标对象的重要信息。具体而言,DropKey 并不在每一层以固定的概率执行随机 drop,而是随着层数的不断加深而逐渐降低 drop 的概率。此外,该研究还发现这种方法不仅适用于 DropKey,还可以显著提高 Dropout 的性能。

虽然在 CNN 中对结构化 drop 方法已有较为详细的研究,但还没有研究该 drop 方式对 ViT 的性能影响。为探究该策略会不会进一步提升性能,该论文实现了 DropKey 的两种结构化形式,即 DropKey-Block 和 DropKey-Cross。其中,DropKey- Block 通过对以种子点为中心的正方形窗口内连续区域进行 drop,DropKey-Cross 则通过对以种子点为中心的十字形连续区域进行 drop,如图 3 所示。然而,该研究发现结构化 drop 方法并不会带来性能提升。

图 3 DropKey 的结构化实现方法

实验结果

图 4 DropKey 和 Dropout 在 CIFAR10/100 上的性能比较

图 5 DropKey 和 Dropout 在 CIFAR100 上的注意力图可视化效果比较

图 6 不同 drop 概率设置策略的性能比较

图 7 不同输出期望对齐策略的性能比较

图 8 不同结构化 drop 方法的性能比较

图 9 DropKey 和 Dropout 在 ImageNet 上的性能比较

图 10 DropKey 和 Dropout 在 COCO 上的性能比较

图 11 DropKey 和 Dropout 在 HICO-DET 上的性能比较

图 12 DropKey 和 Dropout 在 HICO-DET 上的性能比较

图 13 DropKey 和 Dropout 在 HICO-DET 上的注意力图可视化比较

总结

该论文创新性地提出了一种用于 ViT 的正则化器,用于缓解 ViT 的过拟合问题。与已有的正则化器相比,该方法可以通过简单地将 Key 置为 drop 对象,从而为注意力层提供平滑的注意力分布。另外,该论文还提出了一种新颖的 drop 概率设置策略,成功地在有效缓解过拟合的同时稳定训练过程。最后,该论文还探索了结构化 drop 方式对模型的性能影响。

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ubuntu 18.04 安装后基本配置以及常用软件安装
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
foochane
2019/05/23
2.6K0
ubuntu 18.04 安装后基本配置以及常用软件安装
Ubuntu下如何更快地安装gcc编译器
最近操作系统开始上实验课了,瞟了一眼实验目录,看到了“gcc”的字样,一下子勾起了不好的回忆。记得上学期上计组的时候,曾经尝试在自己电脑的虚拟机上安装 gcc ,然而每次的速度都是 0%,几个小时过去了也一动不动,非常让人崩溃。当时知道是软件源的问题,但是不知脑子抽了还是怎么,换源一直失败。后来决定还是用学校机房的电脑得了,于是就一直没管这个问题。不过现在是特殊时期(网课),所有的实验都得在自己电脑上做,所以还是决定花点时间解决这个问题。
Chor
2020/04/18
1.9K0
树莓派4部署LNMP服务
VPS侦探在刚接触Linux时最怕的就是SSH远程登录Linux VPS编译安装程序时(比如安装lnmp)网络突然断开,或者其他情况导致不得不与远程SSH服务器链接断开,远程执行的命令也被迫停止,只能重新连接,重新运行。相信现在有些VPSer也遇到过这个问题,今天就给VPSer们介绍一款远程会话管理工具 - screen命令。
菜菜有点菜
2022/03/17
1.1K0
树莓派4部署LNMP服务
树莓派设置开机自启动详细_树莓派开机要多久
4、写入成功后,U盘会分为两个,打开boot的盘符,在里面新建一个txt空文件,改名为ssh同时删掉后缀
全栈程序员站长
2022/11/04
1.9K0
ubuntu 10.04.4版本第一次安装注意点和说明
引语:linux现在主要有两个系,一个是Redhat系和debian系,redhat系有redhat,centos等版本操作系统,debian系有ubuntu等版本操作系统;可能大家习惯用了redhat系的linux,如果再用上debian系的ubuntu后会有好多很多的不同和需要注意的地方;
全栈程序员站长
2022/09/07
4220
实战 | ​Docker ubuntu:18.04 镜像制作
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。近年来,Docker方式越来越受欢迎,本文针对Docker ubuntu的镜像操作进行了详细阐述:包括两种方式。
3D视觉工坊
2020/12/11
6K0
【Ubuntu】Win11 VmWare虚拟机安装Ubuntu 22.04.1-server
Vm安装完成之后,我们直接去官方网站下载Ubuntu 22.04.1 的Sever版本,在VM当中我们选择直接创建的新的镜像。
阿东
2023/01/25
1.4K0
【Ubuntu】Win11 VmWare虚拟机安装Ubuntu 22.04.1-server
Ubuntu安装Docker及配置加速器
Ubuntu是Linux发行版中的后起之秀,在学习Docker的过程中,绝大部分还是以Ubuntu系统为主。因此,本文介绍了Ubuntu设置root密码、Ubuntu虚拟机设置网络为桥接模式、Ubuntu安装Docker容器和Docker加速器的配置四部分。
Weiyang
2020/04/20
5.4K0
Ubuntu安装Docker及配置加速器
完美主义者的 Win10 装机指南
电脑用久了之后,会变得很卡,各种文件乱七八糟的占满c盘,都不知道该如何清理。因此,养成良好的使用习惯,定期重装系统,是提升工作效率和乐趣的重要一环。但是电脑上个人文件和微信QQ传送的文件经年累月的累积下来,不好整理也无法丢弃。各种软件破解,开发相关的环境配置,都让你害怕而一再向卡慢的电脑妥协。
光帆
2021/11/24
2.3K0
完美主义者的 Win10 装机指南
Ubuntu18.04安装教程
注:本篇文章以 Ubuntu18.04.1 的安装为例。 准备工作在其他系统上进行,我这里在 Windows10 上进行以下的三步。
全栈程序员站长
2022/08/19
3K0
Ubuntu18.04安装教程
Kali在线安装详细教程【全】
5、客户机操作系统选择【Linux】,版本选择【Debian】,至于64位还是32位我们根据镜像选择对应的版本,当然也可以直接选择64位,毕竟可以向下兼容。其次之所以选的Debian是因为Kali Linux是基于Debian的Linux发行版,所以我们选择Debian,选择完成之后继续点击下一步
IT运维技术圈
2023/02/02
13.5K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
对于很多程序员而言,树莓派如今已经如雷贯耳,对于我一个新入行AI领域研究的新人而言,树莓派激发了我极大的兴趣。最开始知道树莓派,是因为我之前做了一个语音对话机器人,然后在查询有关资料的时候发现有人用树莓派做了一个语音对话机器人,于是乎很惊奇,心中一直想自己动手实验一下。刚好那时候听说树莓派4B新上市,各方面的性能至少提升了3倍以上,好奇心害死猫,所以我决定入坑树莓派了。
全栈程序员站长
2022/07/01
9K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
Ubuntu安装记录
一直以来,都是在虚拟机里面使用Linux系统,但随着使用需求的增加,于是直接在笔记本中安装Ubuntu。基本上就是Windows 10 + Ubuntu18.04LTS双系统共存模式!
Bess Croft
2020/04/03
1.3K0
Ubuntu 18.04 LTS LAMP搭建
首先,我们需要使用sudo apt-get update更新当前系统下apt包管理器的列表。然后使用sudo apt install apache2命令安装Apache软件。
Linux
2019/03/19
1.3K0
windows的Linux子系统安装
需要win系统支持子系统 进入控制面板 -> 程序和功能 -> 启用或关闭windows功能:
R0A1NG
2022/02/18
5.5K0
windows的Linux子系统安装
wsl2相关
3. sudo apt update && sudo apt upgrade -y
用户8126523
2023/08/27
3240
Ubuntu 16.04搭建LAMP开发环境
切换到root用户:su 或 su - 或 su root 切换到普通用户:su 用户名 或 logout
天钧
2019/07/26
1.6K0
Ubuntu 16.04搭建LAMP开发环境
在你的服务器上安装Webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,可以让您用远端电脑上的浏览器,直接修改服务器里的使用者帐号、Apache、DNS、文件分享等设定。
爆栈工程师
2018/07/24
1.6K0
在你的服务器上安装Webmin
Ubuntu16安装Nvidia驱动(GTX1060显卡)
本篇概览 台式机是2018年购买的惠普暗隐精灵3代,显卡GTX1060,本文记录了此机器安装Ubuntu 16.04.7 LTS,再安装Nvidia驱动的过程; 另外还有一些避坑的小结,如果您遇到了类似问题可以拿来参考; 纯净Ubuntu系统 先安装Ubuntu16 LTS桌面版 U盘安装,我这里是惠普台式机,启动时出现惠普LOGO的时候,多次点击F10,进入bios,启动顺序选择U盘启动,然后在页面指导下顺利安装Ubuntu系统 需要注意的地方 网上很多安装文档中提到了要在BIOS设置中关闭secure
程序员欣宸
2021/12/07
8740
Ubuntu16安装Nvidia驱动(GTX1060显卡)
Ubuntu18.04系统安装和必备软件安装指南
这周末比较闲,决定给家里的旧笔记本电脑重装一下系统。因为打算专门用这台电脑写代码(也因为这台电脑的配置过时了,装win10会比较慢),所以装了Ubuntu 18.04。
树枝990
2020/08/19
2.6K0
Ubuntu18.04系统安装和必备软件安装指南
相关推荐
ubuntu 18.04 安装后基本配置以及常用软件安装
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档