监督学习
机器学习
集成学习
进化计算
非监督学习
半监督学习
自监督学习
无监督学习
随着人工智能、元宇宙、数据安全、可信隐私用计算、大数据等领域的快速发展,自监督学习脱颖而出,致力于解决数据中心、云计算、人工智能和边缘计算等各个行业的问题,为人们带来极大便益。
自监督学习是什么?自监督学习与监督学习和非监督学习的关系
自我监督方法可以看作是一种特殊形式的具有监督形式的非监督学习方法,其中监督是通过自我监督任务而不是预设的先验知识诱发的。与完全不受监督的设置相比,自监督学习利用数据集本身的信息构造伪标签。在表达学习中,自我监督学习有很大的潜力取代完全监督学习。人类学习的本质告诉我们,大型标注数据集可能不是必需的,我们可以自发地从未标注的数据集中学习。更为现实的设置是使用少量带注释的数据进行自我学习。这就是所谓的Few-shotLearning。
自监督学习的主要流派
在自监督学习中,如何自动获取伪标签非常重要。根据伪标签的不同类型,将自监督表示学习方法分为四种类型:
基于数据生成(恢复)的任务
基于数据变换的任务
基于多模态的任务
基于辅助信息的任务
简单介绍一下 类任务。事实上,所有非监督方法都可以被视为 类自监督任务。在文献研究的过程中,非监督学习和自监督学习根本不存在界限。
所有非监督学习方法,如数据降维(PCA:在减少数据维度的同时 化的保留原有数据的方差)和数据拟合分类(GMM: 化高斯混合分布的似然),本质上都是为了得到一个好的数据表示,并希望能生成(恢复)原始输入。这也是目前很多自监督学习方法赖以使用的监督信息。基本上,所有的encoder-decoder模型都将数据恢复视为训练损失。
图片上色与视频预测什么是基于数据恢复的自监督任务?
一.数据生成任务
自监督学习的出发点是考虑在缺少标签或者完全没有标签的情况下,我们仍然可以学习到能够表示原始图片的良好意义的特征。那么什么样的特质是良好有意义的呢?在 类自监督任务——数据恢复任务中,能够通过学习到的特征来还原生成原始数据的特征是有良好意义的。看到这里,大家都能联想到自动编码器类的模型,甚至更简单的PCA。事实上,几乎所有的非监督学习方法都是基于这个原理。VAE现在非常流行的深代模式,甚至更热的GAN都可以归为这种方法。
GAN的核心是通过Discriminator去缩小Generatordistribution和realdistribution之间的距离。GAN的学习过程不需要人为进行数据标注,其监督信号也即是优化目标就是使得上述对抗过程趋向平稳。
以两篇具体的paper为例,介绍数据恢复类的自监督任务如何操作实现。我们的重点依然是视觉问题,这里分别介绍一篇图片上色的文章和一篇视频预测的文章。其余的领域比如NLP,其本质是类似的,在弄清楚了数据本身的特点之后,可以先做一些低级的照猫画虎的工作。
图片颜色恢复
设计自监督任务时,需要一些巧妙的思考。比如图片的色彩恢复任务,我们现有的数据集是一张张的彩色图片。如果去掉颜色,作为感性思考者的我们,能否从黑白图片所显示的内容中猜测出原始图片的真实颜色?对于一个婴儿来说可能很难,但是对于我们来说,生活的经验告诉我们瓢虫应该是红色的。我们如何做预测?事实上,通过观察大量的瓢虫,已经在大脑中建立了一个从“瓢虫”到“红色”的映射。
这个学习过程扩展到模型。给定黑白输入,使用正确颜色的原始图像作为学习标签,模型将尝试理解原始黑白图像中的每个区域是什么,然后建立从什么到不同颜色的映射。
当我们完成训练,模型的中间层featuremap就得到以向量形式的类似人脑对于“瓢虫”以及其他物体的记忆。
视频预测
一般来说,视觉问题可以分为两类:图片和视频。图片数据可以认为具有i.i.d特征,而视频由多个图片帧组成,可以认为具有一定的Markovdependency。时序关系是他们 的区别。比如,最简单的思路是利用CNN提取单个图片的特征进行图像分类,然后加入一个RNN或LSTM刻画MarkovDependency,便可以应用到视频中。
视频中帧与帧之间有时空连续性。同样,利用帧与帧之间的连续性,当看电影的时突然按下暂停,接下来几秒钟会发生什么,其实是可以预见的。
同样,这个学习过程也扩展到了模型中。给定前一帧或前几帧的情况下,使用后续的视频帧作为学习标签,从而模型会试着理解给定视频帧中的语义信息(发生了啥?)进而去建立从当前到未来的映射关系。
二.基于数据变换的任务
事实上,人们现在常常提到的自监督学习通常指的是:这一类自监督任务是比较狭义的概念。
用一句话说明这一类任务,事实上原理很简单。对于样本,我们对其做任意变换,则自监督任务的目标是能够对生成的估计出其变换的参数。
下面介绍一种原理十分简单但是目前看来非常有效的自监督任务——RotationPrediction。
给定输入图片,我们对其做4个角度的旋转,分别得到,并且我们知道其对应的变换角度分别为。此时,任务目标即是对于以上4张图片预测其对应的旋转角度,这里每张图片都经过同样的卷积神经网。
自监督学习中对比学习方法对比学习是自监督学习中的一个重要方法,其核心思想是通过样本的相似性来构建表征。对于相似的输入样本,由网络产生的表征也应当相似;而对于差异较大的输入样本,表征也应该存在较大区别。根据这一思想,很多基于对比学习的自监督学习方法被提出(如MoCo、SimCLR、BYOL),并对这一领域产生了深远影响。
对比学习中的一个关键步骤是构建正负样本集合,对于一个输入样本,如何找到与其相似的正样本,和不相似的负样本?在基于图像的自监督任务中,一般通过数据增强(dataaugmentation)来对单张图片构建不同视图,这些视图的图像内容高度一致,被视为正样本;而数据集中的其他图片则直接被视为负样本。
同一张猫咪图片经过剪裁得到的另一视图被视作正样本,正样本与原图经过神经网络编码得到的表征应该相似;而数据集中的其余图片被视为负样本,经网络编码后的结果应当差异较大。
完成正负样本的构建后,对比学习一般采用InfoNCELoss来进行损失计算和模型更新,其形式如下:
其中表示训练模型对输入样本的编码过程。InfoNCELoss约束模型对当前样本的编码结果和对正样本的编码结果的内积较大,而和负样本的编码结果的内积较小,可以看作是从样本集合中判别出与之匹配的正样本。
一.MoCo
MoCo是对比学习中一个非常有代表性的方法,其主要思想是将对比学习过程看作一个“查字典”的过程:在一个由众多样本构成的键值(key)字典中检索到与查询样本的编码结果(query)相匹配的正样本。为了提升对比学习的效果,提出两点假设:
一.键值字典的容量应该尽可能增大以提高自监督任务的难度,从而提升训练效果;
二.键值字典应该在训练过程中保持一定程度的一致性以保障自监督学习过程能够稳定进行。
基于以上两点假设,分析了几种对比学习机制。
1端到端训练
即对于所有的查询样本的编码结果(query)和字典键值(key)同时进行梯度传播,但这一方法中显存大小会极大地限制键值字典的大小,导致自监督任务难度降低,影响训练效果;
2.基于memorybank的训练方法
迭代过程中将键值编码存储到一个memorybank中,每轮对比学习过程中所需要的字典键值直接从memorybank里选取,而梯度计算只对查询样本的编码网络分支进行。因为MoCo不需要对键值字典的分支进行梯度计算,memorybank方法可以显著提升键值字典的容量,但是由于每个样本在memorybank中的键值在被模型重新编码时才会被更新,键值字典中键值间的一致性较差,从而降低了训练的稳定性。
因此,提出一种momentumencoder来实现对键值字典的编码。对于查询样本,使用普通encoder进行编码并直接进行梯度计算;而对于键值字典,首先由一个动态更新的队列维护字典的输入样本,再使用momentumencoder将样本编码为键值。Momentumencoder在训练过程中不会进行梯度计算,而是采用动量更新的方法从encoder更新参数,更新方法如下:
,
其中,和分别表示queryencoder和keymomentumencoder的参数,,表示动量参数以调节更新速率。这样的方法一方面可以避免keyencoder在训练时因需要计算梯度使字典大小被限制,也可以避免memorybank方法中的键值低一致性问题,保障了训练的稳定性。
值得一提的是,在实验过程中发现传统的batchnormalization方法可能造成样本信息的泄露,让数据样本意外地“看到了”其他样本。会使模型在自监督任务中更倾向于选择一个合适的batchnormalization参数,而不是学习一个比较好的特征表示。
二.SimCLR
SimCLR是一个非常简洁的自监督学习框架。没有建立类似MoCo的键值字典的方式,而是直接在每个batch中的样本之间进行比较学习。对于个输入数据,先使用两种不同的数据增强方法产生个样本;对于每个样本来说,从同一输入图片中产生另一样本被视为正样本,其余个样本被视为负样本。构建完正负样本后,SimCLR直接使用端到端的方法计算loss并更新模型。
网络结构上,与MoCo相比,SimCLR在backbone网络末端新增了一个由两层全连接层构成的projectionhead。模型在训练阶段,根据projectionhead的输出计算损失函数;而在迁移到下游任务时,会将projectionhead移除,直接使用backbone部分网络输出的表征。
三.BYOL
BYOL是一个非常有特点的模型,与MoCo、SimCLR相比,BYOL可以直接在正样本对上进行自监督训练而不需要构建负样本集合。BYOL的构想来自于一个非常有意思的发现:在一个完全随机初始化的网络所输出的特征上进行分类任务的top-1准确率只有1.4%;
但如果将这个随机初始化网络的输出特征作为目标,用另一个网络对其进行学习,使用学习之后的网络进行特征提取再进行分类可以达到18.8%的准确度。换言之,以一个特征表示作为目标进行学习,可以获得一个更好的表示。如此继续迭代下去,精确度可以继续往上提升。
基于这一发现,构建了只需要正样本对的BYOL学习框架。如图,一张输入图片经过不同数据增强后的两个视图分别经过online和target两个分支的backbone和projectionhead后得到输出和,再使用一个predictionhead从预测。计算损失时使用了MSEloss,且只对online分支计算梯度和更新参数;对于target分支使用类似MoCo动量更新的方式从online分支更新参数。
自监督学习中的聚类方法与对比学习或者人工设置的前置任务(pretexttask)的学习方式不同,基于聚类的自监督方法将训练样本按照某种相似度量进行划分,划归到不同聚类中心的样本被赋予不同的类别标签,之后使用标准的全监督学习交叉熵损失进行训练。用数学语言形式化的展示了全监督学习与自监督聚类之间的联系与区别:考虑深度模型将图像映射为特征,全监督学习使用包含完全标注的样本-标签数据来优化模型。
具体来讲,假设有N个样本,相应的类别标签为,,一个分类头将深度模型的维输出向量映射到维(每一维对应一个类别的得分)并使用softmax操作将每个类别的得分转化为类别概率值。由于交叉熵损失需要给出目标的类别标签(标注数据集),对于无标注数据,需要首先通过某种分配方式赋予每个样本具有一定意义的标签然后才能进行训练。
一般而言,我们令为one-hot函数,即每一个样本我们限定其只能属于某一类,那么上述公式可以写成一个双层优化问题:
步,根据深度模型输出调整标签分配方式,得到当前特征下损失函数最小的标签;
第二步,根据更新的标签训练深度模型。
给所有的样本赋予相同标签之后优化模型参数就可以最小化平均损失函数。此时,模型将所有样本均映射到特征空间中的同一位置附近,不同样本之间的特征区分度变得微弱,模型性能严重退化,不能达到学习出有意义特征表示的目的。因此,基于聚类的自监督学习方法关键在于引入适当的约束条件,避免模型收敛到退化解。
自监督学习推动医学图像分类发展随着自监督学习在放射学、病理学和皮肤病学等诸多应用领域取得令人振奋的成果,人们对自监督学习在医学成像任务中的应用越来越感兴趣。尽管如此,开发医学成像模型仍然颇具挑战,这是由于标注医学图像极为耗时,高质量标记数据通常较为稀缺。
鉴于此,迁移学习(Transferlearning)成为构建医学成像模型的热门范例。这种方法首先要在大型标记数据集(如ImageNet)中使用监督学习(Supervisedlearning)对模型进行预训练,然后在域内医学数据中对习得的通用表征进行微调。
近来一些新的方法在自然图像识别任务中取得了成功,尤其是在标记示例稀少的情况下,这些方法使用自监督对比预训练,然后进行监督微调(例如SimCLR和MoCo)。在对比学习预训练中,模型将同一图像的不同转换视图间的一致性升至 ,同时将不同图像的转换视图间的一致性降至 ,从而习得通用表征。尽管这些对比学习方法取得成功,但在医学图像分析中受到的
转载请注明:http://www.0431gb208.com/sjsbszl/2711.html