清华 CVer 对自监督学习的一些思考
来源 | Jack Cui
责编 | 晋兆雨
头图 | CSDN 下载自视觉中国
众所周知,机器学习大致可分为有监督学习和无监督学习。
自监督学习作为无监督学习的一个特例,可以理解它是一种没有人工标注标签的监督学习,即没有人类参与的监督学习。
但标签仍然存在,只不过标签是从输入数据中生成的,通常是使用启发式算法生成。
自监督学习的流行是势在必然的。
在各种主流有监督学习任务都做到很成熟之后,数据成了最重要的瓶颈。
从无标注数据中学习有效信息一直是一个很重要的研究课题,其中自监督学习提供了非常丰富的想象空间。
今天为大家带来的是一位本科清华,博士港中文毕业的大佬,对于自监督学习的一些思考。
如何定义自监督学习?
自监督学习是指用于机器学习的标注(ground truth)源于数据本身,而非来自人工标注。
如下图,自监督学习首先属于无监督学习,因此其学习的目标无需人工标注。其次,目前的自监督学习领域可大致分为两个分支。
图1,自监督学习和其他学习类型的关系
第一个是用于解决特定任务的自监督学习,例如场景去遮挡,以及自监督的深度估计、光流估计、图像关联点匹配等。
另一个分支则用于表征学习。有监督的表征学习,一个典型的例子是 ImageNet 分类。而无监督的表征学习中,最主要的方法则是自监督学习。
典型的方法包括:解决 Jigsaw Puzzles、运动传播、旋转预测,以及最近很火的MoCo 等等。
当然还有其他分类方法,比如根据数据也可以分为 video / image / language 的自监督学习。本文主要讨论 image 上的自监督学习。
判断一个工作是否属于自监督学习,除了无需人工标注这个标准之外,还有一个重要标准,就是是否学到了新的知识。
举个简单的例子,例如 image inpainting 是否属于自监督学习?
如果一篇 image inpainting 的论文,其主要目的是提升 inpainting 的效果,那么它就不属于自监督学习,虽然它无需额外标注。
但是如果它的目的是借助 inpainting 这个任务来学习图像的特征表达,那么它就是自监督学习(参考论文:Context Encoders [1])。
如下图,以自监督表征学习为例,我们通常需要设计一个自监督的 proxy task,我们期望在解决这个 proxy task 的过程中,CNN 能学到一些图像高级的语义信息。然后我们将训练好的 CNN 迁移到其他目标任务,例如图像语义分割、物体检测等等。
图2,典型的自监督表征学习流程
那么,自监督的 proxy task 有哪些呢?如下图举了一些有代表性的例子,第一行中的思路是将图像以某种方式破坏,然后用神经网络来学习恢复原图的过程,期望在此过程中能学到一些图像语义信息。然而,将图像破坏,可能带来预训练的 domain 和目标任务 domain 不一致的问题。第二行中的 proxy tasks 则代表了无需破坏原图的自监督任务。第三行中的方法是利用运动信息等多模态信息来学习图像特征。当然除了图中这些例子之外,还有各种各样其他有趣的自监督任务。
图3,自监督proxy tasks的例子
为什么自监督学习能学到新信息 ?
1. 先验
我们的世界是在严格的物理、生物规则下运行的,那么对这个世界的观测结果(图像)也必然存在一些先验规律。例如图像上色任务,就是利用了物体类别和物体颜色分布之间的关联;image inpainting,则是利用了物体类别和形状纹理之间的关联;旋转预测任务,利用了物体类别和其朝向之间的关联。通过挖掘更多的先验,我们也能设计自己的自监督学习任务。
那么什么样的先验更有效呢?结论是,低熵的先验。如下图,左边的运动预测任务(ICCV 2015: Dense Optical Flow Prediction From a Static Image [2]) ,是从单张图片中直接预测运动场,其利用的先验是物体的运动倾向性。而运动倾向性是比较歧义的,例如人在半蹲状态,难以预测下一时刻会站起来还是继续下蹲。
因而,运动倾向性是一个高熵的先验。而右图的运动传播任务(CVPR 2019: Self-Supervised Learning via Conditional Motion Propagation [3]),从给定的稀疏运动来恢复完整运动场,利用的则是物体的运动学属性先验。运动学属性,例如头部是刚体,四肢是铰接体等,是较为确定的先验,那么这就是一个低熵的先验。从实验结果也可以发现,在transfer到分割任务上,运动传播比运动预测更好。
图4,运动预测和运动传播的对比
2. 连贯性
图片具有空间连贯性,视频具有时空连贯性。那么就可以利用这些特点来设计自监督任务。如下图,Solving Jigsaw Puzzles [4] 利用图片中物体空间上的语义连贯性,Temporal order verification [5]任务利用了视频中物体运动的时间连贯性。
图五,利用数据空间、时间连贯性的自监督任务
3. 数据内部结构
目前很火的基于contrastive learning的方法,包括NPID, MoCo, SimCLR等,我们可以将它们统一为instance discrimination [6]任务。如下图,这类任务通常对图片做各种变换,然后优化目标是同一张图片的不同变换在特征空间中尽量接近,不同图片在特征空间中尽量远离。
图6,instance discrimination任务
对于这类任务,下图假设了两种可能的优化后的特征空间。这两种结果都是符合instance discrimination优化目标的,即同一张图片的不同变换在特征空间中尽量接近,不同图片在特征空间中尽量远离。
然而,我们发现,实际的优化结果更偏向于第二种而非第一种,也就是说,虽然我们在解决instance discrimination的过程中并没有用的物体的类别标签,但是在优化后的特征空间中,同类的物体还是相对能够靠拢。
这就证明了,数据之间是具有结构性和关联性的。Instance discrimination则是巧妙地利用了这种结构性和关联性。类似地,最近的BYOL [7]也可能是利用了数据在特征空间中的分布结构特点来抛弃负样本对(个人理解)。
图7,instance discrimination的两种可能的优化后的特征空间
设计一个自监督学习任务还需要考虑什么?
1. 捷径(shortcuts)
以 jigsaw puzzles 为例,如下图,如果我们让划分的 patch 之间紧密挨着,那么神经网络只需要判断 patch 的边缘是否具有连续性,就可以判断 patch 的相对位置,而不需要学到高级的物体语义信息。这就是一种捷径,我们在设计任务的过程中需要避免这样的捷径。
图8,解决jigsaw puzzles时,patch之间不能紧密挨着
对于这种捷径,处理的方式也很简单,我们只需要让patch之间产生一些随机的间隔就行,如下图。
图9,让patch之间产生随机间隔
Solving jigsaw puzzles的其他捷径还包括色差、彗差、畸变、暗角等可以指示patch在图像中的相对位置的信息。解决方案除了想办法消除这些畸变外,还可以让patch尽量靠近图像中心。
图10,色差、彗差、畸变、暗角等可利用的捷径
2. 歧义性(Ambiguity)
大多数利用先验来设计的自监督任务都会面临歧义性问题。
例如 colorization 中,一种物体的颜色可能是多种多样的,那么从灰度图恢复颜色这个过程就具有 ambiguity ;再例如在 rotation prediction 中,有的物体并没有一个通常的朝向(例如俯拍放在桌上的圆盘子)。
有不少已有工作在专门解决特定任务的歧义性问题,例如 CVPR 2019 的 Self-Supervised Representation Learning by Rotation Feature Decoupling。
另外就是设计低熵的先验,因为低熵的先验也具有较低的歧义性。
3. 任务难度
图11,solving jigsaw puzzles中的不同难度
神经网络就像一个小孩,如果给他太简单的任务,他学不到有用的知识,如果给他太难的任务,他可能直接就放弃了。设计合理的难度也是一个需要考虑的方面。
展望
我们的世界是在严格的物理学、化学、生物学规则下运行的,视觉信号是这些内在规则的外在反映,而深度学习,正好非常擅长处理高维的视觉信号。
所以,无监督、自监督学习的存在和发展是必然的,因为世界本身就是有序的、低熵的,这使得数据本身就已经包含了丰富的信息。
自监督学习看似神奇,但理解了其本质之后,也就会觉得是情理之中了。当然,目前学术界对自监督学习的理解程度,可能也只是九牛一毛而已。未来会走向什么方向,谁也说不准。
目前是基于数据之间的结构的instance discrimination处于state-of-the-art,未来,基于priors的方法更胜一筹也是有可能的。
所以,千万不要受限于一类方法,不要让自监督学习变成了调参游戏,自监督领域的想象空间其实非常大。
最后,这个总结主要基于自己的思考,也许不一定非常到位,权当抛砖引玉。希望大家都能够设计出有趣又有用的自监督学习任务,为这个领域添砖加瓦。
本文已由原作者授权,不得擅自二次转载。
https://zhuanlan.zhihu.com/p/150224914
References:
Pathak, Deepak, et al. "Context encoders: Feature learning by inpainting."Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.
Walker, Jacob, Abhinav Gupta, and Martial Hebert. "Dense optical flow prediction from a static image."Proceedings of the IEEE International Conference on Computer Vision. 2015.
Noroozi, Mehdi, and Paolo Favaro. "Unsupervised learning of visual representations by solving jigsaw puzzles."European Conference on Computer Vision. Springer, Cham, 2016.
Misra, Ishan, C. Lawrence Zitnick, and Martial Hebert. "Shuffle and learn: unsupervised learning using temporal order verification."European Conference on Computer Vision. Springer, Cham, 2016.
Wu, Zhirong, et al. "Unsupervised feature learning via non-parametric instance discrimination."Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.
Grill, Jean-Bastien, et al. "Bootstrap Your Own Latent: A New Approach to Self-Supervised Learning."arXiv preprint arXiv:2006.07733(2020).
程序员如何避免陷入“内卷”、选择什么技术最有前景,中国开发者现状与技术趋势究竟是什么样?快来参与「2020 中国开发者大调查」,更有丰富奖品送不停!
更多精彩推荐
TIOBE 1 月编程语言:Python 摘得 2020 年度编程语言
舌尖上的AI:人工智能技术正在被“端上”餐桌
腾讯AI足球队夺冠Kaggle竞赛,绝悟强化学习方案迁移至足球队
一男子蒙冤入狱10天,竟是 AI 认错了!
我酸了!又是别人家公司!百度新年发 U 奖金鼓励员工
相关文章:

使用 HTML5 时如何改进移动 Web 应用开发
因为 HTML 有易于维护,更好的互动性,更快的开发等优点,被越来越多的应用在移动 Web 应用程序的开发中。HTML5 是一种标记语言,与 Javascript 和 CSS 一起,构成了每个开发者的核心技术,HTML5 拥有自己的 API…

hibernate.cfg.xml详细配置
<!--标准的XML文件的起始行,version1.0表明XML的版本,encodinggb2312表明XML文件的编码方式--> <?xml version1.0 encodinggb2312?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的…

ASP.NET2.0中用Gridview控件操作数据
在ASP.NET 2.0中,加入了许多新的功能和控件,相比asp.net 1.0/1.1,在各方面都有了很大的提高。其中,在数据控件方面,增加了不少控件,其中的Gridview控件功能十分强大。在本文中,将探讨Gridview控…
人工智能在消费领域,都做了哪些事?
来源 | 人民数字FINTECH责编 | 晋兆雨头图 | CSDN 下载自视觉中国#AI正在融入生活的方方面面近日,北京一购物中心开业,在开业当天迎宾的并不是“人”而是“机器人”。在这里你可以体验到高科技高颜值的机器人“迎宾团”给你带来的贵宾级的服务࿰…

poj 1681 Painter#39;s Problem(高斯消元)
http://poj.org/problem?id1681 求最少经过的步数使得输入的矩阵全变为y。 思路:高斯消元求出自由变元。然后枚举自由变元,求出最优值。注意依据自由变元求其它解及求最优值的方法。 #include <stdio.h> #include <algorithm> #include <…

ASP.NET 2.0中GRIDVIEW排序
在 headertemplate中加一张UP.GIF和DOWN.GIF(就是升序,倒序的示意图) % Page Language"C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html…

基础篇9-python基本数据结构-列表
基础篇9-python基本数据结构-列表一.列表:1.有序的集合2.通过偏移来索引,从而读取数据3.支持内嵌a [[1,2,3],[4,5,6]]4.可变类型a[0][1] 7二.切片a [1,2,3,4,5,6,7]a[0:3:1]0 索引开始3 索引结束1 间隔(默认1)正向索引 它是从左往右索引假如要取出1234…

用AI打造科技公益新模式,腾讯发起公益创新挑战赛,聚焦三大社会问题
近日,由腾讯基金会、企鹅伴成长、腾讯优图实验室、腾讯云AI、腾讯云开发联合发起的腾讯Light公益创新挑战赛在三亚宣布正式启动。本次比赛以“AI,让美好现在发生”为主题,与联合国儿童基金会、深圳市信息无障碍研究会、桃花源生态保护基金会三…

一个查看全部用户的磁盘空间使用情况的脚本
一个查看全部用户的磁盘空间使用情况的脚本 脚本程序例如以下: #!/bin/sh for user in ls /home dodu -hs "/home/"$user done脚本运行结果: [rootsyy ~]# . homeusage.sh 32K /home/saleli 9.2G /home/syy 500K /home/wph太简单了…

Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
Asp.net 2.0中新增的gridview控件,是十分强大的数据展示控件,在前面的系列文章里,分别展示了其中很多的基本用法和技巧(详见< ASP.NET 2.0中Gridview控件高级技巧>)。在本文中,将继续探讨有关的…

对标Oculus Quest2,爱奇艺奇遇VR打的什么牌?
出品 | AI科技大本营 作者 | 阿司匹林 1月6日,爱奇艺奇遇VR在京召开主题为“谁与争锋”的VR技术发布会,正式发布国内首个CV(计算机视觉技术)头手6DoF VR交互技术——追光,并面向全球VR游戏开发者启动“哥伦布计划”。 …

DVWA默认用户名密码
有些东西不好找啊,自己动手丰衣足食~~ DVWA默认的用户有5个,用户名密码如下(一个足以): admin/password gordonb/abc123 1337/charley pablo/letmein smithy/password转载于:https://www.cnblog…

idea 基本设置
1. 打开首先设置 maven,添加配置文件 2.自动导入 搜索 auto import ,勾选 Optimize imports on the fly:自动去掉一些没有用到的包Add unambiguous imports on the fly:自动帮我们优化导入的包3.快捷键 切换成 eclipse 版本,智能提示快捷键 …

ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
学习整理了一下(一).功能用HttpHandler实现图片验证码(二).代码如下1. 处理程序文件 ValidateImageHandler.ashx代码如下1 <% WebHandler Language"C#"Class"ValidateImageHandler"%>2 3 usingSystem;4 usingSystem.Web;5 usingSystem.Web.SessionSt…

linux下配置ip地址的方法
(1)Ifconfig命令第一种使用ifconfig命令配置网卡的ip地址。此命令通常用来零时的测试用,计算机启动后ip地址的配置将自动失效。具体用法如下。Ipconfig ethx ipadd netmask x.x.x.x。其中ethx中的x代表第几快以太网卡,…

百万美元技术大奖,雷军颁给了秒充和隐私保护技术团队
1月7日,2020年小米百万美金技术大奖揭晓,经过小米集团技术委员会多轮评选,手机部小米秒充团队、软件与体验部的MIUI隐私保护团队,双双赢得了价值100万美元的技术大奖(小米受限股)。 120W有线秒充ÿ…

在 Android 应用程序中使用 SQLite 数据库以及怎么用
part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库。它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能。此外它还是开源的,不论什么人都能够使用它。很多开源项目((Mozilla, PHP, Python…

asp.net 2.0 权限树的控制
做权限的时候,主要实现如下功能1、该节点可以访问,则他的父节点也必能访问;2、该节点可以访问,则他的子节点也都能访问;3、该节点不可访问,则他的子节点也不能访问。使用带CheckBox的数型结构能得到很好的用户体验,可是…

腾讯首位17级杰出科学家诞生:腾讯AI Lab负责人张正友
2021年1月8日腾讯宣布,腾讯Robotics X实验室及腾讯AI Lab负责人张正友博士成为腾讯首位17级研究员/杰出科学家,17级是腾讯历史上最高的专业职级。 腾讯AI Lab及腾讯Robotics X实验室负责人张正友博士荣获这一殊荣的张正友博士,领导创建了世界…

论性能测试的必要性
论性能测试的必要性说起为什么要进行性能测试,前面已经多少谈到一些。下面,从“性能测试与功能测试关系”及“性能自动化测试优势”两方面给读者作答。1. 性能测试与功能测试关系性能测试和功能测试是测试工作中两个不同的方面,只是在关注的内…

Spring学习系列(二) 自动化装配Bean
一、Spring装配-自动化装配 Component和ComponentScan 通过spring注解(Component)来表明该类会作为组件类,并告知Spring要为这类创建bean,不过组件扫描默认是不启动的,需要显式的配置Spring,从而命令Spring…

如何让SELECT 查询结果额外增加自动递增序号
图表1如果数据表本身并不内含自动地增编号的字段时,要怎么做才能够让SELECT查询结果如图表1所示,额外增加自动递增序号呢?我们提供下列五种方法供您参考:USE北风贸易;GO/* 方法一*/SELECT序号(SELECT COUNT(客户编号)FROM 客户AS …

UVa 10131
1 /*2 3 * 类似于最长递减子序列4 */5 #include<stdio.h>6 7 #include<string.h>8 #include<algorithm>9 using namespace std; 10 #define Max(x,y) (x>y?x:y) 11 #define max 10005 12 struct node{ 13 int w,s,c; 14 }a[max]; 15 int dp[max]; 16…
再见 VBA!神器工具统一 Excel 和 Python
作者 | 东哥起飞来源 | Python数据科学经常给大家推荐好用的数据分析工具,也收到了铁子们的各种好评。这次也不例外,我要再推荐一个,而且是个爆款神器。Excel和Jupyter Notebok都是我每天必用的工具,而且两个工具经常协同工作&…

Android 开发者必知的开发资源
英文原文:Bongzimo 翻译: ImportNew-黄小非 译文链接:http://www.importnew.com/3988.html Android 开发者必知的开发资源 随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮。如果您是一位2013年刚刚…

SQL Server各种日期计算方法
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几…

TensorFlow入门
为什么80%的码农都做不了架构师?>>> TensorFlow核心教程 导入TensorFlow计算图tf.train API 完成程序tf.contrib.learn 基本用法自定义模型下一步原文链接 : https://www.tensorflow.org/get_started/get_started 译文链接 : http://www.apache.wiki/pa…
C#实现类似qq的屏幕截图程序
因为近来想写个类似于远程桌面监控的程序,该程序中要用到屏幕捕捉.为实现该程序的一部分功能,做了个小DEMO.程序很简单,用到的技术也不多,只能实现类似qq的截图功能(方法虽然很笨) 程序流程如下:1.截取整个屏幕并保存 2.新开一个全屏窗口,将保…

构建RESTful风格的WCF服务
RESTful Wcf是一种基于Http协议的服务架构风格。 相较 WCF、WebService 使用 SOAP、WSDL、WS-* 而言,几乎所有的语言和网络平台都支持 HTTP 请求。 RESTful的几点好处: 1、简单的数据通讯方式,基于HTTP协议。避免了使用复杂的数据通讯方式。 …