【论文解读】【半监督学习】【Google教你水论文】A Simple Semi-Supervised Learning Framework for Object Detection
题记:最近在做LLL(Life Long Learning),接触到了SSL(Semi-Supervised Learning)正好读到了谷歌今年的论文,也是比较有点开创性的,浅显易懂,对比实验丰富,非常适合缺乏基础科学常识和刚刚读研不会写论文的同学读一读,触类旁通嘛。
这篇论文思路等等也非常适合刚刚开始做学术时候写文论参考使用,你看,它有创造性(半监督学习用在了目标检测上),理论基础扎实(体现在专业词汇丰富,也介绍了其他相关论文,做个小综述论文都够了),工作量够够的(大量的对比试验),实验效果好(map对比有所提升),与此同时他还不是特别大的改变(对loss公式的修改非常简单易懂)。笔者认为,如果一个人在读研的时候发这样一篇论文足以表明学习的很扎实。
该笔记适合:希望对SSL有所理解的同学、刚刚读研且不知如何做科研的同学。
arxiv:
code:https://github.com/google-research/ssl_detection
---------------------------------------------------------------------------------------
介绍:
该文章介绍了一种半监督学习策略(包括模型+数据增强方法),开创性的在目标检测领域使用半监督学习(之前都是在分类领域使用的),提出了STAC(自训练和一致正则化驱动的增强策略)(这破名字太难理解了,简单来说就是用伪标签做自训练,训练中加入了一致正则化为原理的数据增强,很多小伙伴可能不理解什么是一致正则化,通俗点就是说图像和图像+干扰应该在网络的输出结果是相同的,即抗噪声干扰的能力,也可以理解为鲁棒性,那么这个一致正则化很厉害吗?反正笔者觉得数据增强不就是干这个用的吗,就好比为了摄取能量的进食行为一样的平凡,没什么高大上,只不过有人没接触过这俩词语罢了。那么这个STAC就可以理解为自训练和数据增强了,说明了什么?说明水论文要会高大上的词汇量,但这个词汇量也不仅仅是装13用的,还向审稿人显示了你扎实的基础理论,如果审稿人不懂的话就是不明觉厉。)
那STAC具体的模型是啥呢?在这里,这篇论文介绍的STAC是一种方法,pipeline,不是具体的某个模型,文章里面使用的是Faster-RCNN作为一个具有代表性的模型来展示STAC。
STAC 流程:
1、用已有的标签图像训练一个教师模型(teacher model)用来生成伪标签(有点知识蒸馏那味了,这个模型是Faster-RCNN)。
2、用训练好的模型推理剩余的未标注的图像,生成伪标签。
3、对未标注的数据进行增强,同步伪标签(图像旋转的时候也要将标签的坐标同步呀,不然不都错位了吗)。
4、使用半监督Loss来训练检测器(半监督loss在后面会介绍,就是加两个超参的faster-rcnn本身的loss而已,没啥大区别)(原文中Compute unsupervised loss and supervised loss to train a detector.笔者认为,这个detector就不是之前的教师模型了,从新训练的,这个在GitHub的https://github.com/google-research/ssl_detection/issues/7里面也得到了证明)
STAC两大法宝:
1、自训练
1)使用教师模型训练学生模型,训练学生模型的时候使用双Loss,即总Loss = 标注数据的Loss+伪标签数据的Loss,其中比重为1:2(论文用实验做了一个参数寻优)
2)就一个问题,标注的数据理论上来说是少数,那未标注的是多数,看论文里面1:10比较好,那问题来了,训练是一帮一(每次各推理一个batch再更新一次权重),伪标签数据训练10个epoch那标签数据就是100个epoch。介标注数据不就过拟合了嘛?作者说:我没考虑,这是个问题,有待解决。
2、数据增强
1)论文里面说,这是很重要的,好吧,旋转、跳跃,我不停歇,模糊了眼神。反正就是色彩转换、图像整体或者bbox旋转再加上随机的灰框填充。
STAC最后结论:
1、效果肯定是比不加伪标签的数据训练结果好,最多5个点的提升
2、还单独验证数据增强香不香,那是真香。
3、文章在原有loss基础上加了两个超参,用实验拟合超参曲线,求得局部最优解
文章结论:
读了这个文章,分析分析我总结的发论文的几个点:
1、基础扎实,主要体现在相关领域涉猎足够广泛,领域内进展清晰。数学当然也是很重要的,但这篇文章数学,也就那样吧,没什么特别大的改动。
2、实验丰富,读文章就知道作者做了相当详实的实验,得出的结论很具有参考意义。
3、有个小小的创新点,你说文章提出的自学习那些东西以前有没有?有的,它这是攒卜攒卜,整一起了。你说数据增强算创新吗?说算的肯定是想发论文想疯了。但两个结合起来,马马虎虎也能算个创新。这其实对很多刚读研的同学来说挺重要的,你导师最近几年蹭热度带你做CS,组内无底蕴要怎么搞研究?多读读论文,很多人都是在学习过程中萌生创新点,有了点就做做看,行就完善实验。
【论文解读】【半监督学习】【Google教你水论文】A Simple Semi-Supervised Learning Framework for Object Detection的更多相关文章
- 论文解读(SUBG-CON)《Sub-graph Contrast for Scalable Self-Supervised Graph Representation Learning》
论文信息 论文标题:Sub-graph Contrast for Scalable Self-Supervised Graph Representation Learning论文作者:Yizhu Ji ...
- 论文学习-深度学习目标检测2014至201901综述-Deep Learning for Generic Object Detection A Survey
目录 写在前面 目标检测任务与挑战 目标检测方法汇总 基础子问题 基于DCNN的特征表示 主干网络(network backbone) Methods For Improving Object Rep ...
- [论文解读] 阿里DIEN整体代码结构
[论文解读] 阿里DIEN整体代码结构 目录 [论文解读] 阿里DIEN整体代码结构 0x00 摘要 0x01 文件简介 0x02 总体架构 0x03 总体代码 0x04 模型基类 4.1 基本逻辑 ...
- AI之强化学习、无监督学习、半监督学习和对抗学习
1.强化学习 @ 目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...
- 自监督学习(Self-Supervised Learning)多篇论文解读(下)
自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...
- 自监督学习(Self-Supervised Learning)多篇论文解读(上)
自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...
- 论文解读(SR-GNN)《Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data》
论文信息 论文标题:Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data论文作者:Qi Zhu, ...
- 论文解读(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》
论文信息 论文标题:Rethinking the Setting of Semi-supervised Learning on Graphs论文作者:Ziang Li, Ming Ding, Weik ...
- sklearn半监督学习
标签: 半监督学习 作者:炼己者 欢迎大家访问 我的简书 以及 我的博客 本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! --- 摘要:半监督学习 ...
随机推荐
- Vulnhub DC3
靶机简介 C-3是另一个专门建造的易受攻击的实验室,目的是获得渗透测试领域的经验.与以前的DC版本一样,这个版本是为初学者设计的,尽管这次只有一个标志,一个入口点,根本没有线索.Linux技能和熟悉L ...
- while语句的一个使用技巧
作用类似于可以输入一个不定量长度的数组,但是严格来说 不可能出现任意长度. 内存是有限的 超出一定长度后,不可能存的下,虽然这个值可能是超级大的,但总有限度. 这里我们利用while(cin>& ...
- 4G DTU模块的功能和作用是什么
4G DTU模块我们可以简单将它理解为使用4G无线通信网络来进行远距离无线传送的终端设备.4G DTU模块基于4G方式进行远距离的数据传输,是专门用于将串口数据转换为IP数据或将IP数据转换为串口数据 ...
- PLC模拟量采集模块在工控领域的应用
在工业现场中,往往需要对温度.电流.电压等模拟量进行控制采集,这可以使用PLC对这些数据进行采集,但是如今生产各种PLC模拟量采集模块的厂家非常多,不同类型的PLC都是有自己专属的模拟量采集模块的,不 ...
- 水题挑战1:NOIP 2013 选择客栈
丽江河边有\(n\) 家很有特色的客栈,客栈按照其位置顺序从 \(1\) 到 \(n\) 编号.每家客栈都按照某一种色调进行装饰(总共 \(k\) 种,用整数 \(0 \sim k-1\) 表示),且 ...
- Qt混合Python开发技术:Python介绍、混合过程和Demo
前言 Qt中混合Python开发,可调用Python命令与脚本. Python Python是一种跨平台的计算机程序设计语言. 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语 ...
- axios网络封装模块
功能特点 在浏览器中发送XMLHttpRequests请求 在node.js总发送http请求 支持Promise API 拦截请求和相应 转换请求和响应数据 axios请求方式 支持多种请求方式 a ...
- 利用远程桌面管理winserver集群
在适用mstsc连接winserver服务器的场景下(别问为什么不VNC),可以利用rdp文件等方式减轻连接的操作负担 利用.rdp文件免密登录 rdp文件本质上是一个mstsc的选择,或者不如说ms ...
- 3.4 spring5源码系列--循环依赖的设计思想
前面已经写了关于三篇循环依赖的文章, 这是一个总结篇 第一篇: 3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖 第二篇: 3.2spring源码系列----循环依赖源 ...
- 当年使用dpdk干的事
mark一下 晚点上传 先不上传 ....0727