详解下一代神经网络-无监督对比学习框架SimCLR

 

背景

 

今天介绍下SimCLR,也是Hinton老爷子在今年提出的工作。首先介绍下为什么下一代神经网络需要无监督对比学习。目前整个人工智能行业的落地,其实都依赖于监督学习模式,无论是OCR、ASR、TTS、ImageDetection,如果没有大量的标注,是很难训练出商业化程度的模型的。这个模式需要被打破,因为世界上存在太多的未知场景,完全依赖人肉标注是不行的。

所以未来无监督学习大势所趋。其实在这方面之前已经有了一些工作,比如Bert模型,就可以基于大量的unlabeled数据训练,然后在小数据集上Fintune来取得效果。类似Bert这一类的训练模式叫做自监督学习。这种模式在NLP领域会有比较好的效果,但是在图像领域效果不明显,因为图像的数据表示会比语意复杂得多。

举个简单例子,“喜欢_ _ _ _的人都会关注凡人机器学习”,这句话虽然空了4个字,但是根据上下文不难猜出这4个字是“机器学习”。所以在NLP领域,自监督是比较好实现的。但是在图像方面,假设戴了墨镜,你能根据一个人的鼻子、嘴和耳朵推测出这个人墨镜后面的样子么?所以图像领域的无监督学习要难的多。

dbe40fb7605f54d39f86754e4ef74f40.jpg

SimCLR基本原理

 

 

SimCLR使用无监督对比学习模式在图像领域取得了突破性的成果,可以看下在ImageNet数据集的表现。

 

那SimCLR究竟是怎么实现的呢,我们分步骤介绍下,看下图:
屏幕快照 2020-08-09 下午7.46.01.png

 

第一步:Augmentation

无监督对比学习的本质其实是让模型通过不同的类别数据的对比学习出相同类别的属性。所以为了增强同一类别的数据的特征表现,需要做Augmentation,包含数据裁剪、翻转、颜色转换等。

第二步:CNN

可以选用CNN的Resnet网络,做数据的向量表示。Resnet也是最终的分类器模型。

第三步:MLP

通过MLP,也就是全连接层,可以学习出数据的非线性信息,是对上一步的一个增强。通过这一步的学习就可以得出同一类别数据的共同信息特点。如下图所示:

屏幕快照 2020-08-09 下午7.55.44.png

第四步:Optimization

在Optimization这一步,Lossfunction的求法就是要让相同类别的数据对比的Loss最小。比如同是来源于“猫”的图片,他们之间的Loss需要很小,这个Loss的计算需要通过L(猫,猫)去除以L(猫,猫)+L(猫,其它类别)的和。

 

最终通过Loss去优化CNN和MLP,CNN的输出结果就可以作为最终的模型输出结果了。

参考文献:

[1]https://ai.googleblog.com/2020/04/advancing-self-supervised-and-semi.html

[2]https://blog.csdn.net/u011984148/article/details/106233313/

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页