机器学习中的无监督学习应用在哪些领域呢?自动驾驶?医疗影像?卷积神经网络?
监督学习 | 机器学习 | 集成学习 | 进化计算
非监督学习 | 半监督学习 | 自监督学习 | 无监督学习
随着人工智能、元宇宙、数据安全、可信隐私用计算、大数据等领域的快速发展,自监督学习脱颖而出,致力于解决数据中心、云计算、人工智能和边缘计算等各个行业的问题,为人们带来极大便益。
自监督学习是什么?
自监督学习与监督学习和非监督学习的关系
自我监督方法可以看作是一种特殊形式的具有监督形式的非监督学习方法,其中监督是通过自我监督任务而不是预设的先验知识诱发的。与完全不受监督的设置相比,自监督学习利用数据集本身的信息构造伪标签。在表达学习中,自我监督学习有很大的潜力取代完全监督学习。人类学习的本质告诉我们,大型标注数据集可能不是必需的,我们可以自发地从未标注的数据集中学习。更为现实的设置是使用少量带注释的数据进行自我学习。这就是所谓的Few-shot Learning。
自监督学习的主要流派
在自监督学习中,如何自动获取伪标签非常重要。根据伪标签的不同类型,将自监督表示学习方法分为四种类型:
- 基于数据生成(恢复)的任务
- 基于数据变换的任务
- 基于多模态的任务
- 基于辅助信息的任务
简单介绍一下第一类任务。事实上,所有非监督方法都可以被视为第一类自监督任务。在文献研究的过程中,非监督学习和自监督学习根本不存在界限。
所有非监督学习方法,如数据降维(PCA:在减少数据维度的同时最大化的保留原有数据的方差)和数据拟合分类(GMM:最大化高斯混合分布的似然),本质上都是为了得到一个好的数据表示,并希望能生成(恢复)原始输入。这也是目前很多自监督学习方法赖以使用的监督信息。基本上,所有的encoder-decoder模型都将数据恢复视为训练损失。
图片上色与视频预测
什么是基于数据恢复的自监督任务?
一. 数据生成任务
自监督学习的出发点是考虑在缺少标签或者完全没有标签的情况下,我们仍然可以学习到能够表示原始图片的良好意义的特征。那么什么样的特质是良好有意义的呢?在第一类自监督任务——数据恢复任务中,能够通过学习到的特征来还原生成原始数据的特征是有良好意义的。看到这里,大家都能联想到自动编码器类的模型,甚至更简单的PCA。事实上,几乎所有的非监督学习方法都是基于这个原理。VAE现在非常流行的深代模式,甚至更热的GAN都可以归为这种方法。
GAN的核心是通过Discriminator去缩小Generator distribution和real distribution之间的距离。GAN的学习过程不需要人为进行数据标注,其监督信号也即是优化目标就是使得上述对抗过程趋向平稳。
以两篇具体的paper为例,介绍数据恢复类的自监督任务如何操作实现。我们的重点依然是视觉问题,这里分别介绍一篇图片上色的文章和一篇视频预测的文章。其余的领域比如NLP,其本质是类似的,在弄清楚了数据本身的特点之后,可以先做一些低级的照猫画虎的工作。
图片颜色恢复
设计自监督任务时,需要一些巧妙的思考。比如图片的色彩恢复任务,我们现有的数据集是一张张的彩色图片。如果去掉颜色,作为感性思考者的我们,能否从黑白图片所显示的内容中猜测出原始图片的真实颜色?对于一个婴儿来说可能很难,但是对于我们来说,生活的经验告诉我们瓢虫应该是红色的。我们如何做预测?事实上,通过观察大量的瓢虫,已经在大脑中建立了一个从“瓢虫”到“红色”的映射。
这个学习过程扩展到模型。给定黑白输入,使用正确颜色的原始图像作为学习标签,模型将尝试理解原始黑白图像中的每个区域是什么,然后建立从什么到不同颜色的映射。
当我们完成训练,模型的中间层feature map就得到以向量形式的类似人脑对于“瓢虫”以及其他物体的记忆。
视频预测
一般来说,视觉问题可以分为两类:图片和视频。图片数据可以认为具有i.i.d特征,而视频由多个图片帧组成,可以认为具有一定的Markov dependency。时序关系是他们最大的区别。比如,最简单的思路是利用CNN提取单个图片的特征进行图像分类,然后加入一个RNN或LSTM刻画Markov Dependency,便可以应用到视频中。
视频中帧与帧之间有时空连续性。同样,利用帧与帧之间的连续性,当看电影的时突然按下暂停,接下来几秒钟会发生什么,其实是可以预见的。
同样,这个学习过程也扩展到了模型中。给定前一帧或前几帧的情况下,使用后续的视频帧作为学习标签,从而模型会试着理解给定视频帧中的语义信息(发生了啥?)进而去建立从当前到未来的映射关系。
二. 基于数据变换的任务
事实上,人们现在常常提到的自监督学习通常指的是:这一类自监督任务是比较狭义的概念。
用一句话说明这一类任务,事实上原理很简单。对于样本
下面介绍一种原理十分简单但是目前看来非常有效的自监督任务——Rotation Prediction。
给定输入图片
自监督学习中的对比学习方法
对比学习是自监督学习中的一个重要方法,其核心思想是通过样本的相似性来构建表征。对于相似的输入样本,由网络产生的表征也应当相似;而对于差异较大的输入样本,表征也应该存在较大区别。根据这一思想,很多基于对比学习的自监督学习方法被提出(如MoCo、SimCLR、BYOL),并对这一领域产生了深远影响。
对比学习中的一个关键步骤是构建正负样本集合,对于一个输入样本
同一张猫咪图片经过剪裁得到的另一视图被视作正样本,正样本与原图经过神经网络编码得到的表征应该相似;而数据集中的其余图片被视为负样本,经网络编码后的结果应当差异较大。
完成正负样本的构建后,对比学习一般采用InfoNCE Loss来进行损失计算和模型更新,其形式如下:
其中
一. MoCo
MoCo是对比学习中一个非常有代表性的方法,其主要思想是将对比学习过程看作一个“查字典”的过程:在一个由众多样本构成的键值(key)字典中检索到与查询样本的编码结果(query)相匹配的正样本。为了提升对比学习的效果,提出两点假设:
一.键值字典的容量应该尽可能增大以提高自监督任务的难度,从而提升训练效果;
二.键值字典应该在训练过程中保持一定程度的一致性以保障自监督学习过程能够稳定进行。
基于以上两点假设,分析了几种对比学习机制。
1端到端训练
即对于所有的查询样本的编码结果(query)和字典键值(key)同时进行梯度传播,但这一方法中显存大小会极大地限制键值字典的大小,导致自监督任务难度降低,影响训练效果;
2.基于memory bank的训练方法
迭代过程中将键值编码存储到一个memory bank中,每轮对比学习过程中所需要的字典键值直接从memory bank 里选取,而梯度计算只对查询样本的编码网络分支进行。因为MoCo不需要对键值字典的分支进行梯度计算,memory bank方法可以显著提升键值字典的容量,但是由于每个样本在memory bank中的键值在被模型重新编码时才会被更新,键值字典中键值间的一致性较差,从而降低了训练的稳定性。
因此,提出一种momentum encoder来实现对键值字典的编码。对于查询样本,使用普通encoder进行编码并直接进行梯度计算;而对于键值字典,首先由一个动态更新的队列维护字典的输入样本,再使用momentum encoder将样本编码为键值。Momentum encoder在训练过程中不会进行梯度计算,而是采用动量更新的方法从encoder更新参数,更新方法如下:
其中,
值得一提的是,在实验过程中发现传统的batch normalization方法可能造成样本信息的泄露,让数据样本意外地“看到了”其他样本。会使模型在自监督任务中更倾向于选择一个合适的batch normalization参数,而不是学习一个比较好的特征表示。
二. SimCLR
SimCLR 是一个非常简洁的自监督学习框架。没有建立类似MoCo的键值字典的方式,而是直接在每个batch中的样本之间进行比较学习。对于
网络结构上,与MoCo相比,SimCLR在backbone网络末端新增了一个由两层全连接层构成的projection head。模型在训练阶段,根据projection head的输出
三. BYOL
BYOL是一个非常有特点的模型,与MoCo、SimCLR相比,BYOL可以直接在正样本对上进行自监督训练而不需要构建负样本集合。BYOL的构想来自于一个非常有意思的发现:在一个完全随机初始化的网络所输出的特征上进行分类任务的top-1准确率只有1.4%;
但如果将这个随机初始化网络的输出特征作为目标,用另一个网络对其进行学习,使用学习之后的网络进行特征提取再进行分类可以达到18.8%的准确度。换言之,以一个特征表示作为目标进行学习,可以获得一个更好的表示。如此继续迭代下去,精确度可以继续往上提升。
基于这一发现,构建了只需要正样本对的BYOL学习框架。如图,一张输入图片经过不同数据增强后的两个视图分别经过online和target两个分支的backbone和projection head后得到输出
自监督学习中的类聚方法
与对比学习或者人工设置的前置任务(pretext task)的学习方式不同,基于聚类的自监督方法将训练样本按照某种相似度量进行划分,划归到不同聚类中心的样本被赋予不同的类别标签,之后使用标准的全监督学习交叉熵损失进行训练。用数学语言形式化的展示了全监督学习与自监督聚类之间的联系与区别:考虑深度模型
具体来讲,假设有N个样本
一般而言,我们令
第一步,根据深度模型输出调整标签分配方式,得到当前特征下损失函数最小的标签;
第二步,根据更新的标签训练深度模型。
给所有的样本赋予相同标签之后优化模型参数就可以最小化平均损失函数。此时,模型将所有样本均映射到特征空间中的同一位置附近,不同样本之间的特征区分度变得微弱,模型性能严重退化,不能达到学习出有意义特征表示的目的。因此,基于聚类的自监督学习方法关键在于引入适当的约束条件,避免模型收敛到退化解。
自监督学习推动医学图像分类发展
随着自监督学习在放射学、病理学和皮肤病学等诸多应用领域取得令人振奋的成果,人们对自监督学习在医学成像任务中的应用越来越感兴趣。尽管如此,开发医学成像模型仍然颇具挑战,这是由于标注医学图像极为耗时,高质量标记数据通常较为稀缺。
鉴于此,迁移学习 (Transfer learning) 成为构建医学成像模型的热门范例。这种方法首先要在大型标记数据集(如 ImageNet)中使用监督学习 (Supervised learning) 对模型进行预训练,然后在域内医学数据中对习得的通用表征进行微调。
近来一些新的方法在自然图像识别任务中取得了成功,尤其是在标记示例稀少的情况下,这些方法使用自监督对比预训练,然后进行监督微调(例如 SimCLR 和 MoCo)。在对比学习预训练中,模型将同一图像的不同转换视图间的一致性升至最高,同时将不同图像的转换视图间的一致性降至最低,从而习得通用表征。尽管这些对比学习方法取得成功,但在医学图像分析中受到的关注有限,其功效还有待探索。
研究自监督对比学习作为医学图像分类领域预训练策略的有效性。同时提出一个全新方法——多实例对比学习 (MICLe),这一方法可泛化对比学习以利用医学图像数据集的特性。针对两项不同的医学图像分类任务进行实验:识别数码相机图像中皮肤状况分类(27 类)和对胸部 X 射线进行多标签分类(5 类)。通过实验可以观察到,在 ImageNet 上进行自监督学习,随后对未标记的特定领域医学图像进行额外的自监督学习,显著提高医学图像分类器的准确性。具体来说,结果表明自监督预训练优于监督预训练,即使在完整的 ImageNet 数据集(1400 万幅图像和 2.18 万个类别)用于监督预训练时也是如此。
分别使用域内未标记和标记数据对各项任务进行预训练和微调,还使用在不同临床环境中获得的另一个数据集作为偏移数据集,以进一步评估我们的方法对域外数据的稳健性。对于胸部 X 射线任务,使用 ImageNet 或 CheXpert 数据进行自监督预训练可以提高泛化能力,同时使用两者还可以进一步提高此能力。正如预期的那样,当仅使用 ImageNet 进行自监督预训练时,与仅使用域内数据进行预训练相比,该模型的表现更差。
为测试分布偏移下的表现,对于各项任务,额外提供在不同临床环境下收集的标记数据集以进行测试。发现使用自监督预训练(同时使用 ImageNet 和 CheXpert 数据)时,分布偏移数据集 (ChestX-ray14) 的表现有所提升,比 CheXpert 数据集的原始提升更为明显。这一发现颇具价值,因为分布偏移下的泛化能力对于临床应用至关重要。在皮肤病学任务中,我们观察到某一单独的偏移数据集具有类似趋势,该数据集收集自皮肤癌诊所,具有较高的恶性疾病发病率。这表明自监督表征对分布偏移的稳健性在不同任务间具有一致性。
用于胸部 X 射线解读任务的分布偏移数据集模型评估。我们在没有进一步微调(零样本迁移学习)的情况下,使用在域内数据上训练的模型对额外的偏移数据集进行预测。我们观察到,自监督预训练会产生更好的表征,对分布偏移更稳健
用于皮肤病学任务的分布偏移数据集模型评估。结果普遍表明,自监督预训练模型可以在分布偏移中得到更好的泛化,其中 MICLe 预训练对泛化能力的提升最为明显
通过在不同分数的标记训练数据上对模型进行微调,进一步研究了用于医学图像分类的自监督模型的标记效率。我们对 Derm 和 CheXpert 训练数据集使用 10% 到 90% 的标签分数,并使用皮肤病学任务的不同可用标签分数研究性能如何变化。使用自监督模型进行预训练可以弥补医学图像分类标签效率低下的情况,并且在采样的标签分数中,自监督模型表现始终优于监督基线。结果还表明,使用较少的标记示例进行微调时,MICLe 会按比例提升标签效率。事实上,MICLe 仅使用 20% 的 ResNet-50(4 倍)训练数据和 30% 的 ResNet152(2 倍)训练数据就能够与基线持平。
自动驾驶Corner Case 终结者
当自动驾驶汽车在行驶过程中,需要实时理解各种交通参与者的运动,这些运动状态信息对于各个技术模块来说都非常重要,涉及检测、跟踪、预测、规划等等。
自动驾驶汽车通常配有多个传感器,其中最常用的是激光雷达。因此,如何从点云中获得其他交通参与者的运动信息是一个重要课题,并且存在如下挑战:交通参与者的类别不一样,每个类别都表现出特定的运动行为:
激光雷达点云的稀疏性导致两次激光雷达扫描的情况不能精确地对应起来;
需要在很短的时间限制内和有限的车载算力下完成计算。
传统做法是通过识别场景中其它交通参与者
根据所观测到的历史信息,来预测交通场景会如何变化,从而实现预测。但是,大多数识别模型都是为检测若干已知类别的物体而训练的。在实际情况中,经常会遇上没出现过的物体类别。这肯定不是长久之计。
通过估计激光雷达点云每个点的3D运动来从点云中估计场景流
但这样做对计算的要求太高了,自动驾驶车又特别需要达到实时性,所以根本无法进行实际应用。
基于BEV(bird’s eye view)的方式
把激光雷达的点云画成一个个小网格,每个网格单元被称为体柱,点云的运动信息可以通过所有体柱的位移向量来描述,该位移向量描述了每个体柱在地面上的移动大小和方向。
这种表征方法成功简化了场景运动,反正只需要考虑在水平方向上的运动情况,而不用特别考虑垂直方向上的运动。这种方式的所有关键操作都可以通过2D卷积进行,计算速度非常快。但是,这种方式需要依靠大量带有标注的点云数据,但点云数据的标注成本比普通图像更高。
据统计,一辆自动驾驶汽车每天会产生超过1TB的数据,但仅有不到5%的数据被利用,若能把其他数据也充分利用起来,在没有手工标注的数据上来进行学习,那可就太高效了。
关于自监督学习的思考
1.理论原理
尽管自监督学习取得了很好的效果,但其背后的数学原理和理论基本并没有特别扎实,大多通过实验结果反推模型结构和策略的效果,可能造成很多研究走了弯路,从理论基础出发,直达最终目标的效果可能会更好。
2.替代任务的构建
当前替代任务的构建特别是视频方向,多与下游任务为主导,没有特定的范式或者规则。替代任务所能完成的任务,就是自监督模型能完成任务的边界。替代任务的五花八门,导致各类任务的千差万别,没有办法比较性能优劣,只能是单纯的网络在另一个任务上的应用,当前图片领域多基于多种数据增强方法构建替代任务,而视频领域也可以提出统一的构建方式。能够通过“半自动”方式做出来的替代任务少之又少,在各类的图像算法应用中,可能是影响自监督方法适应性的绊脚石。
3.能否构建直通下游任务的端到端学习
已经发现自监督中有明显的语义分割特征,在对比模型后端加入分割分支网络会不会对网络学习有帮助,抑或是直接训练得到可使用的分割网络,都是值得研究的问题。
4.除对比的其他形式构建特征提取网络
本质上,对比网络是除去常规网络之外,训练得到特征表示的一种方式而已,与前文提到的自编码器有异曲同工之妙。对比学习的成功在于,其训练得到的特征提取网络,在下游任务中表现优异,也是所提特征有效的表现。由此我们可以得到启发,还有没有其他的形式构建训练网络,也能够提取得到有效特征。相信新模式的提出肯定也会和对比学习一样,引领一波研究浪潮。
5.广阔天地,大有可为
自监督学习还处于探索阶段,有很多可以深入探究的部分,相信无论在学术界和工业界自监督学习都会有广泛的应用。作为深度学习中的一种魔法,还需要更多的人来挖掘其潜能,创造更多的神迹。
蓝海大脑超融合大数据一体机(融合计算、网络、存储、 GPU、虚拟化的一体机; 支持主流虚拟化平台如Vmware、Redhat、Microsoft Hyper-V 等;支持在线压缩、重复数据自动删除 、数据保护、容灾备份及双活等)自监督学习保驾护航,为自监督学习的发展提供了重要的后勤保障工作。
蓝海大脑 京ICP备18017748号-1