点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

为什么需要自监督学习

随着深度模型的兴起,基于监督的图像特征提取方式已经成为主流。然而这种方法需要大量的有标签数据,标注成本过高,在小样本数据集上面临着过拟合等问题。如何减少算法对高质量标签数据集的需求?如何利用大量的无标签图像数据进行特征提取?如何让模型提取的特征具有更加泛化的表达能力?
自监督表示学习算法应运而生。公众号上一篇自监督学习在计算机视觉中的应用为大家介绍了自监督学习的基本概念和一些应用,本篇文章参考Lilian Weng在其博客(lilianweng.github.io)中总结的自监督表示学习在图像,视频和控制领域的进展,将摘选其中图像和视频部分的内容进行分享。内容较多,建议先收藏~

自监督学习在图像任务上的特征表示

  • Distortion(扭曲,变形)

    Exemplar-CNN(Dosovitskiy et al., 2015)《Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks》用图像中的patch创建数据集:
    1.从包含大量梯度的位置选取“exemplary” patch
    2.每个补丁都通过应用各种随机转换(即、平移、旋转、缩放等)

    所有产生的失真补丁都被认为属于同一个代理类
    3.pretext任务是区分一组代理类(每一个patch就是一个代理类)。

Rotation《Unsupervised Representation Learning by Predicting Image Rotations》提出了一种简单的图像旋转分类的代理任务。为了用不同的旋转来识别相同的图像,模型必须学会识别高层次的物体部分,如头、鼻子和眼睛,以及这些部分的相对位置,而不是局部模式。这个接口任务驱动模型以这种方式学习对象的语义概念。

  • Patches

    一幅图像中提取多个patch,并要求模型预测这些patch之间的关系
    relative position《Unsupervised Visual Representation Learning by Context Prediction》让模型预测patch的相对位置
    1.随机采样patch
    2.考虑到第一个patch被放置在一个3x3的网格的中间,第二个patch被采样于它周围的8个相邻的位置
    3.引入一些噪音
    4.该模型被训练来预测第二个patch是从8个相邻位置中的哪一个中选择出来的,这是一个超过8类的分类问题(就是说看第二个patch的相对于第一个patch 的位置是1,还是2,3….8)

在《Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles》是将9个patch打乱然后让模型将其放回,实际实现时让模型预测其属于每个位置的概率,当然可以用GCN来加速训练。

另一种想法是在论文《Representation Learning by Learning to Count》中提出的,将“feature”或“visual primitives”看作一个标量值属性,它可以在多个patch上求和,并在不同的patch之间进行比较。然后通过计数特征和简单的算法来定义patch之间的关系。
具体操作如下:

简单来说,就是对原始图像进行上采样和分块操作(2*2分块,得到4块),希望上采样后计算出的数目和原图计算出的数目一致,希望地砖分块操作后计算出的数目是原图计算出的数目的4倍。

  • Colorization
    《Colorful Image Colorization》这篇论文为灰度图着色为彩色(在CIE LAB color space)思想也很简单。

  • Momentum Contrast
    《Momentum Contrast for Unsupervised Visual Representation Learning》提出一种新的无监督学习框架:动态字典查找。

    对quuery(x_q)通过encoder有一个对应的表达q,对于key(x_k)通过momentum encoder有一个对应的表达k,这些k构成一个list字典。假设字典中有一个k和q匹配。在论文中k是通过x的数据增强得来的。使用了InfoNEC contrastive loss 学习 1个positive和K个negative样本:

训练伪代码:

同样《A Simple Framework for Contrastive Learning of Visual Representations》中也提出了一个简单的框架用于对比学习。它通过潜在空间的对比损失,最大限度地提高相同样本的不同增强视图之间的一致性,从而学习视觉输入的表示。
训练伪代码:

《CURL: Contrastive Unsupervised Representations for Reinforcement Learning》借鉴了SimCLR的想法用于强化学习。

自监督学习在视频任务上的特征表示

  • Video-Based
    视频中包含连续的,语义相近的帧,且框架的顺序描述了一定的推理规则和物理逻辑;例如,物体的运动应该是平稳的,重力是向下的。
    一个常见的工作流程是,用无标签的视频对一个模型进行一个或多个pretext任务的训练,然后将该模型的一个中间特征层输入对动作分类、分割或目标跟踪等下游任务进行finetune。

  • Tracking
    物体的运动由一系列视频帧来跟踪。在近距离的画面中,同一个物体在屏幕上被捕捉的方式通常差别不大,通常是由物体或相机的微小运动触发的。因此,对同一物体学习的任何跨越近帧的视觉表征都应该在潜在特征空间中是接近的。在这个想法的启发下,Wang & Gupta, 201《Unsupervised Learning of Visual Representations using Videos》)提出了一种通过跟踪视频中移动的物体来实现视觉表征的无监督学习的方法。
    具体做法:在一个小的window中(30帧)追踪一个patchX,有个和X接近的patchX+,还有一个随机选取的patchX-。这个loss像triple loss

patch的获取:

  • Frame Sequence(帧序列)
    视频帧是按时间顺序自然放置的。

    研究人员提出了几个自我监督的任务,他们期望良好的表现应该学习帧的正确顺序。《Shuffle and Learn: Unsupervised Learning using Temporal Order Verification》中提出的pretext任务为:判断一段视频序列的顺序是否正确,这样模型可以获得追踪物体和推理的能力。
    具体做法为:

类似的,《Self-Supervised Video Representation Learning With Odd-One-Out Networks》中也提出了一种基于视频序列的无监督学习方法“odd-one-out learning”。要从N+1个序列帧中挑选出某一个古怪的帧。
还有研究给模型播放正序或者倒序的视频,让其预测时间的方向 arrow of time(正或负)为了预测时间箭头,分类器应该同时捕获低级物理和高级语义。提出的T- cam(时间类激活映射)网络接受T组,每个T组包含若干个光流帧。每个组的conv层输出被连接起来并输入到二元逻辑回归中以预测时间箭头。这个pretext任务可以提高动作分类下游任务的性能。

  • Video Colorization
    《Tracking Emerges by Colorizing Videos》提出视频着色可以作为一个自监督问题,在此基础上得到丰富的特征表达且对视频分割和无标签的区域追踪很有效果。
    和图片的照射着色的自监督问题不同,视频着色是将基于一张已知的帧对另外一张帧着色。由于帧相近,具有时间相干性,因此他们之间的像素距离也相近,模型被设计用来跟踪不同帧中相关的像素。

下载1:OpenCV-Contrib扩展模块中文版教程在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。交流群欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

计算机视觉研究新方向:自监督表示学习总结(建议收藏)相关推荐

  1. 受压缩感知启发,斯坦福 AI 研究院提出新的无监督表示学习框架!

    雷锋网 AI 科技评论按:如今,说到图像领域的生成式模型,大家往往会想到对抗生成网络(GAN)和自编码器(AE).本文介绍了斯坦福 AI 研究院的研究人员如何从统计压缩感知技术中汲取灵感设计出的非确定 ...

  2. 后台服务器开发学习指南(建议收藏)

    前言 这一篇的主题是「Linux C/C++ 服务器/后台开发学习路线」. 这样的文章相信大家都见得不少了,写之前也非常忐忑,能不能和其它人写得不一样, 也定下了一个目标,这篇文章,不能是简单的堆砌学 ...

  3. 神器 Nginx 的学习手册 ( 建议收藏 )

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/yujing1314/article/ details/107000737 1.Nginx知识网结构图 Nginx是一个高性能的 ...

  4. 预训练模型需要知道的知识点总结,万字长文带你深入学习(建议收藏)

    前言:如何在有限数据下训练高效的深度学习模型? 利用深度学习自动学习特征已经逐步取代了人工构建特征和统计方法.但其中一个关键问题是需要大量的数据,否则会因为参数过多过拟合. 以下是我为大家准备的几个精 ...

  5. 一起聆听碳氮循环研究新动态,我们在苏州期待您的精彩分享和参与!

    邀 请 函 尊敬的各位专家.学者和同仁: 中国(苏州)碳氮生物地球化学循环学术论坛将于4月14日-16日在苏州市举办.本次会议由中国(苏州)碳氮生物地球化学循环学术论坛组委会.中科农研生态科学发展促进 ...

  6. 为什么深度学习几乎成了计算机视觉研究的标配?

    本次CVPR 2016上,深度学习几乎成了如今计算机视觉研究的标配,人脸识别.图像识别.视频识别.行人检测.大规模场景识别的相关论文里都用到了深度学习的方法,加上Google,Facebook这样的大 ...

  7. 计算机视觉中的自监督表示学习近期进展

    ©PaperWeekly 原创 · 作者|燕皖 单位|渊亭科技 研究方向|计算机视觉.CNN 回顾过去一年左右的自监督学习领域的最重要发展,那么会发现很多优秀的作品:MoCo v1 和 v2,SimC ...

  8. 语义slam_语义SLAM: 接轨深度学习的新方向

    声明:本文首发于我的公众号[当SLAM遇见小王同学],谢绝私自转载,如有需要,可加我微信进行授权!!侵权必究! SLAM技术在计算机视觉和机器人领域中占有重要地位.传统的SLAM框架都将环境假定为静态 ...

  9. 语义表征的无监督对比学习:一个新理论框架

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」7折优惠最后3天,请扫码咨询 ↑↑↑ 译者 | Linstancy 责编 | 琥珀 出品 | AI科技大本营(ID:rgznai100) ...

最新文章

  1. thinkpad触控笔怎么用_笔记本电脑卡死了怎么办关不了机
  2. 并查集 ---- 扩展域并查集判二分图 + 循环模拟字典树 The 2020 ICPC Asia Macau Regional Contest C. Club Assignment (详解)
  3. 豆瓣评分 9.3 的 Java 巨著 | Bruce Eckel 重讲 Java 的编程思想
  4. 05_pandas读写文件,读写数据到CSV,HDF5,Excel中
  5. Java commit()_Java XAResource.commit方法代码示例
  6. SonarQube中配置c语言/c++语言代码规则插件
  7. 黑苹果白果序列号_黑苹果从入门到放弃黑苹果:OC配置入门
  8. 大数据、物联网、AI 等技术正当时!
  9. 【Python基础】文件读写
  10. Jedis 常用API使用
  11. React 路由 中 BrowserHistory 刷新报404
  12. linux触摸屏应用程序开发,linux触摸屏(一)编写触摸屏应用
  13. Python报错unindent does not match any outer indentation level如何解决?
  14. android内核编译 me525,今天给ME525+刷了Android 4.0系统,很流畅!
  15. 超详细Gulp打包seajs模块压缩合并,绝对对你项目有帮助 ~
  16. html(5)知识点囊括
  17. lua报错:1: unfinished string near ‘<eof>‘
  18. 面向对象(冰箱装大象)
  19. 轻微课靠谱吗?轻微课学员的真实评价!!!
  20. 李宏毅老师《机器学习》课程笔记-2.2 为什么是“深度”学习?

热门文章

  1. c语言中ch1和ch2是什么意思,2020-05-26(C语言)1.将串str中所有值为ch1的字符转换成ch2的字符,如果str为空串,或者串中不含值为ch1的字符,则什么都不做.2.逆转函数...
  2. 朱清时——物理学步入禅境:缘起性空-(技术工作者上升到哲学思维)
  3. 第十章:Archiving
  4. ctrypto-js中,DES解密的iv向量处理
  5. poj1606 Jugs(BFS)
  6. 【python】OpenCV—Brightness and Contrast adjustments
  7. Android 9.0系统源码_SystemUI(二)StatusBar系统状态栏的创建流程
  8. java web 蓝牙打印_android 蓝牙打印机示例
  9. 【好书推荐】芯片产业科普书籍:《芯事》
  10. Toast拓展--自定义显示时间和动画