-Chapter 16: Representation Learning
什么是好的Representation?有很多种可能的答案,这也是一个在以后的研究中还需要进行探索的问题。在本书中,我们给Representation下的定义则是Representation Learning能够使加下来的Learning task变得更加的简单。In an unsupervised learning setting, this could mean that the joint distribution of the different elements of the representation (e.g., elements of the representation vector h) is one that is easy to model (e.g., in the extreme, these elements are marginally independent of each other).但这并不够: 一个丢弃的所有信息的Representation(例如给定一个inputx,使Representation h=0)很容易建模,但是这对模型无用。因此,我们需要我们学习到的Representation既能够保留住信息的(至少能够保留住在对supervised阶段有益的信息),并且能够使得其他模型能够简单高效的从这些Representation中获取到对其有用,感兴趣的信息。
在Chapter 1中,我们介绍了Representation的概念,其中有一个idea是一些Representations会比其他的要好一些(例如给图片中的目标或者语音中的音素分类)。正如Chapter 1中讨论的,表明通过优化原始数据映射到Representation的方程的这种系统性的方法,要比handcrafting要好。基于这个动机,Section 6.7讨论了如何学习到输入数据的features,学习到input的features也是现在的前向深度神经网络的一个“副作用”(Chapter 6),特别是对于supervised Learning,通过匹配的(input,target)组合,能够直接获取到提升当前task performance的Representation。
本书的作者认为以后研究以及工业应用会主要集中在unsupervised learning of representation。
那么,我们如何从无标签或者少数有标签的数据中挖掘出信息呢?单纯的监督算法在少量的有标签数据上学习容易造成overfit。但另一方面, 人类(或者其他动物)却能够从少量的例子(有标签数据)中学习。 这在于他们先前获取到了足够的知识, 或者依靠直觉, 以及之前的学习经验(这个更符合人类)。 我们能够从无标签数据中发现好的Representation嘛(first four section in this Chapter)? 我们能把无标签数据和有标签数据结合起来吗(semi-supervised Section 16.3)? 如何将相同的Representation应用在多个任务中(multi-task Section 7.12)。 What
if we have “training tasks” (on which enough labeled examples are available) as well as “test tasks” (not known at the time of learning the representation, and for which only very few labeled examples will be provided)? 如果test task相似, 但是train task不相似(transfer learning, domain adaptation Section 16.2), 又该如何呢?
16.1 : Greedy Layerwise Unsupervised Pre-Training
无监督学习在深度神经网络的复兴中扮演了一个很重要的历史角色, 它使得训练深度监督网络成为可能。 我们把这类流程成为unsupervised pre-training(无监督预训练), 或者更确切的说, 贪心逐层无监督预训练, 这是这个Section的主要讨论内容。
一开始深度监督网络的成功秘诀依赖于这部分提及到的一些单层的Representation Learning算法: 比如Autoencoder, RBM。 每一层都通过无监督算法进行预训练, 将上一层的输出作为输入的新Representation, 其概率分布是相似的。
基于无监督训练的贪心逐层训练标准很好地克服了训练深度监督网络的困难, 这种方法可以追溯到Neocognitron(Fukushima, 1975), 贪心逐层训练被发现可以找到训练深度监督网络的好的初始点, 在学术上, 运用这种策略打破了SVM算法的benchmark。
被称为逐层是因为训练时一次只会训练一层, 训练第k层时,前面所有层的Weights会保持不变。 被称为无监督是因为每一层都是使用无监督Representation算法进行训练。 被称为贪心是因为不同层的training objective是不一样的,不同于global training objective,而global training objective会造成局部最优。