当前位置: 首页 > news >正文

【AI】消融实验ablation study

消融实验是在科研论文中常见的一个术语,在深度学习中非常重要,用人话来说:就是消除研究过程的噪声,比如删掉一些模块或者用随机特征去替换训练好的一些特征。
作用:容易解释模型工作原理的因果性;便于理解;验证是否运行原理符合你的假设(移除系统中的特定的部分,来控制变量式的研究这个部分对于系统整体的影响。如果去除这一部分后系统的性能没有太大损失,那么说明这一部分对于整个系统而言并不具有太大的重要性;如果去除之后系统性能明显的下降,则说明这一部分的设计是必不可少的。当然,如果出现了第三种情况,也就是去除之后模型的性能不降反升,那么建议找一下bug或者修改设计);

例如,Girshick 及其同事(2014 年)提出了一个由三个 "模块 "组成的物体检测系统RCNN:第一个模块使用选择性搜索算法(Uijlings 及其同事,2012 年)提出在图像中搜索物体的区域,然后输入一个大型卷积神经网络(有 5 个卷积层和 2 个全连接层)进行特征提取,再输入一组支持向量机进行分类。为了更好地了解该系统,作者进行了一项消融研究,移除系统的不同部分–例如,移除卷积神经网络的一个或两个全连接层,性能损失却出奇地小,这让作者得出以下结论,CNN中最有代表性最显著的部分是卷积层而非连接层。

常见消融实验使用的表格形如:

metric 1…N
A(baseline)
A+B
A+C
A+B+C(final)

metric 1 - N 表示N个用来评价系统性能的指标,原始模型M(只含有A模块)会被首先测试,得到的结果会成为baseline用来对比。接下来,分别测试模型A+B与A+C来分别测试B模块与C模块的单独作用。最后,就要把所有的模块都放在一起,也就是模型A+B+C,来测试最终模型的性能。
这里要注意其中每个其中列出的模块是互相独立的,当模块C是基于模块B时,也就是不存在A+C模型的组合方式时,需要将上表中对应A+C的行删去。

另外,对于无法删除的变量做消融实验,比如超参数,这就需要用控制变量法来保证其他方面不变,测试不同组超参数对系统的影响;超参数调参常用的grid search和random search本质上也是消融实验,它们探究了在只改变一个参数的情况下系统性能的变化从而展示参数对于系统的影响。

当系统中变量很多时需要取舍,合理选择更值得的变量去做消融实验,阐述这个变量的作用和重要性;对于不重要的参数,可以使用常用数值或缩小范围。

Faster RCNN论文可以拿来学习针对变量的消融实验的设计。

相关文章:

  • Zookeeper 集群节点故障剔除、切换、恢复原理
  • CFD笔记
  • 【ai】tx2-nx:搭配torch的torchvision
  • MySQL之复制(七)
  • RPM命令和YUM命令
  • fastadmin多语言切换设置
  • Python里引用了time包后,不能再命名time变量了吗?
  • 基于springboot的人口老龄化社区服务与管理平台源码数据库
  • 1039. 多边形三角剖分的最低得分
  • 鸿蒙开发通信与连接:【@ohos.rpc (RPC通信)】
  • 【Go语言】Gin 框架教程
  • vue嵌套H5到APP,安卓键盘顶起页面内容错乱解决方案
  • shell中的条件判断
  • Kubernetes容器运行时:Containerd vs Docke
  • 电力行业如何利用行列视(RCV)解决数据治理难题?
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Django 博客开发教程 16 - 统计文章阅读量
  • Flannel解读
  • IOS评论框不贴底(ios12新bug)
  • javascript从右向左截取指定位数字符的3种方法
  • Java知识点总结(JavaIO-打印流)
  • Objective-C 中关联引用的概念
  • Solarized Scheme
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Terraform入门 - 1. 安装Terraform
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • Vim 折腾记
  • zookeeper系列(七)实战分布式命名服务
  • 对JS继承的一点思考
  • 和 || 运算
  • 基于axios的vue插件,让http请求更简单
  • 基于web的全景—— Pannellum小试
  • 码农张的Bug人生 - 初来乍到
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 容器服务kubernetes弹性伸缩高级用法
  • 鱼骨图 - 如何绘制?
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 找一份好的前端工作,起点很重要
  • 正则表达式小结
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 湖北分布式智能数据采集方法有哪些?
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ‌JavaScript 数据类型转换
  • #宝哥教你#查看jquery绑定的事件函数
  • $GOPATH/go.mod exists but should not goland
  • (2)nginx 安装、启停
  • (3)nginx 配置(nginx.conf)
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (pycharm)安装python库函数Matplotlib步骤
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (论文阅读40-45)图像描述1