参与:Nurhachu、蒋思源、吴攀 无监督学习是深度学习的圣杯。它的目的是希望能够用极少量且不需要标注的数据训练通用系统。本文将从无监督学习的基本概念开始再进一步简述无监督学习的各个基础算法及其优缺点。本文作者为专注机器人与视觉研究的 e-Lab 的研究者 Eugenio Culurciello。 如今深度学习模型都需要在大规模的监督数据集上训练。这意味着对于每一个数据,都会有一个与之对应的标签。在很流行的 ImageNet 数据集中,atv,其共有一百万张带人工标注的图片,即 1000 类中的每一类都有 1000 张。创建这么一个数据集是需要一番功夫的,可能需要很多人花数月的功夫完成。假定现在要创建一个有一百万类的数据集,那么就必须给总共 1 亿帧视频数据集中的每一帧做标注,这基本是无法实现的。 现在,回想一下在你很小的时候,自己是如何得到教导的。没错,我们的确受到了一些监督,但是当你的父母告诉你这是一只「猫」之后,他们不会在日后的生活中每一次观察到猫时都告诉你这是「猫」!而如今的监督式学习是这样的:我一次又一次地告诉你「猫」是什么样的,也许会重复一百万次。然后你的深度学习模型就领会了关于猫的知识。 理想情况下,我们希望有一个更像我们的大脑一样去运行得模型。它仅仅需要很少的一些标签就能够理解现实世界中的很多类事物。在现实世界中,我指的类是物体类别、动作类别、环境类别、物体的部分的类别,诸如此类还有很多很多。 正如你会在这篇评论中看到的一样,最成功的模型就是那些能够预测视频中即将出现的画面的模型。很多这类技术面临并正尝试解决的一个问题,即为了达到良好的全局表现,训练要在视频上进行,而不是静态的图片上。这是将学习到的表征应用在实际任务中的唯一途径。 基本概念 无监督学习研究的主要目标就是要预训练出能够用于其他任务的模型(即鉴别器或者编码器)。编码器的特点应该尽可能的通用,以便可以用在分类任务中(如在 ImageNet 上进行训练),并且提供尽可能像监督模型一样好的结果。 最新的监督模型总是表现得比无监督预训练模型更好。那是因为,监督会允许模型能够更好的编码数据集上的特征。但是当模型应用在其他的数据集上时,监督会衰减。在这方面,无监督训练有希望提供更加通用的特性来执行任何任务。 如果以实际生活中的应用为目标,例如无人驾驶、动作识别、目标检测和实时提取中的识别,那么算法需要在视频上训练。 自编码器 UC Davis 的 Bruno Olshausen 和康奈尔大学的 David Field 于 1996 年的发表的论文《Sparse Coding with an Overcomplete Basis Set: A Strategy by V1?》(论文链接:) 表明,编码理论可以被用在视觉皮层的接收域中。他们证明了我们大脑中的基本视觉旋涡 (V1) 使用稀疏性原理来创建一个能够被用于重建输入图像的基本功能的最小集合。 下面的链接是 2014 年伦敦微软 Bing 团队的 Piotr Mirowski 关于自动编码器的一个很好的综述。 链接:https://piotrmirowski.files.wordpress.com/2014/03/piotrmirowski_2014_reviewautoencoders.pdf Yann LeCun 的团队也从事这个领域的研究。在链接网页中的 demo 中,你可以看到像 V1 一样的滤波器是如何学习的。(链接:~yann/research/deep/) 通过重复贪婪逐层训练的过程,堆栈式自编码器(Stacked-auto encoder)也被使用了。 自动编码器方法也被称为直接映射方法。 自动编码器/稀疏编码/堆叠式自动编码的优点和缺点 优点: 简单的技术:重建输入 多层可堆叠 直观和基于神经科学的研究 缺点 每一层都被贪婪地(greedily)训练 没有全局优化 比不上监督学习地性能 多层失效 对通用目标地表征而言,重建输入可能不是理想的指标 聚类学习 它是用 k-means 聚类在多层中学习滤波器的一种技术。 我们组把这项技术命名为:聚类学习(见论文:Clustering Learning for Robotic Vision)、聚类连接 (见论文:An Analysis of the Connections Between Layers of Deep Neural Networks),以及卷积聚类 (见论文:Convolutional Clustering for Unsupervised Learning)。就在最近,这项技术在流行地无监督学习数据集 STL-10 上实现了非常好的结果。 (责任编辑:本港台直播) |