为什么无监督预训练有助于深度学习?
翻译:娄英欣
摘要:
很多最近的研究都致力于学习深层结构的算法,例如深度置信网络(DBN)和堆叠自动编码器的变形,他们在不同的领域成果斐然,大部分建立在视觉和语言数据集。监督学习任务获得的最好的结果均包括无监督学习成分,通常是在无监督预训练阶段。即使这些算法已经应用于训练深度模型,但是对于原始的学习依旧存在许多问题。最主要的问题如下:无监督预训练是怎么工作的?对于深层结构学习的提高,这个问题的答案是很重要的。我们提出了几种假设,并通过大量的仿真进行测试。我们展示了预训练对于结构的深度、模型的能力和训练样本数量的影响。实验结果证实了无监督预训练的好处。结果显示在训练数据集中,无监督预训练使得学习走向吸引盆的最小值处,支持更好的泛化;该结果支持预训练正则化作用的解释。
关键词:
深层结构 无监督预训练 深度置信网络 堆叠降噪自动编码器 非凸最优化
1. 前言
深度学习思想旨在采用由低层特征组成的高层特征来学习特征层次结构。包括的学习思想有:深层结构的广义数组(Bengio, 2009),多隐层的神经网络(Bengio, 2007)和多层隐藏变量的图解模型(Hinton, 2006)。一些理论成果(Yao, 1985),Bengio和LeCun在2007年进行了回顾和讨论,建议为了学习能表达高层抽象的复杂函数,需要深层结构。最近该领域的学习浪潮似乎支持这个观点,尤其是与人工智能相关的课题,例如计算机视觉(Bengio, 2007),自然语言处理((Collobert and Weston,2008)和信息检索(Salakhutdinov and Hinton, 2007)。深度学习思想明显优于同类竞争者,经常打败最先进的技术。
尽管深度学习中训练模型需要多层自适应参数是严峻的挑战,但是最近已经证明可以达到标准。几乎在深度学习所有的例子中,目标函数都是一个高度非凸参数函数,因此在模型的参数空间可能会存在多个不同的局部最小值。最主要的问题是并不是所有的这些最小值均提供相等的泛化误差,因此我们建议对于深层结构,标准的训练准则(基于随机初始化)趋向于将参数放置于泛化较差的参数空间区域,这个结果根据经验可以经常观察到但是很少被报道(Bengio and LeCun, 2007)。
深层结构有效训练策略的突破是在2006年,出现了2种训练算法:深度置信网络(Hinton, 2006)和堆叠自动编码器(Bengio, 2007),二者均基于相似的方法:先进行逐层贪婪无监督预训练,然后进行监督微调。每层均采用无监督学习算法进行预训练,学习输入(前一层的输出)的非线性变换,捕获输入的主要变化。无监督预训练有益于最终的训练阶段,最终深层结构通过基于梯度优化的监督训练准则进行微调。虽然对于深度模型预训练的性能很好,但是很少有人知道成功背后隐藏的机制。
本文通过大量的实验来探索无监督预训练如何使得深层结构更有效和为什么比传统神经网络训练方法更好。本文提出了几个合理的预训练作用的假设。第一个假设,无监督预训练作为一种网络的预处理器,为了将来的监督训练将参数值放在适当的范围。第二个假设,无监督预训练初始化模型到参数空间的一个点,致使优化过程更有效,从某种意义上说实现了最低的经验代价函数(Bengio, 2007)。
本文中我们的实验结果显示,无监督预训练作为正则化的一种特殊形式:最小化方差和引入对无监督学习有帮助的带偏差的参数空间结构。这个观点使得无监督预训练包含在最近发展的半监督思想中。然而,无监督预训练方法在半监督训练策略中是唯一的,它是对于标准的监督训练定义了一个特殊的初始化点,而不是修改监督目标函数(Barron, 1991)或在整个训练中加上对参数的限制(Lasserre et al., 2006)。这种初始化-正则化的思想早在神经网络文献中提到,即早期停止思想(Sjöberg and Ljung, 1995)。我们建议在高度非凸的情况下训练深层结构,定义一个特殊的初始化点,隐性地在参数上加限制,使得成本函数最低。通过这种方法,可以认为无监督预训练和Lasserre的方法相关联。
另一个重要的、明显的无监督预训练的特征是,在标准的训练中使用随机梯度下降法,且即使样本数量大量增长,预训练产生的有益的泛化效果也不会减少。我们认为这是由于非凸目标函数的组合和随机梯度下降法对样本顺序的依赖性。我们发现参数的早期变化对最终学习结束的区域(下降过程中的吸引盆)有很大的影响。特别地就泛化而言,无监督预训练设置参数在能达到更好的吸引盆的区域。因此,尽管无监督预训练作为正则化矩阵,但是当训练数据很大的时候,它对训练目标有积极的影响。
正如上文所言,本文通过大量的实验来评估无监督预训练有助于深度学习的多种假设。为此,我们设计了一系列实验来排除一些假设,试图验证无监督预训练的神秘效果。
在第一组实验中(第6部分),我们验证无监督预训练对提高训练好的深层结构的泛化误差的影响。在这部分我们也会利用降维技术来说明无监督预训练是怎样影响参数空间的局部最小。
在第二组实验中(第7部分),我们直接比较之前的两种假设(预训练作为预处理器和预训练作为优化方案)与无监督预训练作为正则化假设。在最后一部分实验中(第8部分),我们探索无监督预训练对训练数据非常多的在线学习的影响。在这些实验中,我们探索了本文假设关于代价函数拓扑的关键因素和无监督预训练在操作监督训练开始处的参数空间区域中扮演的角色。
在深入研究之前,我们先看一下训练深层结构中的挑战和我们认为无监督预训练如何克服这些挑战。
2. 深度学习的挑战
1. 适应底层以提供足够的输入给最后(训练结束)上层的设置
2. 适应上层以充分利用最后(结束训练)底层的设置
第二个问题比较简单,第一个问题的难度还不清楚,我们猜想当两套层共同学习时会产生特定的困难,因为目标函数的梯度受限于给定当前其他参数设置的局部测量。而且,由于最高两层有足够的能力可以很容易过拟合训练集,因此训练误差不一定揭示了优化底层的难度。我们的实验显示,标准的训练准则趋向于将参数放置于泛化较差的参数空间区域。
如果我们重点关注基于随机梯度下降的传统训练思想,那么就会产生一个独立却相关的问题。在线梯度下降过程中的样本定义了参数空间的轨迹,在某种意义上会收敛(误差不再提高,可能因为接近局部最小值)。有一假设,轨迹中小的扰动(初始化或变化)对早期影响很大。在接下来的早期随机梯度下降过程中,权重的变化会增加数量级,因此非线性网络的数量增加。当出现上述情况,由训练样本分布随机梯度下降可达到的区域的集合会变得更小。早期训练的小扰动使得模型参数从一个盆转换到附近的一个,然而后来(通常用于较大的参数值)似乎很难逃脱这样的一个吸引盆。因此早期的样本有更大的影响,而且在实践中,在对于训练样本特定和任意排序的特定参数空间区域诱捕模型参数。这个现象的一个重要结论是即使面对大量的监督数据,在早期的训练过程中,随机梯度下降法受到一定程度的过拟合训练数据的影响。在这层意义上,无监督预训练与优化过程相互作用密切,而且当训练样本的数量非常大的时候,无监督预训练的积极影响不仅体现在泛化误差,还体现在泛化误差上。
3. 无监督预训练的正则化作用
正如前言所述,通过在监督微调训练过程前引入逐层贪婪预训练可以克服深度学习的挑战。正则化效果是预训练过程的结果,建立在参数空间内部区域微调过程的初始化点,在参数空间中参数从此受限。参数被限制到相对小体积的参数空间中,这个空间描述为监督微调代价函数局部吸引盆的边界。预训练过程增加了权重的大小,且在标准的深层模型中采用S非线性和更多的拓扑特征如峰、谷和平稳,可以使得函数更非线性和本地代价函数更复杂。这些拓扑特性的存在使得本地参数空间通过梯度下降过程更难达到有效的距离。这是预训练过程所施加的限制属性的核心,是正则化特性的基础。
但是无监督预训练限制参数到特定区域:捕获输入分布结构P(X)。预训练作为正则化一定程度上削弱了其有效性。并不是所有的正则化矩阵都是平等的,相比于标准的正则化如L1和L2参数惩罚项,无监督预训练有意想不到的效果。我们认为它的成功归功于无监督预训练过程中无监督训练标准的优化。
在贪婪无监督训练的每个阶段,每层被训练来表示数据变化现存的主导因素。在每层,根据X的统计可靠特征来预测输出Y。这个观点使得非监督预训练与半监督的学习策略方法一致。正如最近其他的研究成果一样,我们在正则化模型参数中来证明半监督思想的有效性,无监督预训练的限制范围为学习P(X)有助于学习P(Y|X)。我们发现X的变形-学习的特征-是P(X)中预测的变化的主要因素,当预训练有效,这些X学习到的特征也可以预测Y。在深度学习的背景下,贪婪无监督策略可能也有特殊函数。在一定程度上,通过引入一个代理标准解决了不同层同时学习参数(在第2部分提到过)的问题。这个代理标准鼓励输入数据变化的显著因素,以便于在中间层显示。
为了说明这段推理,我们引入了参数的先验分布来使无监督预训练的效果形式化。我们假设参数选定在有界区域。让S 在区域中 分割,该区域是在训练误差中下降过程的吸引盆(注意 依赖于训练集,随着实例的增加依赖性降低)。对于i,j不相等,我们有。 表示区域 的体积(θ是模型参数)。 是中纯随机初始化的概率, 是 中预训练的概率,即。我们考虑初始化过程为正则化项:
对于预训练模型,先验概率为:
对于没有预训练的模型,先验概率为:
我们可以证明。当非常小,无监督预训练中惩罚项很高。正则化的导数几乎处处为0,因为我们在区域中选择了统一的先验概率。因此考虑正则化和生成模型,需要选择一个合理的初始化点θ(从这个点开始,在训练标准的迭代最小化中,惩罚项不会增加),这就是我们实验中预训练模型是怎样构建的。
注意形式化只是一个说明:我们只是简单展示一下如何概念性的考虑初始化点的正则化作用,而不能认为是正则化实现的文字解释,因为我们没有计算的解析式。相反,这些是无监督预训练过程的隐函数。
4. 之前相关的工作
我们先回顾一下文献中的半监督学习(SSL),因为SSL框架也是我们所研究的。
4.1 相关半监督方法
人们认为生成模型比判别模型更不容易过拟合(Ng, 2002)。考虑输入变量X和目标变量Y,判别模型关注P(Y|X),生成模型关注P(X, Y)(经常参数化为P(X|Y) P(Y)),也就是说它也关注P(X)的正确性,因为当最终目标只是给定X 预测Y,P(X)可以减少拟合数据的自由度。
探索P(X)的信息可以提高分类的泛化,已经成为半监督学习之后的另一类思想(Chapelle, 2006)。例如,我们可以采用无监督学习将X映射为一个表示法(也叫嵌入),例如两个实例X1和X2属于相同的群集,那么它们最终会有相近的嵌入。然后在那个新的空间使用监督学习(例如线性分类器)实现很多情况下更好的泛化(Belkin, 2002)。这种方法采用主成分分析作为分类器前的一个预处理步骤。在这些模型中,首先采用无监督学习将数据转换为新的表示,然后采用监督学习分类器,学习将新表现形式的数据映射到类预测。
在模型中监督和非监督组件不是分开的,我们可以考虑模型中的P(X)共享参数,而且我们可以交换监督标准和无监督或生成模型。生成模型是先验的一种特殊形式。通过控制总的标准中的生成标准,我们可以更好的权衡纯生成或纯判别准则(Lasserre, 2006)。
在深层结构中,一个非常有趣的应用是将每层无监督嵌入准则加到传统的监督训练(Weston, 2008)。这就是一个强大的半监督策略,也是本文中描述和评估的一种替代算法,组合了无监督学习和监督学习。
在缺乏标签数据(充足的无标签数据)的情况下,深层结构表现突出。Salakhutdinov and Hinton (2008)提出了学习高斯过程协方差矩阵的思想,使用无标签数据模型化P(X)提高P(Y|X)效果非常明显。注意结果是预料的:用少量的标签样本建模P(X)很有帮助。我们的结果显示即使有丰富的标签数据,无监督预训练仍对泛化有明显的积极影响:一个有点令人吃惊的结论。
4.2 过早停止是正则化的一种形式
我们认为预训练作为初始化可以看作限制优化过程在一个相对小体积的参数空间中,相当于监督代价函数的局部吸引盆。限制初始化过程到参数空间中靠近初始配置的区域,过早停止和其有相似的影响。τ表示迭代的次数,η表示更新过程中的学习率,τη可被视为正则化参数的倒数。事实上,限制了参数空间中从起始点可达区域的数量。至于使用二次误差函数和简单梯度下降的简单线性模型(初始化在原点)的优化,过早停止与传统的正则化有相同的作用。因此,在预训练和过早停止中,监督代价函数参数限制接近它们的初始值。更正式的正则化过早停止处理由Sjöberg and Ljung (1995)提出。与预训练处理不相同,本文阐明了深层结构中初始化的效果。
5. 实验装置和方法论
在这部分,我们会描述用来测量第3部分和之前提出的假设的实验装置。这部分描述了使用的深层结构、数据集和重现我们结果的必要细节。
5.1 模型
所有文献中训练深层结构的方法都有一些共同点:他们依赖无监督学习算法在每层提供一个训练信号。主要工作分为两个阶段。第一阶段,无监督预训练,所有层均采用逐层无监督学习信号来初始化。第二阶段,微调,全局训练标准(预测误差,在监督任务下使用标签)最小化。在最初提出的算法中(Hinton, 2006; Bengio, 2007; Ranzato, 2007),无监督预训练采用逐层贪婪:在第k阶段,第k层训练采用前一层的输出作为输入,且前一层保持固定。5.1.1 深度置信网络(DBN)
第一个模型是Hinton(2006)提出的深度置信网络,采用限制玻尔兹曼机(RBM)训练和逐层堆叠起来。一旦堆叠的RBM经过训练,它可以用来初始化一个多层分类神经网络。
DBN是多层生成模型,包括参数h0、h1、h2等。最高两层(即RBM)有联合分布,因此2层的DBN即为RBM,在一个DBN中,堆叠的RBM共享参数。对比分歧更新方向可以用来初始化DBN的每层作为一个RBM,如下所示。考虑DBN第1层作为RBM P1进行训练,隐藏层h1,可见层为v1。当我们训练另外一个RBM P2,样本h1取自P1 (h1|v1),样本v1取自训练数据集。可以看出,在模型顶层添加训练好的RBM,可以获得P(h_k | h_k−1)中前一层的h_k−1,上述可以最大化DBN的对数似然函数的下界。
5.1.2 堆叠降噪自动编码器(SDAE)
第二个模型是Vincent(2008)提出的堆叠降噪自动编码器,采用了DBN的贪婪原则,但是使用降噪自动编码器作为无监督模型的框架。自动编码器的编码器h()和解码器g()的组合可以确定训练集中的样本,即g(h(x))≈x。5.2 数据集
本文实验基于3个数据集,我们的实验结果将有助理解之前深层结构的结果,大部分基于MNIST数据集和其变形:5.3 装置
使用的模型:6. 无监督预训练的影响
我们首先会呈现大量的仿真实验,来证实之前所说的关于深层结构的结论。在分析实验结果的过程中,我们开始关联本文的假设,然后针对本文假设做实验。6.1 更好的泛化
当我们选择每层的单元数、学习速率和训练迭代次数来优化验证集中分类误差,相比于没有预训练、相同深度或较浅深度的比MNIST小的不同视觉数据集,无监督预训练大幅度减小了测试分类误差。6.2 特征可视化
图3显示了监督微调前/后DBN第一层的权重(滤波器)。为了可视化第2、3层单元的作用,我们使用了激活最大化技术(Erhan, 2009):为了可视化单元的最大响应,该思想通过寻找有界输入模式来最大化激活给定单元。这是一个优化问题,通过在输入空间中执行梯度上升算法来寻找激活函数的局部最大值。有趣的是,从大部分随机初始化的输入模式中可以获得几乎相同的最大激活函数输入模式。图3 上:预训练 下:预训练+监督微调 从左到右:1/2/3层
图4 无预训练+监督微调
6.3 学习轨迹模型可视化
学习特征的可视化允许我们对深层结构的训练策略做定性的比较。然而我们无法调查这些策略是如何受随机初始化影响的,因为从多种初始化学习来的特征看起来都很相似。如果我们可以同时可视化多个模型,这样我们就可以探索我们的假设,且确认预训练模型和没有预训练的模型之间的区别。这两组模型在参数空间中覆盖的不同区域吗?参数轨迹会卡在很多明显不同的局部最小值吗?图5 tSNE局部结构
图6 ISOMAP整体结构
图7 基于Shapeset的训练误差
6.4 启示
到现在为止,一系列的结果与我们的假设相一致。预训练可以得到更好的泛化使得随机初始化具有鲁棒性,无监督学习P(X)有助于P(Y|X)的学习。我们所观测到的函数空间显示有很多明显的局部最小值。预训练模型似乎结束在这些误差空间的不同区域(参数空间的不同区域)。这个结果是从函数空间轨迹得到的,而且对于可视化学习特征,可以定性的观察到有/无预训练的模型有明显的不同。7. 无监督预训练的角色
目前本文可以证实,开始于预训练权重的监督优化比随机初始化权重能更好的进行分类。为了更好的理解这一优势从哪里来的,需要知道监督目标优化在两种情况下是一样的。基于梯度的优化过程也是一样的。唯一的不同点是参数空间中的起始点:随机选择还是经过无监督预训练后获得(也开始于随机初始化)。7.1 实验1:无监督预训练对监督学习提供了一个更好的调整过程吗?
典型的深度模型梯度下降训练采用随机分配权重进行初始化,小到可以在参数空间的线性区域(对于大部分神经网络和DBN模型接近为0)。我们有理由质疑是否最初的无监督预训练阶段的优势只是由于权重更大,因此在某种意义上提供了优化过程更好的调整的初始值,我们想排除这个可能性。7.2 实验2:预训练对训练误差的影响
优化和正则化假设在预测无监督预训练如何影响训练误差方面是有分歧的:前者预测无监督预训练会导致较低的训练误差,然后后者的预测是相反的。为了验证这两种假设的影响,我们来看一下基于训练代价函数的测试代价(测试数据的福对数似然函数),即优化过程中参数空间的轨迹。图8显示了参数空间中开始于同一随机初始化点的400条曲线,即蓝色的无预训练,红色的有预训练。7.3 实验3:层数的影响
正则化的另外一个本质特征是容量(例如隐藏单元数)增加,正则化效果增加,有效地将模型复杂度约束转换为另外一个。在这个实验中我们探索每层的单元数和无监督预训练效果之间的关系。无监督预训练正则化作用的假设使得当每层单元数增加的时候,我们会看到无监督预训练有效性有增加的趋势。7.4 实验4:挑战优化假设
实验1 – 3的结果与正规化假设是一致的,实验2 – 3似乎直接支持正则化假说。
在文献中有一些支持优化的假设。Bengio(2007)限制深层网络的最顶层只有20个单元,然后测量了有/无预训练的训练误差。该思想是防止网络由于顶部隐藏层而过拟合训练误差,因此可以看出是否底层的优化影响是存在的。报告中训练和测试误差均比预训练网络低。存在一个问题就是他们使用了过早停止,这样是有问题的,因为正如之前所说,过早停止本身就是正则化,它可以影响训练误差。可以想象如果Bengio(2007)使得模型收敛,结果会不同。我们需要证明一下。
图10显示了没有过早停止产生的结果。尽管泛化误差较低,对于预训练网络训练误差仍旧较高。这个结果支持正则化假设,反对优化假设。可能发生的事:过早停止阻止了无预训练网络朝着明显的局部最小值移动太多。
7.5 实验5:对比预训练和L1/L2正则化
另外一种假设是经典的正则化可能和无监督预训练具有相同的影响。我们研究了没有预训练的网络采用L1/L2正则化的影响,发现基于MNIST的小惩罚起作用,但是增益远没有预训练大。对于InfiniteMNIST,L1/L2正则化的最佳值为0。7.6 总结实验1-5
到目前为止,之前试验获得的结果对无监督预训练的影响有非常清晰的解释:正则化作用。我们可以看到采样使用相同的权重大小是不够的:无监督初始化是至关重要的。而且我们观察到,标准的L1/L2正则化达不到预训练的水平。
最引人注目的正则化假设的证据是图8和9,优化假设Bengio(2007)不成立。
8. 在线学习设置
我们的假设不仅包括统计/现象学的假设:无监督预训练起正则化作用,也包含了一种机制:这样的行为出现也作为一系列训练动态性—在训练阶段和非凸监督目标函数中使用随机梯度。8.1 实验6:在大数据集下预训练的效果
本部分实验结果可能是这篇文章最惊人的发现。图11显示基于InifiteMNIST 6种结构的在线分类错误:1-3层DBN,1-3层SDAE,1-3层无预训练网络。8.2实验7:样例顺序的影响
本文假设的机制暗示着由于学习的动态性(权重大小的增加和训练过程的非线性),和依赖于吸引盆的早期数据(当基于随机梯度下降训练,早期样例敏感性增强)。基于InifiteMNIST我们操作于在线随机优化体制,在这我们试图找到一个高度非凸目标函数的局部最小值。然后,需要学习这种优化输出多大程度受训练过程中在不同点可见样例的影响,和是否早期样例有更大的影响。
为了量化训练过程中在不同点训练样例的输出方差,和比较有/无预训练模型的方差,我们进行了如下实验。给定100万样例的数据集,我们变化第100万个样例且保持其他不变。训练好10组模型后,测量出基于固定数据集网络的输出方差。接着同样改变下100万样例,观察哪组训练组对最终函数影响最大。
图13显示了实验结果,开始的样本比后面的样本更能影响网络的输出。然而,方差比预训练网络低。除此之外,我们应该注意到预训练网络的方差在0.25(开始预训练点)之后比监督网络在0.0的方差要小。这个结果意味着无监督预训练可以被视为一种方差减小技术,与正则化假设一致。最后,两个网络均受用于优化的最后一组样例的影响较大,这是由于在随机梯度中我们使用了固定学习率,最近期的样本梯度有更大的影响。
这些结果均与我们的假设一致:早期样本有更大的影响(方差更高),且预训练模型在我们的预期下可以减小方差。
图13 在0.25开始预训练
8.3 实验8:预训练前k层
从图11我们可以看到对于3层网络无监督预训练的影响是不同的。在图14中,我们探索了深度和无监督预训练的关系,设置如下:基于MNIST和InifiteMNIST,我们只预训练底部k层,对顶部n-k层像平时一样随机初始化。在这个实验中,n=3且k从0(无预训练)变化到n(正常预训练)。9 讨论和总结
我们已经证明无监督预训练可以增加深层网络的鲁棒性,结果同样显示增加无预训练结构的深度,会增加找到差的明显局部最小值的可能性。预训练网络可以始终有更好的泛化,预训练网络比没有预训练网络可以定性地学习到不同的特征。而且,拥有不同初始化种子的网络的轨迹似乎落入很多明显不同的局部最小值,结果再次不同,依赖于是否使用了预训练。