题记:最近在作LLL(Life Long Learning),接触到了SSL(Semi-Supervised Learning)正好读到了谷歌今年的论文,也是比较有点开创性的,浅显易懂,对比实验丰富,很是适合缺少基础科学常识和刚刚读研不会写论文的同窗读一读,举一反三嘛。git
这篇论文思路等等也很是适合刚刚开始作学术时候写文论参考使用,你看,它有创造性(半监督学习用在了目标检测上),理论基础扎实(体如今专业词汇丰富,也介绍了其余相关论文,作个小综述论文都够了),工做量够够的(大量的对比试验),实验效果好(map对比有所提高),与此同时他还不是特别大的改变(对loss公式的修改很是简单易懂)。笔者认为,若是一我的在读研的时候发这样一篇论文足以代表学习的很扎实。github
该笔记适合:但愿对SSL有所理解的同窗、刚刚读研且不知如何作科研的同窗。网络
code:https://github.com/google-research/ssl_detectiongoogle
---------------------------------------------------------------------------------------spa
介绍:code
该文章介绍了一种半监督学习策略(包括模型+数据加强方法),开创性的在目标检测领域使用半监督学习(以前都是在分类领域使用的),提出了STAC(自训练和一致正则化驱动的加强策略)(这破名字太难理解了,简单来讲就是用伪标签作自训练,训练中加入了一致正则化为原理的数据加强,不少小伙伴可能不理解什么是一致正则化,通俗点就是说图像和图像+干扰应该在网络的输出结果是相同的,即抗噪声干扰的能力,也能够理解为鲁棒性,那么这个一致正则化很厉害吗?反正笔者以为数据加强不就是干这个用的吗,就比如为了摄取能量的进食行为同样的平凡,没什么高大上,只不过有人没接触过这俩词语罢了。那么这个STAC就能够理解为自训练和数据加强了,说明了什么?说明水论文要会高大上的词汇量,但这个词汇量也不只仅是装13用的,还向审稿人显示了你扎实的基础理论,若是审稿人不懂的话就是不明觉厉。)ip
那STAC具体的模型是啥呢?在这里,这篇论文介绍的STAC是一种方法,pipeline,不是具体的某个模型,文章里面使用的是Faster-RCNN做为一个具备表明性的模型来展现STAC。ssl
STAC 流程:get
一、用已有的标签图像训练一个教师模型(teacher model)用来生成伪标签(有点知识蒸馏那味了,这个模型是Faster-RCNN)。
二、用训练好的模型推理剩余的未标注的图像,生成伪标签。
三、对未标注的数据进行加强,同步伪标签(图像旋转的时候也要将标签的坐标同步呀,否则不都错位了吗)。
四、使用半监督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)使用教师模型训练学生模型,训练学生模型的时候使用双Loss,即总Loss = 标注数据的Loss+伪标签数据的Loss,其中比重为1:2(论文用实验作了一个参数寻优)
2)就一个问题,标注的数据理论上来讲是少数,那未标注的是多数,看论文里面1:10比较好,那问题来了,训练是一帮一(每次各推理一个batch再更新一次权重),伪标签数据训练10个epoch那标签数据就是100个epoch。介标注数据不就过拟合了嘛?做者说:我没考虑,这是个问题,有待解决。
二、数据加强
1)论文里面说,这是很重要的,好吧,旋转、跳跃,我不停歇,模糊了眼神。反正就是色彩转换、图像总体或者bbox旋转再加上随机的灰框填充。
STAC最后结论:
一、效果确定是比不加伪标签的数据训练结果好,最多5个点的提高
二、还单独验证数据加强香不香,那是真香。
三、文章在原有loss基础上加了两个超参,用实验拟合超参曲线,求得局部最优解
文章结论:
读了这个文章,分析分析我总结的发论文的几个点:
一、基础扎实,主要体如今相关领域涉猎足够普遍,领域内进展清晰。数学固然也是很重要的,但这篇文章数学,也就那样吧,没什么特别大的改动。
二、实验丰富,读文章就知道做者作了至关详实的实验,得出的结论很具备参考意义。
三、有个小小的创新点,你说文章提出的自学习那些东西之前有没有?有的,它这是攒卜攒卜,整一块儿了。你说数据加强算创新吗?说算的确定是想发论文想疯了。但两个结合起来,马马虎虎也能算个创新。这其实对不少刚读研的同窗来讲挺重要的,你导师最近几年蹭热度带你作CS,组内无底蕴要怎么搞研究?多读读论文,不少人都是在学习过程当中萌生创新点,有了点就作作看,行就完善实验。