《A Few Words on Representation Learning》is from Thalles‘blog

本文翻译自Thalles的blog,有兴趣的可以看原文。

表征学习入门

Introduction

在过去的二十年中,人工智能 (Al) 领域发生了巨大的变化研究和工业应用方面的发展。逻辑回归和朴素贝叶斯等机器学习算法可以从一组特征中识别模式,并解决那些似乎无法通过将知识硬编码到专家系统中来解决的问题。这些浅层学习算法可以执行相对复杂的任务,例如产品推荐或学习区分垃圾邮件和非垃圾邮件。更有意思的是,

这些浅层机器学习算法的性能在很大程度上取决于它们作为输入接收的表征。

例如,如果我们决定使用朴素贝叶斯构建垃圾邮件检测器,将大量原始非结构化电子邮件数据传递给分类器将无济于事。相反,我们需要找到一种不同的方式来表示文本,然后再将其提供给分类器。值得注意的是,这种应用程序的一种常用文本表示是 bag-of-words 模型。这个想法是代表文本,以便轻松捕获每个单词的重要性。即,每个词的词频(图 1)表示一个词在文本中出现的次数,是一种流行的文本表示,可用于训练垃圾邮件过滤模型。
图 1:从一组文档中构建一个包含唯一单词集的字典,然后每个文档都表示为一个特征向量,其中包含计数(数量该文档中每个单词的次数)。
通过查看图 2,我们可以看到训练机器学习模型的良好表征的力量。在这个例子中,我们可能想要使用机器学习模型(例如逻辑回归)来找到线性分离,二维中的一条线,在蓝色和蓝色之间和绿色圆圈。然而,很容易看出学习线性的模型在这样的例子中不会成功,因为在当前的数据状态下无法使用一条线来分隔两个类。幸运的是,如果我们改变输入表示,而不是传递原始数据,而是传递值的平方幅度,我们将看到数据格局将完全改变,并且两组之间的线性分离在特征空间。的确,表征很重要。
图 2:表征对于逻辑回归等浅层机器学习模型很重要。一个简单的转换,例如对原始特征的值进行平方,可能是足以解决问题
然而,事先知道如何更改数据并不简单以这种方式表示,使得特征空间中的线性分离变得明显。不同的特征通常具有不同的属性,这些属性可能适合也可能不适合解决给定任务。以bag-of-words词频特征为例。这些特征关注文本中单词出现的次数,但丢弃语法和词序等信息。对于其他需要单词之间的语义关系的自然语言问题,语法和单词在文本中出现的顺序对于解决该特定任务可能至关重要。

这就是为什么手工设计特征的过程被认为是一个具有挑战性的问题。例如,假设我们想要构建一个汽车检测器。我们知道汽车有一些与其他物体不同的主要特征。这样的有人可能会争辩说,组件是轮子的存在。在这种情况下,要构建汽车分类器,我们需要有一种方法来表示各种类型汽车的车轮。这就是问题变得复杂的地方。毕竟,我们如何才能创建一个车轮检测器,它可以在所有类型的现有车轮中泛化,并且对如此多的光、形状和尺寸扭曲组合具有鲁棒性?

这就是深度神经网络发挥作用的地方。通过深度学习,我们不需要关心如何手动指定一个车轮检测器,这样它就可以对所有类型的现有车轮具有鲁棒性。相反,通过在分层模式中组合一系列线性和非线性变换,深度神经网络有能力通过组合简单概念来导出复杂结构来学习合适的表示。简而言之,经典的监督计算机视觉分类器会将原始数据作为输入,每一层迭代地细化前一层的特征。因此,第一层的神经元可以学习可以从高频输入中检测边缘和轮廓的程序,并且随着特征遍历层的层次结构,随后的神经元结合预先存在的知识来学习可以检测物体部分的更复杂的程序。最后,我们可以使用这些改进的表示并学习线性分类器将输入映射到一组有限类。
深度神经网络通过组合简单概念来学习表征,从而在分层管道中推导出复杂结构。每一层迭代地细化前一层的信息。最后,分类器将转换后的表示并在类之间绘制线性边界。
从这个角度来看,深度神经网络是表征学习模型。在高层次上,典型的监督神经网络有两个组件,(1) 编码器和 (2) 线性分类器。编码器转换输入数据并将其投影到不同的子空间。然后,低级表示(来自编码器)被传递给线性分类器,线性分类器绘制分隔类别的线性边界。

然而,表示学习不是通过将表示映射到目标来解决任务(经典分类器会这样做),而是旨在将表示映射到其他表示。这些学习到的表示通常是密集的、紧凑的,并且可以泛化到类似的数据模式。换句话说,这些表示可以很好地迁移到其他任务,并且已经成为解决难以甚至不可能获得数据注释的问题的主要方法。

The Story so Far

近年来,监督学习一直是训练深度神经网络的领先且成功的秘诀。大型且最重要的带注释数据集(如 ImageNet)的可用性使研究人员能够训练深度神经网络模型并根据概念层次结构学习表示。这些表示不仅解决了手头的任务,在这种情况下是图像分类,而且由于它们的泛化特性,它们还可以用作学习不同下游任务的良好起点,例如目标检测、分割、姿态估计等.。

方法很简单,使用大量带注释的视觉语料库,训练卷积神经网络,然后将其知识转移到解决通常没有足够标签来从头训练深度网络的第二个任务。这个概念,叫做转移学习,已成功用于许多不同领域以解决大量任务,并已在商业应用中得到广泛使用。
图 4:到目前为止的故事涉及注释数据、计算能力和非常深的神经网络。通过这种组合,几乎可以解决任何模式匹配问题。在换句话说,我们不受算法的限制。我们受到可以收集多少精选数据的限制。
扩展此方法的主要限制因素在于获取带注释的数据。有一个想法,ImageNet 数据集,它是 Computer 中的标准数据集视觉研究人员,包含 1400 万张图像和大约 2200 万个概念。然而,如果我们将 ImageNet 与所有可用的互联网图像集进行比较,ImageNet 下降了大约五个数量级。
在这里插入图片描述
此外,如果我们看一下计算机视觉数据集的格局,根据手头的任务,可用的带注释样本的数量会急剧减少。假设我们只考虑最流行的计算机视觉任务,例如对象分类、检测和分割(图 5)。在这种情况下,作为预测水平变得更加复杂(从整个图像标签到像素级注释),标记示例的数量大幅减少(图 6)。这就是为什么大多数对象检测和分割的解决方案总是以 ImageNet 预训练网络作为优化的起点。
图 6:收集和注释数据的价格反映在可用数据集的大小上。随着注释级别的增加,从图像级别的标签到注释级别像素级,可用的精选数据集的大小急剧减少。
然而,对于领域发生重大变化的问题,ImageNet 预训练模型可能不是理想的解决方案。医疗保健中的许多应用可能就是这种情况,例如乳腺癌的分类和检测整个幻灯片图像中的转移。在此类应用程序中,与原始非注释数据集相比,精选的注释样本集是最小的。注释此类记录的过程通常需要数小时的专业病理学家,他们需要多年的培训才能执行此类工作——在这种情况下,注释大型数据集变得非常昂贵和耗时。
图 7:对于许多医疗保健应用程序,使用基于 ImageNet 的预训练模型可能不是答案。
此外,人类注释数据的速度无法扩展到我们生成的数据量。换句话说,如果我们事先不知道要优化的任务,准备一个相当大的深度学习训练所需要的监督数据集可能会非常复杂和昂贵。

所有这些例子都强调了从非注释数据中学习可概括表示的重要性。许多研究领域,包括半监督、弱监督监督学习,以及最近的自我监督学习,尝试学习可以仅使用几个或根本不使用带注释的示例就可以转移到新任务的表示。

半监督学习旨在结合具有一些注释的好处使用更大的非注释示例数据集进行观察。另一方面,弱监督学习探索大量嘈杂的,而且大多数时候,不精确的标签作为监督信号。最后,自监督学习就是在没有明确监督信号的情况下学习世界的良好模型。它涉及解决从数据或其属性中派生出注释的借口任务。通过优化这些借口任务,网络可以学习到有用的表示,这些表示可以很容易地转移到以数据有效的方式学习下游任务。

Deep Unsupervised Representation Learning

到目前为止,我们一直在讨论深度神经网络如何通过解决监督任务来学习可泛化的表征。一般来说,我们可以利用神经网络从任务 A(使用大量注释数据训练)中获得的知识,并应用该知识来学习单独的任务 B(通常很少注释)。这里的问题是,我们仍然首先依赖大量带注释的数据来学习表征。此外,根据任务的性质,注释数据可能非常困难甚至不可能完成。但是,如果我们可以通过以无监督(无标签)方式学习任务来学习同样好的(甚至更好)表示呢?

深度无监督表示学习旨在从未标记的数据中学习一组丰富的有用特征。希望这些陈述将改善许多下游任务的性能,并减少每次我们寻求学习新任务时人工注释的必要性。具体来说,在计算机视觉 (CV) 中,无监督表示学习是最重要的、长期存在的问题之一,对全球许多研究人员构成了重大挑战。作为计算能力越来越强,并且数据继续通过多个传感器无处不在地捕获,因此需要创建能够以无标签方式从原始数据中提取更丰富模式的算法。

近年来,由于自然语言处理 (NLP) 领域的最新突破,深度无监督表征学习备受关注。这BERT 和 GPT 这两种基于深度学习的模型在其训练管道中不需要手动注释,它们的成功激发了新一代进入计算机视觉应用程序的算法。更具体地说,最近发展起来的自我监督学习领域利用了编码在数据中的监督是 CV 和 NLP 应用的无监督表示学习最新成功背后的主要驱动力。

让我们以来自 Transformers 或 BERT 的双向编码器表示为例。BERT 是一种深度无监督语言表示模型,可以学习来自非结构化文本的上下文表示。 word2vec 和 GloVe 等上下文无关模型在不考虑单词出现的上下文的情况下学习词嵌入。这是一个限制,因为很多单词根据使用的上下文表达不同的含义。例如,像"银行"这样的词可能会出现在与金融相关的语境中,例如"银行账户",或者它可能被用来描述河流的边缘。不同的是,BERT 根据单词出现的上下文学习表示。因此,BERT 能够学习更丰富的语义表示,这些表示根据上下文捕获单词的不同含义。

此外,BERT 通过解决一种不需要手动注释数据的特定类型的自监督任务进行了优化。即,在训练期间,一定百分比的在通过 Transformer 编码器之前,随机选择的标记从输入句子中被屏蔽。编码器将输入句子映射到一系列嵌入向量(句子中的每个单词一个)。这些向量随后通过计算整个词汇表概率的softmax 层,以便最有可能的词有更高的机会被选中。换句话说,这是一个填补空白的任务,其中 BERT 旨在从部分可用的上下文中重建损坏的输入信号。

对于语言模型,解决方案空间是离散的,屏蔽输入并从上下文中重建它的任务是背后的关键原因之一BERT 的成功。
这个特殊的任务被称为掩码自动编码器,它已经被证明在我们有一个离散概率空间的情况下工作得很好。

尽管如此,像 BERT 这样的系统最重要的特征是,在训练之后,我们可以在没有太多可用训练数据的不同下游任务上微调BERT 参数,我们将获得相当大的准确性与从头开始训练系统相比的改进。这一点特别重要,因为数据注释是深度神经网络训练中的一个重要瓶颈。

Clustering and Self-supervised Learning

多年来,聚类技术一直是从非注释数据中学习结构的主要方法。经典方法,例如K-Means,优化距离度量作为代理来围绕共同的相似概念(例如图像)分组质心。最近的方法,例如 Caron 等人提出的用于视觉特征无监督学习的深度聚类。和 Li 等人的无监督表示的原型对比学习。已经尝试将聚类与深度神经网络相结合,作为一种以无监督方式从非结构化数据中学习良好表示的方法。这些结果表明,将聚类方法与自监督借口任务相结合是一项突出的技术。

另一方面,自监督学习是一种无监督学习方法,它关注从未标记的数据中学习语义上有意义的特征。自我监督学习的第一种方法是设计一项预测任务,该任务只能通过探索数据中存在的特征来解决。该子任务或借口任务充当代理,使网络学习有用的表示,这些表示可用于简化学习不同下游任务的过程。

虽然经典的无监督方法在训练期间不使用任何标签,但大多数建议的借口任务使用与经典相同的框架和损失函数监督学习算法。因此,自监督借口任务也需要标签进行优化。然而,用于优化这些借口任务的标签(或伪标签)仅来自数据或其属性。

图 9:旋转预测是探索数据特征以设计监督信号的预测任务的一个示例。
一般来说,自我监督的借口任务包括取出数据的某些部分并挑战网络以预测缺失的部分。它可以是根据先前的上下文预测句子中的下一个单词,也可以根据先前的上下文预测视频的下一帧。事实上,这种借口任务在 NLP 应用中取得了巨大的成功,主要是因为文本数据是离散的。于是天真地将这些相同的概念应用于 CV 应用程序很困难,因为图像是连续的,使得可能的解决方案空间更加复杂。
图 10:尽管图像修复方法产生了相当连贯的结果,但这些模型学习到的表示仍然不足以与竞争对手的表示相媲美以监督的方式学习。
此外,创建自我监督的借口任务可能类似于为分类器手工设计特征的过程。目前尚不清楚哪些借口任务有效以及它们为何有效。然而,最近的自我监督学习方法已经偏离了一种通用方法,该方法涉及一种实例歧视借口任务与基于对比的损失函数相结合。

一般的想法是通过近似相似的概念同时推开不同的概念来学习表征。在撰写本文时,对比学习方法在无监督表征学习中保持着最先进的性能。事实上,有监督和无监督预训练之间的差距从来没有那么小,对于一些人来说在下游任务中,使用自监督技术对编码器进行预训练已经优于监督训练。

本文翻译自Thalles的blog,有兴趣的可以看原文。

学习记录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值