作者丨金天@知乎(已授权)
来源丨
编辑丨极市平台
极市导读
本文是作者针对论文 DINO 所进行的一些思考。首先对近期的某些非监督工作进行了回顾,接着切入到 DINO 这一内容,详细地介绍了该工作的原理以及它所引发的关于 CV 的新方向。
我有很长时间没有更新文章了,因为工作太忙,所以没有时间去思考。今天我记录一篇关于最新论文 dino 的思考。实际上,这依然是我们体系中的一篇论文,只是这一篇看起来效果特别好。和往常一样,我不会对论文进行文字翻译,只会写下我的思考和总结,甚至包括一些可能不正确的批判,希望能起到抛砖引玉的作用,欢迎大家一起礼貌地交流和探讨。
对应的代码链接:
想写这篇论文的原因是题目为:in Self- 。通常我看到标题包含的论文不一定会感兴趣,但看到 Self- () + 时,我一定会感兴趣。个人觉得,非监督学习会是未来的一个趋势,尤其是 self-这种特定方式,而目前看来具有可行性的途径可能只有通过对这个方向的研究,未来才有可能建造出更强大的 AI 系统,甚至是 GAI,这绝不是仅仅刷刷榜单那么简单。所以今天要好好聊聊。
近期一些非监督工作回顾
我的博客一如既往地产出很少。为了体现质量,我会在每一篇中穿插很多其他内容,通过穿针引线的方式,将点连起来,再将线聚成面,让每一位读者都能有全局把握。说到非监督,近期有几篇不得不提的工作,比如:
熟悉的朋友或许一眼便能知晓,我所要讲的实际上就是 Moco 系列。这三篇论文实际上均出自何凯明之手。我们首先来看一下这三篇论文的时间线,第一篇论文发表之时,NLP 领域正十分火热,将其应用于非监督表征学习的任务上,从而诞生了 BERT、GPT 这类在 NLP 各个任务中极具影响力的模型。第二篇论文是与业内新的 SOTA 相对标的。最后一篇自然就是今年非常热门的一个热点:将其用于非监督任务上。对于一些具有综述性质的文章,可以查看我之前所写的内容。
金天:万字长文盘点2021年大热的(ViT)
为什么我回过头去看自己写的文章时,总觉得写得太浅显了呢?这样会让有学问的人见笑。后面如果有机会,我会制作一些视频,给大家详细地讲解。
首先我们来解答这么几个问题:
相信这是读者较为关心的问题。在进行陈述之前,先回到本文的议题,即我们要聊 dino。那么这个玩意与 dino 是如何联系起来的呢?先不要着急,我们先来回答上面的三个问题。
moco 是通过自监督的方式来学习诸如分类等任务。这种学习方式可以进一步迁移到检测分割等任务上。实验效果表明,它微调之后的效果比监督学习的效果还好,从而完美地弥补了监督学习与非监督学习之间的鸿沟。
我们暂不深入探究一些实现的细节,先贴上一篇论文里的伪代码,给大家讲讲具体的做法,关于细节暂且不做深入的探讨。
这个伪代码的做法维持着一个队列。在这个队列中,存储的是模型输出的键,即 key。接着,我们有另一组的键和查询这两个变量,通过对比 loss 来更新队列里的 key,同时会吐出最早的那个 key。通过这些操作,能让队列里的 key 变得更独特。并且,当有新的样本数据到来时,我们会进行更新,直到队列包含所有的特征,且每个特征都不同,以此来实现非监督任务。
这么做有一个优势,即队列的长度是可控的。这意味着我能够通过增大字典的大小,以提高分类的精准度,从而提升性能。就如同用反向传播的方式去做 KNN 一样,你可以通过控制 K 的大小来控制聚类效果。
如果知道通过修改一定能让这一套起作用,并且知道对应的公式推导,那么大家可以仔细阅读原来的那篇论文,因为论文链接都在引用里面。至于如何使用对比的 loss ,大家可以仔细阅读原来的那篇论文。
第二篇没什么可讲的。为了让效果更好,我们来看看增加了什么。简单来讲,就是借用了其中的一些设计,将其应用到了 Moco 的体系内,并且超越了它,带有一点借力使力的意味。
借用的的包括:
好吧,这篇感觉比较水
这最近的这篇实际上是把非监督应用到了或者说把某些东西拿过来堆到了非监督的任务上。那么除了这些之外还有哪些改变呢?还是说依然是 moco 那一套?我即便不看论文也认为不可能是之前那一套,原因是什么呢?因为这里有天然的队列啊!并且这就是你的 key!所以这篇文章的出现其实是很自然合理的。
论文中对他们使用 ViT 作为非监督学习骨干网络时遇到的一个问题进行了一些描述。随着训练的推进,这个问题会变得不稳定。他们根本不知道其原因是什么,所以通过控制变量的方法去尝试寻找这个原因。实验中发现了一些有趣的结论。
从实验中能够看出,当增大或者 lr 增大时,kNN 会逐渐出现 dip 的情况,并且 dip 的程度在逐渐增加,呈现出周期性出现的态势。当使用 LAMB 时,随着 lr 的增加,kNN 虽然依旧是平滑的曲线,但中间部分会出现衰退。
文中也提到了如何让训练变得更加稳定的一些.
通过 free 投影层,也就是采用固定的随机进行投影,这部分参数不参与学习,并且实现起来较为简单,可参考 moco 的代码来了解其具体实现方式。
图中可以看到,使用随机投影的方式貌似确实解决了问题.
最后的效果也是超越了之前所有的非监督架构:
这是 moco 截至目前的故事,然而这与我要讲述的 DINO 实际上并非同一事物。因为 DINO 将要解决的问题是:
非监督学习除了能进行分类之外,能解决分割问题吗?也就是说,它在没有任何监督信息的情况下,能够知道物体之间的相互关系吗?
DINO可能实现了更加阶层的视觉理解
说实话,我理解了 ViT 里面的具体实现后,突然有了一种很亲切的感觉。就像看到一位少年,乍一看,骨骼清奇,觉得他未来一定会有大出息。现在要做的就是好好投资它。事实上,给我的就是这种感觉。而在深入理解 DINO 之后,我仿佛进一步发现了它的潜能,所以就多写点东西与大家分享。
这些年来,无论是 CNN 大力发展,还是其他方面大力发展,大家实际上都是在已有的监督任务之上,让模型去对所看到的数据进行建模。这非常依赖于对数据的定义,这与 NLP 有很大不同。比如在词嵌入方面,即便不告诉模型任务信息,它也能知道“刘德华”是人名,甚至能告知其他与该名词相关的名词。这是很早之前就有的效果,现在可以明确告知,他们所做的模型不仅能理解词,还能告知每个词之间的相互关系,甚至能将自然语言的数据库检索问题写成 SQL 语句。这难道不厉害吗?有甚者,将 GPT3 的模型与图像领域相连接,从而实现了 DALL-E。当告知它关于绿色的钟表的信息时,它能够生成绿色的钟表。显然,它获取到了更高级的特征。
那么 有没有可能做到这一点呢?
今天要讲的这个 dino 确实做到了。需要理解两件事,实现分割和非监督的实现分割是不同的概念。当然,还有一些其他方法实现了非监督的语义分割,这并不困难。但将两者结合起来做的,应该 DINO 是第一个。
这是DINO的效果.
需要注意的是,这个是 dino,它没有任何语义方面的内容,也没有任何类别能表明它是一只猴子,然而它能够将所有注意力都集中学习在这上面。
我这么说的话,你或许会有这样的想法:就只是这样吗?兄弟,你可别太单纯啦,这可是游戏啊!这就好比给你一张图片,没有任何额外的东西,它却能自动帮你把这些学会!再认真想一想,这是不是和自然语言处理(NLP)里面的情况很相似呢?再想一想,我们现在最不缺的到底是什么呢?原始数据是最不缺的,每天互联网都会产生大量的图片和视频。如果把这些如此厉害的东西全部丢进去,你觉得会产出一个怎样的 AI 呢?一个超大版本的???
不,不是这样的。远非如此简单。这便是我看好这个方向的缘由,也是我撰写这篇解析的缘由。当然,目前我们尚不能完全做到,但“self-”已经足够了!
准备好让 AI 或者 FAIR 使出更大的招数吧,这或许会让游戏规则发生改变。
这个能做些什么呢?利用 Self-的方法,由 DINO 学出来的模型能够直接进行分类。简单来讲,当你把要分类的图片交给它时,它可以自动去挖掘每幅图片的不同特征,并且能够自动给你进行归类,想要分成几类就可以分成几类,这才是未来的 AI 。
以前的话,我或许会觉得这种论断有些哗众取宠。然而,DINO 所展现出的,一方面是分类的效果,另一方面还有网络学出的极为清晰的热力图和注意力图。这些都能够证明,DINO 所能做的不只是分类,还包括分割和检测。在未来的 CV 领域,众多任务都有很大的发展潜力,且都可以采用非监督的方式。
下面是DINO系统的一个简单原理.
DINO 的原理较为简单。因为它是进行非监督学习,所以在学习过程中不需要某些东西。为了实现这个非监督的目的,就需要……
img
从基础方面来看,有一个学习网络和一个教学网络。输入的实际上是同一张图片。然而,这两个网络的结构是一致的,不同之处仅仅在于参数。网络的梯度会传递给学生网络,并且网络的参数会随着学生网络的参数更新而进行更新。
我们来看一下DINO网络的流程图:
img
这个流程图简单易懂,老少都适宜。它和我上面所说的步骤以及那张流程图较为相似。
我们来看一下DINO的效果到底咋样:
img
这一列是所有方法的对比。在固定类别输出的情况下,可以看到在使用 DeiT 的架构基础下,DINO 的方法精度最高,其精度远远超过了 RN50,也就是传统的 CNN。
再去看 k-NN 这一非监督的内容。它虽然比不上固定类别,但相差也不是很大。尤其是在使用架构的时候,其误差会更小。
总结
DINO 实际上是一篇在探索中前进的文章,它里面进行了许多细致的工作,我就不逐一进行说明了,对此感兴趣的同学可以仔细研读论文。毋庸置疑,DINO 引领大家步入了一个新的领域,这个领域将会开创与新事物的结合。就像我之前所判断的那样,训练所需要的大量数据,仅仅通过监督学习是不够的,而如果非监督学习能够使工作进展迅速,那么未来毫无疑问,这将成为 CV 的一个新的篇章。
for ()
with ()
An of Self- ()
陀飞轮-Moco三部曲()
[ in Self- ]
本文亮点总结
个人认为,未来的一个趋势将会是非监督学习,特别是 self-这种特定的方式。目前来看,实现这一趋势的途径可能只有通过对这个方向的研究,未来才有可能建造出更加先进的 AI 系统,甚至是 GAI。
使用带有 Self-的方法,由 DINO 学习出来的模型能够直接进行分类。简单来讲,当你把要分类的图片给到它时,它可以自行挖掘出每幅图片所具有的不同特征,并且能够自动为其进行归类,想要分成几类就可以分成几类,这便是未来的 AI 所应具备的能力。
如果觉得有用,就请分享到朋友圈吧!
点击卡片关注极市平台,获取最新CV干货
公众号后台回复“检测”获取目标检测论文下载~
极市干货
深度学习环境搭建:
实操教程:|
算法技巧():|
#CV技术社群邀请函#
长按添加极市小助手
添加极市小助手微信(ID : )
备注:姓名、学校/公司、研究方向、城市的相关信息(例如:小极,北大,目标检测,深圳)
可申请加入极市的目标检测技术交流群,可申请加入极市的图像分割技术交流群,可申请加入极市的工业检测技术交流群,可申请加入极市的人脸技术交流群,可申请加入极市的医学影像技术交流群,可申请加入极市的 3D 技术交流群,可申请加入极市的 SLAM 技术交流群,可申请加入极市的自动驾驶技术交流群,可申请加入极市的超分辨率技术交流群,可申请加入极市的姿态估计技术交流群,可申请加入极市的 ReID 技术交流群,可申请加入极市的 GAN 技术交流群,可申请加入极市的图像增强技术交流群,可申请加入极市的 OCR 技术交流群,可申请加入极市的视频理解技术交流群
每月有大咖进行直播分享,能进行真实项目需求的对接,还能提供求职内推服务,有算法竞赛,会汇总干货资讯,并且可以与来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企的视觉开发者互动交流。
觉得有用麻烦给个在看啦~
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态