当前位置: 首页 > 科技观察

从自动编码器到生成对抗网络:无监督学习研究现状概述

时间:2023-03-18 19:16:13 科技观察

无监督学习是深度学习的圣杯。它的目的是能够用非常少量的不需要标记的数据训练一个通用系统。本文将从无监督学习的基本概念入手,进一步简要描述无监督学习的各种基本算法及其优缺点。今天的深度学习模型需要在大规模监督数据集上进行训练。这意味着对于每一条数据,都会有一个对应的标签。在流行的ImageNet数据集中,有100万张人工注释图像,或者说1000个类别中每个类别都有1000张。创建这样的数据集需要大量的工作,可能需要很多人花费数月的时间才能完成。假设现在要创建一个百万类别的数据集,那么一亿帧视频数据集中的每一帧都必须进行标注,这基本上是不可能实现的。现在,回想一下你很小的时候是如何被教导的。是的,我们确实有一些监督,但是一旦你的父母告诉你这是一只“猫”,他们不会在他们的余生中每次观察猫时都告诉你它是一只“猫”!今天的监督学习是这样工作的:我一遍又一遍地告诉你“猫”长什么样子,也许一百万次。然后你的深度学习模型会了解猫。理想情况下,我们希望拥有一个更像我们大脑一样工作的模型。它只需要几个标签就可以理解现实世界中的多种事物。在现实世界中,我所说的类是指对象类、动作类、环境类、对象部分类等等。正如您将在这篇评论中看到的,最成功的模型是那些可以预测视频中即将发生的场景的模型。许多这些技术面临并试图解决的一个问题是,为了获得良好的全局性能,训练需要在视频上进行,而不是在静态图像上进行。这是将学习到的表示应用于实际任务的唯一方法。1.基本概念无监督学习研究的主要目标是预训练可用于其他任务的模型(即鉴别器或编码器)。编码器的特征应该尽可能通用,以便它可以用于分类任务(如在ImageNet上训练)并为监督模型提供尽可能好的结果。最先进的监督模型总是比无监督的预训练模型表现更好。这是因为监督将使模型能够更好地编码数据集上的特征。但是当模型应用于其他数据集时,监督会衰减。在这方面,无监督训练有望提供更通用的特征来执行任何任务。如果针对实时提取中的自动驾驶、动作识别、对象检测和识别等现实生活应用,则需要在视频上训练算法。2.加州大学戴维斯分校的BrunoOlshausen和康奈尔大学的DavidField于1996年发表的论文《Sparse Coding with an Overcomplete Basis Set: A Strategy by V1?》(论文链接:http://redwood.psych.cornell.edu/papers/olshausen_field_1997.pdf)表明编码理论可以是用于视觉皮层的感受野。他们证明了我们大脑中的基本视觉漩涡(V1)使用稀疏性原理来创建可用于重建输入图像的最小基本特征集。下面的链接是2014年伦敦MicrosoftBing团队的PiotrMirowski对自动编码器的一个很好的概述。链接:https://piotrmirowski.files.wordpress.com/2014/03/piotrmirowski_2014_reviewautoencoders.pdfYannLeCun的小组也在工作这个领域。在链接页面的演示中,您可以看到如何学习类似V1的过滤器。(链接:http://www.cs.nyu.edu/~yann/research/deep/)通过重复贪婪的逐层训练过程,还使用了Stacked-auto编码器。自动编码器方法也称为直接映射方法。Autoencoders/SparseCoding/StackedAutoencoding的优点和缺点优点:简单技术:重构输入多层可以堆叠直观和基于神经科学的研究缺点每层都贪婪地训练没有全局优化比无监督学习性能多层故障重构输入可能不会是通用目标表示的理想指标3.聚类学习这是一种使用k均值聚类在多层中学习过滤器的技术。我们小组将这种技术命名为:集群学习(参见论文:机器人视觉的集群学习)、集群连接(参见论文:深度神经网络层之间连接的分析)和卷积聚类(参见论文:无监督学习的卷积聚类).就在最近,这项技术在流行的无监督学习数据集STL-10上取得了非常好的结果。我们在该领域的研究独立于AdamCoates和AndrewNg在LearningFeatureRepresentationswithK-means中发表的作品。RestrictedBoltzmannMachines(RBMs)、DeepBoltzmannMachines(DBMs)、DeepBeliefNetworks(DBNs/参见GeoffreyE.Hinton等人的研究:AFastlearningalgorithmfordeepbeliefnet)等模型一直难以训练。因此,它们没有广泛用于解决问题。聚类学习的优点和缺点:优点:技术简单:获得相似的输出簇多层可堆叠直观和基于神经科学的研究缺点:每一层都贪婪地训练没有全局优化可以在某些情况下进行监督学习的性能可与多层相媲美-层增量失败==性能回报递减4.生成对抗网络模型生成对抗网络试图通过判别器和生成器之间的对抗来获得一个优秀的生成模型。网络希望生成足以愚弄鉴别器设备的逼真图像。在生成模型领域,近年优秀的生成对抗网络是由IanGoodfellow和YoshuaBengio在论文《Generative Adversarial Nets》中提出的。这里还有OpenAI研究员Ian在2016年底做的生成对抗网络(GANS)的总结,视频链接:https://channel9.msdn.com/Events/Neural-Information-Processing-Systems-Conference/Neural-信息-Processing-Systems-Conference-NIPS-2016/Generative-Adversarial-Networks。由AlecRadford、LukeMetz和SoumithChintala实例化的名为DCGAN的生成对抗模型取得了非常好的结果。他们的研究发表在论文中:UnsupervisedRepresentationLearningwithDeepConvolutionalGenerativeAdversarialNetworks。VincentDumoulin和IshmaelBelghazi等人。对这个模型做了更好的解释(链接:https://ishmaelbelghazi.github.io/ALI/)。DCGAN鉴别器旨在判断输入图像是真实的(来自数据集的真实图像)还是假的(来自生成器)。生成器将随机噪声向量(例如1024个值)作为输入并生成图像。在DCGAN中,生成器网络如下:而鉴别器是一个标准的神经网络。具体细节可以参考下面提到的代码。关键是在不完全过度拟合的情况下并行训练两个网络,从而复制数据集。学习到的特征需要泛化到未知样本,所以学习数据集不会有用。还提供了在Torch7上训练DCGAN的代码(https://github.com/soumith/dcgan.torch)。这需要大量的实验,YannLeCun在Facebook上也有分享:https://www.facebook.com/yann.lecun/posts/10153269667222143生成器和判别器都训练好之后,就可以同时使用By了。主要目标是训练可用于其他任务的鉴别器网络,例如对其他数据集进行分类。生成器可用于从随机向量生成图像。这些图像具有非常有趣的特性。首先,它们提供从输入空间的平滑转换。下图示例展示了通过9个随机输入向量移动生成的图像:输入向量空间还提供了数学性质,证明学习到的特征是根据相似性组织的,如下图所示:生成器学习平滑的空间启发的判别器具有相似的属性,使得判别器在编码图像时成为一个很好的通用特征提取器。这有助于解决CNN在对不连续图像进行训练时无法抗噪的问题(请参阅ChristianSzegedy等人《Intriguing properties of neural networks》,https://arxiv.org/abs/1312.6199)。GAN的最新进展在仅1000个标签样本的CIFAR-10数据集上实现了21%的错误率。请参阅TimSalimans等人的论文《Improved Techniques for Training GANs》。OpenAI,论文链接:https://arxiv.org/pdf/1606.03498v1.pdf。在最近关于infoGAN的论文《InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets》(链接:https://arxiv.org/abs/1606.03657)中,可以生成特征非常清晰的图像,并且这些图像具有更有趣的含义。但是,他们并没有公布学习到的特征在某个任务或某个数据集中的性能对比。博客和网站中也有对生成对抗模型的总结,见OpenAI的技术博客https://blog.openai.com/generative-models/和网页https://code.facebook.com/posts/1587249151575490/通过对抗网络进行无监督学习的路径/。接下来是另一个非常有趣的例子,作者使用生成对抗训练来学习从文本描述中生成图像。见论文《Generative Adversarial Text to Image Synthesis》,链接:https://arxiv.org/abs/1605.05396。我对这项工作最欣赏的是,它使用的网络使用文本描述作为生成器的输入,而不是随机向量,因此可以精确控制生成器的输出。网络模型结构如下图所示:生成对抗模型的优缺点优点:整个网络的全局训练,易于编程和实现缺点:难以训练和迁移问题在某些情况下可以匹配监督学习性能需要提高可用性(这是所有无监督学习算法面临的问题)5.可以从数据中学习的模型通过设计不需要标签的无监督学习任务和旨在解决这些任务的学习算法,这些模型直接从未标记的数据中学习数据。学习。通过解决拼图游戏在视觉表示中进行无监督学习确实是一个聪明的技巧。作者将图像分割成谜题,并训练一个深度网络来解决这个谜题。由此产生的网络表现良好,足以匹配最好的预训练网络。详见论文《Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles》,链接:https://arxiv.org/abs/1603.09246通过视觉表示中的图像块和布局进行无监督学习也是一个聪明的技巧。他们让同一图像上的两个补丁间隔很近。这些补丁在统计上是相同的对象。第三个补丁选择随机图像并将它们放置在随机位置,在统计上与前两个补丁不是同一类型的对象。然后训练一个深度网络来区分属于同一类的两个补丁和另一个不同类的补丁。由此产生的网络具有与性能最高的微调网络之一相同的性能。详情见论文《Learning visual groups from co-occurrences in space and time》,链接:https://arxiv.org/abs/1511.06811。立体图像重建的无监督学习模型将立体图像作为输入,例如图像的左半部分,并重建图像的右半部分。虽然这项工作不是针对无监督学习,但它可以用于无监督学习。这种方法也可用于从静止图像生成3D电影。参见论文《Deep3D: Fully Automatic 2D-to-3D Video Conversion with Deep Convolutional Neural Networks》,链接:https://arxiv.org/abs/1604.03650,github上的Python源代码:https://github.com/piiswrong/deep3d。具有代理类的视觉表示的无监督学习使用图像来创建非常大的代理类。然后对这些图像块进行扩充,然后用于训练基于扩充代理类的监督网络。这在无监督特征学习中给出了最好的结果。详情见论文《Discriminative Unsupervised Feature Learning with Exemplar Convolutional Neural Networks》,链接:https://arxiv.org/abs/1406.6909。使用视频的视觉表示的无监督学习采用基于LSTM的编码器-解码器对。编码LSTM在视频帧序列上运行以生成内部表示。这些表示然后由另一个LSTM解码以生成目标序列。为了使其成为无监督的,一种方法是预测与输入相同的序列。另一种方法是预测未来的帧。详情见论文《Unsupervised Learning of Visual Representations using Videos》,链接:https://arxiv.org/abs/1505.00687。另一篇使用视频的论文是由麻省理工学院的Vondrick和Torralba等人撰写的。(http://arxiv.org/abs/1504.08023),结果非常引人注目。这项工作背后的想法是预测来自视频输入的未来帧的表示。这是一种优雅的方法。使用的模型如下:该技术的一个问题是使用在静止图像帧上训练的神经网络来解释视频输入。该网络不学习视频的时间动态和物体在空间中移动的平滑变换。所以我们认为这个网络不适合预测未来视频中的画面。为了克服这个问题,我们的团队创建了一个大型视频数据集eVDS(https://engineering.purdue.edu/elab/eVDS/),可用于直接从视频数据训练新的(递归和反馈)网络模型。6.PredNetPredNet是一个旨在预测视频中未来帧的网络。一些示例可以在这篇博客中看到,博客链接:https://coxlab.github.io/prednet/。PredNet是一种非常智能的神经网络,在我们看来,它将在未来的神经网络中发挥重要作用。PredNet在受监督的CNN中学习单帧图像以外的神经表征。PredNet结合了受生物学启发的双向[人脑模型](参见论文《Unsupervised Pixel-prediction》,https://papers.nips.cc/paper/1083-unsupervised-pixel-prediction.pdf)。它使用了[PredictiveEncodingandFeedbackConnectionsinNeuralModels](详见论文《Neural Encoding and Decoding with Deep Learning for Dynamic Natural Vision》,http://arxiv.org/abs/1608.03425)。下面是PredNet模型和一个有两个堆叠层的例子:PredNet结合了受生物学启发的双向人脑模型该模型具有以下优点:可以使用未标记的数据进行训练每层中嵌入的损失函数对计算误差具有在线执行的能力learning,通过监控误差信号,当模型无法预测输出时,它会知道它需要学习误差信号。PredNet的一个问题是第一层中的一些简单的基于运动的过滤器不是。换句话说,预测未来的输入帧相对容易。在我们对PredNet的实验中,PredNet在重建输入帧时学会了在重建输入帧方面取得良好的效果,但是更高的层没有学习到更好的表示。事实上,在实验中,更高层甚至无法解决简单的分类任务。事实上,预测未来的帧是不必要的。我们想要做的就是预测下一帧的表示,就像CarlVondrick所做的那样。详情见论文《Anticipating Visual Representations from Unlabeled Video》,链接:https://arxiv.org/abs/1504.08023。7.通过观察物体的运动来学习特征最近的一篇论文通过观察视频中物体的运动来训练无监督模型(《Learning Features by Watching Objects Move》,https://people.eecs.berkeley.edu/~pathak/unsupervised_video/)。运动以光流的形式提取,并用作运动物体的分割模板。尽管光流信号没有提供任何接近良好分割模板的东西,但对大型数据集进行平均可以使最终网络表现良好。下面是一个例子:这项工作非常令人兴奋,因为它遵循了人类视觉皮层如何学习分割运动物体的神经学理论。见论文《Development of human visual function》,链接:http://www.sciencedirect.com/science/article/pii/S004269891100068X。未来需要你去创造未来。无监督训练仍然是一个欠发达的话题,您可以通过以下方式做出重大贡献:创建一个新的无监督任务来训练网络,例如解决谜题、比较图像块、生成图像等......想出创造酷无监督能力的任务,例如理解什么是物体以及什么是立体图像和视频中的背景,就像我们人类视觉系统的工作方式一样.这篇文章的作者是EugenioCulurciello,他是e-Lab的研究员,专注于机器人和视觉研究。原文:https://medium.com/intuitionmachine/navigating-the-unsupervised-learning-landscape-951bd5842df9【本文为专栏机器心原创翻译,微信公众号《机器心(id:almosthuman2014)》】点此阅读该作者更多好文