刚开通的博客,突然觉得什么都记在印象笔记中不如分享来的重要,在过程中也许还可以和同领域的人们交流,这就算是处女贴吧。从印象笔记贴过来,排版什么的可能会有些乱,重新整理太耗时间,请大家见谅。

今年开始研究近年来比较火热的deep learning,对于我来说是一个全新的领域,基本上是零基础,所以这篇综述性质的文章对于我的帮助是很大的,不过要看懂这篇文章,不仅需要很多时间,而且需要对神经网络有一点基础。这篇文章是一个长文,涉及的范围也比较广,有很多地方我还没有搞懂,本文只是对这篇文章的总结及摘要性质,并没有夹杂我个人的观点,有些地方翻译不对或内容理解错误,请大家帮忙指点出来。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

1. Introduction

we assume that the computational machinery necessary to express complex behaviors requires highly varying mathematical functions, i.e. mathematical functions that are highly non-linear in terms of raw sensory inputs, and display a very large number of variations. If a machine captured the factors that explain the statistical variations in the data, and how they interact to generate the kind of data we observe, we would be able to say that the machine understands those aspects of the world covered by these factors of variation.

1.1 How do we train deep architectures?
Automatically learning features at multiple levels of abstraction allows a system to learn complex functions mapping the input to the output directly from data, without depending completely on human-crafted features.

Depth of architecture refers to the number of levels of composition of non-linear operations in the function learned. the mammal brain is organized in a deep architecture with a given input percept represented at multiple levels of abstraction, each level corresponding to a different area of cortex. This is particularly clear in the primate visual system (Serre et al., 2007), with its sequence of processing stages: detection of edges, primitive shapes, and moving up to gradually more complex visual shapes.

Something that can be considered a breakthrough happened in 2006: DBN, autoencoder... apparently exploiting the same principle: guiding the training of intermediate levels of representation using unsupervised learning, which can be performed locally at each level.

1.2 Intermediate Representations: Sharing Features and Abstractions Across Tasks
These algorithms can be seen as learning to transform one representation (the output of the previous stage) into another, at each step maybe disentangling better the factors of variations underlying the data.
每一层的特征都不是相互独立的,他们构成了一个分布表示:the information is not localized in a particular neuron but distributed across many.大脑中的表示是稀疏的,大概只有1-4%的神经在同一个时间激活。

Even though statistical efficiency is not necessarily poor when the number of tunable parameters is large, good generalization can be obtained only when adding some form of prior (e.g. that smaller values of the parameters are preferred)

Exploiting the underlying commonalities between these tasks and between the concepts they require has been the focus of research on multi-task learning. Consider a multi-task setting in which there are different outputs for different tasks, all obtained from a shared pool of high-level features.

2. Theoretical Advantages of Deep Architectures

这一节讲了学习深度结构的动机和一些结构深度的解释。有一些函数不能被浅层结构有效的表达,因为可调整元素的数量。

For a fixed number of training examples, and short of other sources of knowledge injected in the learning algorithm, we would expect that compact representations of the target function 2 would yield better generalization.具体的说一个可以被k层结构表示的函数如果要用k-1层结构表示需要增加指数级的计算元素。

To formalize the notion of depth of architecture, one must introduce the notion of a set of computational elements.

Theoretical results suggest that it is not the absolute number of levels that matters, but the number of levels relative to how many are required to represent efficiently the target function (with some choice of set of computational elements).

2.1 Computational Complexity
最基本的结论就是如果一个函数可以被一个深层结构简明的表示,如果用不够深的结构来表示的话它需要一个很大的结构。
举了逻辑门函数的例子,但是这些理论并不能证明别的一些函数(比如AI中的一些task)需要深层结构,也不能证明这些限制适用于其他回路。但是这引发了我们的思考,普通的浅层网络是不是不能有效的表示复杂函数。

Results such as the above theorem also suggest that there might be no universally right depth: each function (i.e. each task) might require a particular minimum depth (for a given set of computational elements).

2.2 Informal Arguments
We say that a function is highly-varying when a piecewise approximation (e.g., piecewise-constant or piecewise-linear) of that function would require a large number of pieces.

深层结构是很多运算的组合,应该都可以用一个非常大的2层结构来表示。

To conclude, a number of computational complexity results strongly suggest that functions that can be compactly represented with a depth k architecture could require a very large number of elements in order to be represented by a shallower architecture.

3. Local vs Non-Local Generalization

3.1 The Limits of Matching Local Templates
Local estimators不适合用来学习highly-varying functions,即使他们能够用深层结构有效的表示。An estimator that is local in input space obtains good generalization for a new input x by mostly exploiting training examples in the neighborhood of x. Local estimators 直接或间接的将输入空间划分为区域,每个区域都需要不同的参数来表示目标函数,所以当需要很多区域的时候,参数也会变的很多。
根据局部模板匹配的结构可以看成两层结构,第一层是模板匹配层,第二层是分类层。最典型的例子是Kernel machine:
构成第二层,在第一层,核函数将输入x和训练样本xi进行匹配。
著名的kernel machine有SVM和Gaussian Process。Kernel Machine得到generalization是通过找出smooth prior:the assumption that the target function is smooth or can be well approximated with a smooth function.
如果没有关于task的先验知识,就不能设计合适的kernel,这就刺激了很多研究。(Salakhutdinov & Hinton, 2008) Gaussian Process Kernel Machine可以用DBN来学习特征空间来提高效率。深层结构的学习算法可以看成是为kernel machine学习好的特征空间的方法。
考虑目标函数中的方向v上下震荡,对于高斯kernel machine,需要的数据量对于目标函数需要学习的震荡的数量是线性增长的。For a maximally varying function such as the parity function, the number of examples necessary to achieve some error rate with a Gaussian kernel machine is exponential in the input dimension. 对于一个仅仅依靠先验知识目标函数式局部平滑的学习者,学习一个在一个方向上符号变化很多的函数式很困难的。
对于高维复杂的任务,如果一个曲线有很多variation并且这些variation各自没有关联,那么局部的estimator应该是最好的算法。但是在AI中我们假设目标函数中存在一些潜在的规律,所以需要寻找variation的更加compact的representation,从而可能导致更好的generalization。
Most of these unsupervised and semi-supervised algorithms using local estimators rely on the neighborhood graph: a graph with one node per example and arcs between near neighbors. 接下来举了一个流形学习的例子:
图中同一个目标4的一组图片,通过旋转和缩小,形成了一个低维的流形。因为流形是局部平滑的,所以原则上可以用linear patches去估计局部,每个patch与流形相切。但是如果流形过度弯曲,这些patch就需要很小,并且数量也指数级增长。
考虑基于neighborhood graph的半监督学习算法。labeled examples需要和variations of interst一样多才行,当decision surface变化太多的话就不行了。
Theoretical analysis(Bengio et al.,2009)说明了对于特定的函数要得到一个给定的error rate需要的数据量是呈指数级的。empirical result表明决策树的泛化能力是会随着variations的增多而降低的。
Ensembles of trees:They add a third level to the architecture which allows the model to discriminate among a number of regions exponential in the number of parameters.
3.2 Learning Distributed Representations
一个简单的local representation for 是一个N比特的向量r(i),其中有一个1和N-1个0。同样的distributed representation是一个的向量,更加简洁的表示。在分布式表示中,输入的特征不是相互独立的,但是有可能统计独立,举例来说,聚类算法不是分布式的因为cluster必须mutually exclusive,但是PCA和ICA是分布式表示。(这句没完全理解)
监督学习例如多层神经网络和无监督学习例如Boltzmann machine,都是学习分布式的内在表示,他们的目标在于让学习算法学习构成分布式表示的特征。
4. Neural Networks for Deep Architecture

4.1 Multi-Layer Neural Networks
每一层是上一层特征的非线性函数sigmoid或者tanh的激活值,参数有偏置b和权值w,通过最小化最后一层与目标的误差,更新参数学习。最后一层也可以用其他表示,例如softmax,计算激活值的比例,最后一层的输出hi就是P(Y=i|x)的估计,这种情况下经常用negative conditional log-likelihood,也就是-logP(Y=y|x)作为损失函数。
4.2 The Challenge of Training Deep Neural Networks
基于随机梯度的算法用在深层网络上时容易陷入局部最优,当随机初始化时,深层网络的结果可能比浅层结构更差。06年Hinton开始使用pre-training得到更好的结果,这些文字都发现了greedy layer-wise unsupervised学习算法:首先用无监督算法训练第一层,产生了第一层的初始值,然后用第一层的输出作为第二层的输入,训练第二层。全部训练完以后,用监督算法进行fine-tune。这些基于RBM和auto-encoder的算法的相同点是layer-local unsupervised criteria,也就是the idea that injecting an unsupervised training signal at each layer may help to guide the parameters of that layer towards better regions in parameter space. In Weston et al. (2008), the neural networks are trained using pairs of examples (x, ˜x), which are either supposed to be “neighbors” (or of the same class) or not. A local training criterion is defined at each layer that pushes the intermediate representations hk(x) and hk(˜x) either towards each other or away fromeach other, according to whether x and ˜x are supposed to be neighbors or not. 同样的方法已经被用于无监督流形学习算法。Bergstra and Bengio (2010) exploit the temporal constancy of high-level abstraction to provide an unsupervised guide to intermediate layers: 连续帧可能包含同样的目标。

那么这样的改进是因为better optimization还是better regularization呢?
Erhan(2009)的实验中指出对于同样的训练误差,有非监督预训练的测试误差会更低。非监督pre-training可以看做是一种regularizer/prior:约束了参数空间。Bengio(2007)的实验指出poor tuning of the lower layersmight be responsible for the worse results without pre-training。当增加隐层节点的数量时训练误差可以降到0。当最顶层被限制为很少,如果没有pre-training,那么training和test error都降很大,因为最上面两层可以看做是正常的两层网络,如果最顶层足够大,它已经足够fit训练集,因此需要pre-training使下面的层better optimized,小的最顶层才能yield better generalization。
如果顶层节点足够多,即使底层训练的不好训练误差也可以很低,但是这样generalization可能比浅层网络更差。当训练误差低而测试误差高,我们叫做overfitting。因为pre-training的效果,它也可以被看做是一种data-dependent regularizer。当训练集的size很小,虽然非监督学习可以提高test error,但是training error会变大。(为什么?)
用Gaussian process或SVM代替最上面两层可以降低training error,但是如果如果低层没有足够优化,那么对generalization还是没有帮助。
另外一种可以产生better generalization的事一种regularization:with unsupervised pre-training, the lower layers are constrained to capture regularities of the input distribution.
One way to reconcile the optimization and regularization viewpointsmight be to consider the truly online setting. 这种情况下,online gradient descent是一个随机优化过程,如果无监督pre-training仅仅是一个regularization,可以预期有一个无限的训练集,那么有没有pre-training都将收敛到同一个程度。为了解释这个问题,用了一个’infinite MNIST’ dataset (Loosli, Canu, & Bottou, 2007),结果发现pre-trained的3层网络明显收敛到更低的error,也就是说pre-training不仅仅是一种regularizer,而且是一种寻找最优最小值的方法。
为什么低层更难优化呢?上述表明反向传播的梯度可能不够使得参数转移到别的region,他们容易陷入局部最优。The gradient becomes less informative about the required changes in the parameters as we move back towards the lower layers, or that the error function becomes too ill-conditioned for gradient descent to escape these apparent local minima.
4.3 Unsupervised Learning for Deep Architecture
非监督学习找到了输入数据的一种统计规律的表示。PCA和ICA可能不适合因为他们不能处理overcomplete case,也就是outputs比inputs更多的情况。另外,stack linear projections仍然是一个线性变换(例如2层PCA),不是构造深层结构。
另一种动机去研究非监督学习:它可以是一种把问题分解为子问题的方法,每个子问题对应于不同level的abstraction。第一层可以提取显著信息,但是由于limited capacity,他只是低层特征,然后下一层用这些低层特征作为输入,那么就可以提取稍微高一点的特征。但是这里用梯度下降法的话,又会产生梯度弥散的问题。

4.4 Deep Generative Architectures
除了给监督算法做预训练,非监督算法还可以学习分布和生成样本。生成模型一般用图模型表示。Sigmoid belief net是一种多层生成模型,使用variatonal approximations训练。DBN与sigmoid belief net有点相似,除了最上面两层,DBN的最上面两层是RBM,一种无向图模型。

4.5 Convolutional Neural Networks
虽然深层网络使用监督算法训练很困难,但是有一个例外,就是CNN。原因有两个猜想:
1. The small fan-in of these neurons (few inputs per neuron) helps gradients to propagate through so many layers without diffusing so much as to become useless.
2. The hierarchical local connectivity structure is a very strong prior that is particularly appropriate for vision tasks, and sets the parameters of the whole network in a favorable region (with all non-connections corresponding to zero weight) from which gradient-based optimization works well.
4.6 Auto-Encoders
Auto-Encoder和RBM之间也有一些联系,auto-encoder training approximates RBM training by Contrastive Divergence. 如果有一层线性隐层,那么k个隐层单元学习将input投影到前k个重要成分,有点类似PCA。如果隐层是非线性的,那么就具有捕捉输入分布的multi-modal aspects
一个很重要的问题是如果没有其他约束,一个有n维输入和至少n维编码的自编码器,可能只学习到恒等方程(很多编码没有用,例如仅仅copy输入)。Bengio(2007)实验表明,当用随机梯度下降法,overcomplete(隐层节点比输入节点多)非线性自编码器可以产生有用的表示。一个简单的解释是early stopping有点类似L2约束。
对于连续输入的重建,一个非线性自编码器在第一层需要很小的权值(to bring the non-linearity of the hidden units in their linear regime),第二层需要很大的权值。对于二值输入,也需要很大的权值去完全最小化重构误差。
除了constraining encoder by explicit or implicit regularization of the weights, 另一种策略是添加noise。这就是本质上RBM所做的。另一种策略是sparsity constraint。这些方法生成的权值矩阵与V1,V2神经元观察的结果类似(Lee, Ekanadham, & Ng, 2008)。
sparsity和regularization为了避免学习identity,但是减少了capacity,而RBM既有很大的capacity,也不会学习identity,因为它是捕捉输入数据的统计结构。有一种auto-encoder的变体denoising auto-encoder具有和RBM类似的特性。
5 Energy-Based Models and Boltzmann Machines

5.1 Energy-Based Models and Products of Experts
Energy-based model引入了能量的定义,energy-based概率模型可以用一个能量函数来定义一个概率分布:
任何一个概率分布都可以用能量模型计算,归一化元素Z被称为partition function:
在product of experts formulation中,energy定义为:
5.1.1 Introducing Hidden Variables
an observed part x, a hidden part h:
marginal:
map this to energy function:
with and
代表这个模型的参数,那么log-likelihood gradient:
因此average log-likelyhood gradient:
为训练集empirical distribution,为expectation under model’s distribution P
也可以将能量写成一个关于某一个hidden unit的和:
例如在RBM中,FreeEnergy和分子都是可以求出的:
表示被赋予所有值的和,如果h是连续值,那么sum可以用integral取代
5.1.2 Conditional Energy-Based Models
计算这个partition function很难,如果我们的最终目的是决定y给定x,那么我们不需要求出联合分布P(x,y),而只要求P(y|x):
这类方法可以应用于判别RBM(Discriminative RBM)。
5.2 Boltzmann Machine
Boltzmann machine是一种特殊形式含有隐变量的能量模型,能量函数是一个二次多项式:
分别为连接x和h的偏置,权值分别对应一对连接,U和V是对称的,在大部分模型中对角线为0。非0的对角线可以用来获得其他变种,例如Gaussian代替二项式单元。
由于隐层单元的相互作用,上述FreeEnergy的计算方法在这里不适用,但是可以用MCMC采样方法,推导如下:
很容易计算,因此如果可以sample from P(h|x)和P(x,h),那么就可以得到unbiased stachastic estimator of the log-likelihood gradient。
Hinton(1986)介绍了一下术语:在positive phase,x作为输入,sample h from x;在negative phase,x和h都采样,理想中是从模型自身中采样。
Gibbs sampling是一种近似采样,N个随机变量的联合分布是通过N个子采样得到的,,每次从N-1个随机变量里采样Si,经过无穷步采样逐渐收敛到P(S)。
以下是怎么在Boltzmann machine中运用Gibbs sampling,并举了一个例子,可惜没看懂,等用到的时候再看。
因为对于每个样本都需要两条MCMC链(一个positive phase,一个negative phase),所以计算量很大, 故这种方法被BP算法取代。但是接下来的Contrastive Divergence算法又成功运用了这种方法。
5.3 Restricted Boltzmann Machine
RBM是DBN的building block,它当中的、都为0,因为层间没有连接。Energy function:
输入的Free Energy:
Conditional probability P(h|x):
在binary 输入的case中,
因为x和h在能量函数中是对称的,因此
在Hinton(2006),binomial input units are used to encode pixel gray levels in input images as if they were the probability of a binary event. 在MNIST训练集上很有效,但是在其他case中不行。在Bengio(2007)的实验中描述了当输入是连续值时Gaussian input对于binomial input的优势
虽然RBM可能不能像BM那样有效的表示某些分布,但是它可以表示任何离散分布,只要有足够的隐层单元。Le Roux & Bengio(2008)的实验中表明除非RBM已经完美的表示了训练集分布,增加一个隐层单元总能提高log-likelihood。
一个RBM也可以看做是multi-clustering,每一个隐层单元产生一个2-region partition of the input space。
The sum over the exponential number of possible hidden-layer configurations of an RBM can also beseen as a particularly interesting form of mixture, with an exponential number of components (with respect to the number of hidden units and of parameters):
例如,如果P(x|h)被选择为Gaussian,这就是一个Gaussian mixture,h有n bits就有个成分。但是这些成分不能独立tuned,因为它们share parameters。Gaussian均值通过一个线性函数得到,也就是说每个隐层单元在均值中都贡献一个
5.3.1 Gibbs Sampling in RBMs
Gibbs sampling在RBM中在每步中有两个子步骤:第一sample h from x,第二sample a new x from h。随着样本的增加,模型分布与训练分布越来越相似。如果我们从模型分布开始,那么一步就可以收敛,所以从训练样本的经验分布开始保证只需要很少的步骤就可以收敛。

5.4 Contrastive Divergence

5.4.1 Justifying Contrastive Divergence
在这个算法中,我们需要做的第一个approximation就是用单个样本代替所有可能输入的平均值。在k-step Contrastive Divergency中,包含了第二个近似:
是k步后的最后一个样本。when,the bias goes away. 当模型分布非常接近于经验分布的话,也就是时,start the chain from x(a sample) the chain has converged, 我们只需要一步就得到了unbiased sample
结果表明即使k=1都能得到很好的结果。一种方法解释CD算法就是这是一种locally around样本x1的对log-likelihood gradient的一种近似。LeCun(2006)指出EBM的训练算法中最重要的就是使得observed inputs的能量最小,这里指的就是FreeEnergy。CD算法中的contrast指的是一个真实的训练样本和一个链中的样本的对比。
5.4.2 Alternatives to Contrastive Divergence
Tieleman(2008); Salakhutdinov & Hinton(2009)提出了persistent MCMC for the negative phase。主要思想很简单:keep a background MCMC chain. . .xt → ht → xt+1 → ht+1 . . . to obtain the negative phase samples。不同于CD-k中run a short chain,在做出近似时忽略参数在不断变化的事实,也就是说,we do not run a separate chain for each value of the parameters。因为参数变化实际上很慢,所以这种近似效果很好,但是the trade-off with CD-1 is that the variance is larger but the bias is smaller.(这个方法实际上还没有看懂!!!
另一种方法是Score Matching(Hyv¨arinen, 2005, 2007b, 2007a),这是一种用来训练EBM的方法,它可以求出能量,但不是分母那个归一化常数Z。一个密度的score function是,这个函数与归一化常数Z没有关系,这个方法的基本思想是match the score function of the model with the score function of the empirical density,然后比较两个score function的difference。(需要结合paper细看)
5.4.3 Truncations of the Log-Likelihood Gradient in Gibbs-Chain Models(纯数学推导,具体要细看paper
Bengio and Delalleau (2009)给出了一个定理:
Theorem 5.1. Consider the converging Gibbs chain x1 ⇒ h1 ⇒ x2 ⇒ h2 . . . starting at data point x1. The log-likelihood gradient can be written
and the final term converges to zero as time goes to infinit
所以truncating the chain to k steps用这样的一个近似:
这就是CD-k算法,这就告诉我们CD-k算法的bias就是,这个bias会随着k的增加而减少,所以增加CD-k的步骤会更快更好的收敛。当用x1来初始化Markov chain,第一步相对于x1就向着正确的方向移动了,也就是说,roughly going down the energy landscape from x1.
CD-1是进行了两次采样,如果只进行一次呢?那么分析log-likelihood gradient expansion:
用average configuration来代替
忽略后一项(WHY),我们得到了右边作为update direction,这就是reconstruction error,典型地用来训练自编码器:
所以我们发现truncation of the chain得到了第一个近似是大概的重构误差,然后稍微更好的近似是CD-1,重构误差也是在训练RBM时用来跟踪整个过程的。
5.4.4 Model Samples Are Negative Examples(数学解释没有看懂
在boltzmann machine和CD算法中,一个很重要的元素就是the ability to sample from the model。极大似然准则想要在训练样本上得到很高的相似,而在其他地方很低。如果我们已经有一个模型,那么where the model puts high probability(represented by samples)和where the training examples are指出了怎么来改变这个模型。 如果我们可以用一个decision surface(决策面)分离训练样本和模型样本,我们可以这样增加likelihood:减少决策面中有更多训练样本那一侧的能量函数值,增加另一面。
以下用数学推导证明了如果可以增加一个classifier分离训练样本和模型样本的能力,就可以增加这个模型的log-likelihood,将更大的可能面放在训练样本一侧。实际中,我们可以用一个分类器,这个分类器的判别函数像生成模型的free energy那样定义,再假设可以从模型中采样,可以达到这样的目标。
6. Greedy Layer-Wise Training of Deep Architectures

6.1 Layer-Wise Training of Deep Belief Networks
一个含有l层的DBM构成联合分布如下:
是visible-given-hidden conditional distribution,是最上面一层RBM的joint distribution。代表posteriors,除了最上一层因为最上面一层是RBM,可以exact inference。
6.2 Training Stacked Auto-Encoders
Training的方法与DBN类似:
1、训练第一层最小化重构误差
2、用隐层输出作为下一层的输入,训练第二层
3、迭代第2步
4、最后一个隐层的输出作为一个有监督层的输入,初始化参数
5、用监督训练准则fine-tune所有的参数
与DBN的对比实验表明,DBN一般比SAE有优势,可能是因为CD-k is closer to the log-likelihood gradient than the reconstruction error gradient。但是因为no sampling is involved,所以reconstruction error has less variance than CD-k。
SAE的优势在于每一层的任何参数化都有可能,但是概率图模型中例如CD算法或者其他tractable estimators of the log-likelihood gradient能被应用的有限。SAE的缺点在于它不是生成模型,生成模型中sample可以被量化的检查学习到了什么,例如可视化。

6.3 Semi-Supervised and Partially Supervised Training
除了上述的先unsupervised training,再supervised training,还有其他的两者结合的方法。Bengio(2007)提出了partially supervised training,这个方法在输入分布P(X)与P(Y|X)不是强烈相关的情况下有用,具体看paper。
还有一种self-taught learning,(Lee, Battle, Raina,&Ng, 2007; Raina et al., 2007)
7. Variants of RBMs and Auto-Encoders

7.1 Sparse Representations in Auto-Encoders and RBMs

1. Why a sparse representation?
几种解释sparsity的观点,具体见paper。
2. Sparse Auto-Encoder and Sparse Coding
第一个成功在深度结构中发掘出稀疏表示的是Ranzato(2006)。第二年同一个组介绍了一个变种,based on a Student-t prior。还有一种方法与computational neuroscience有关,它包含了两层sparse RBMs(Lee 2008)
在压缩感知力sparsity是通过加入L1惩罚,也就是说,当h是稀疏的时候输入x以很低的L2 reconstructed error重构。
这里
就像有向图模型,sparse coding表现有点像explaining away:不同的configuration竞争,从中选取一个,别的都关掉。The advantage is that if a cause is much more probable than the other, than it is the one that we want to highlight. The disadvantage is that it makes the resulting codes somewhat unstable, in the sense that small perturbations of the input x could give rise to very different values of the optimal code h. 为了解决稳定性问题和fine-tuning的问题,Bagnell, Bradley(2009)提出用一个softer近似取代L1惩罚,也就是说many very small coefficients, without actually converging to 0.
sparse auto-encoder和sparse RBMs不存在这些问题:computational complexity (of inferring the codes), stability of the inferred codes, and numerical stability and computational cost of computing gradients on the first layer in the context of global fine-tuning of a deep architecture.
一些介于它们之间的SAE在(Ranzato et al., 2007, 2007; Ranzato&LeCun, 2007;Ranzato et al., 2008)中被提出,他们提出let the codes h be free,but include a parametric encoder and a penalty for the difference between the free non-parametric codes h and the outputs of the parametric encoder. 在实验中,encoder只是一个affine transformation接着一个non-linearity(like the sigmoid),decoder是线性的(as in sparse coding)。
7.2 Denoising Auto-Encoders
DAE是AE的一个随机版本,它的输入被stochasitically corrupted,但是uncorrupted输入还是作为重构的目标。它做两件事,第一,encode输入,第二,消除corruption的影响。第二件只能通过捕获输入数据中的statistical dependency完成。Vincent(2008)提出corruption操作为随机初始化多达一半的输入为0。一个recuurent版本早在Seung(1998)就被提出,用AE来denoising实际上在(LeCun, 1987; Gallinari, LeCun, Thiria, & Fogelman-Soulie, 1987)被提出。DAE因此展示了这个策略用在无监督预训练上的成功,并且与生成模型连接。
一个DAE有趣的性质是它相当于一个生成模型,另一个有趣的性质是it naturally lends ifself to data with missing values or multi-modal data。
7.3 Lateral Connections
RBM可以slightly restricted,通过在显示层加入一些lateral connections。这样sampling h仍然很简单,但是sampling x将会复杂一点。Osindero and Hinton (2008)中的结果表明基于这种模块的DBN比传统DBN效果更好。
这种横向连接捕获了pairwise dependencies,让隐层捕获更高层的dependency。这样第一层就相当于一种whitening,作为一种预处理。这样的优势在于隐层表示的更高层的factors不需要编码所有的局部细节,这些细节横向连接可以捕获。
7.4 Conditional RBMs and Temporal RBMs
A Conditional RBM is an RBM where some of the parameters are not free but are instead parametrized functions of a conditioning random variable. Taylor and Hinton(2009)提出了context-dependent RBMs,隐层的参数c是一个context variable z的affine function。
这是一个temporal RBM的例子,双箭头表明一个RBM,虚箭头表明conditional dependency。这个想法成功运用到了human motion中。

7.5 Factored RBMs
运用在language Model中,不太了解。

7.6 Generalizing RBMs and Contrastive Divergence
(待补充)

8. Stochastic Variational Bounds for Joint Optimization of DBN Layers
以下Q代表RBM,P代表DBN。
运用jensen 不等式可以使DBN的似然对数lower bounded。
首先运用到,于是改写:
指Q(h|x)的entropy,根据non-negativity of the KL divergence得到不等式:
当P和Q相同时就说等号。
在DBN中用P表示probability,在RBM中用Q表示。在第一层RBM中Q=P,但事实上不可能相等,因为在DBN中第一个隐层P(h)是由上层决定的。
8.1 Unfolding RBMs into Infinite Directed Belief Networks
上式证明greedy training procedure之前,需要先建立DBN中和RBM中的关系。当第二层RBM的权值是第一层的transpose时,这两者相等。
另一种方法看这个问题,将一个gibbs sampling无限的链看成无限有向图with tied weights,这种无限有向图其实相当于RBM。一个2层的DBN,第二层的权值等于第一层权值的transpose,这个2层DBN相当于单个RBM。
8.2 Variational Justification of Greedy Layer-wise Training
下面来证明增加一层RBM可以提高DBN的likelihood。首先按照上述构造一个2层等价DBN,也就是权值矩阵是第一层的逆矩阵,固定第一层的两个条件概率,提高,增加KL项。开始KL项是0,entropy项不依靠DBN中的,所以的增加可以增加logP(x)。因为KL项和entropy项的非负性,进一步训练第二层RBM可以increase a lower bound。因此训练第二层RBM来最大化:
If there was no constraint on P(h1), the maximizer of the above training criterion would be its “empirical” or target distribution:
同理可证增加第三层也是这样。增加的一层RBM的size和weight的限制不是必须的,用前一层的转置矩阵去初始化权值是否会增加训练速度需要实验证明。
注意在训练最顶层时,不能保证会单调增加。当lower bound持续增加时,实际的log-likelihood将会减小。这需要KL项减少,这个一般不可能,因为当DBN中的越来越脱离RBM中的,那么也会越来越分离,导致KL变大。当训练第二层时,就会从慢慢向移动。但并不是第二层RBM从任何参数开始训练都会增加likelihood,(以下举了一个反例,没有看明白)Consider the case where the first RBMhas very large hidden biases, so that,but large weights and small visible offsets so that ,i.e., the hidden vector is copied to the visible units. When initializing the second RBM with the transpose of the weights of the first RBM, the training likelihood of the second RBM cannot be improved, nor can the DBN likelihood。当第二层RBM从一个不好的配置开始训练,那么将会向移动,导致KL变小。
另一种解释就是第二层RBM的训练分布是第一层生成的,相当于进行了一次gibbs采样,我们知道gibbs采样越多越可以准确的得到真实的数据。
When we train within this greedy layer-wise procedure an RBM that will not be the top-level level of a DBN, we are not taking into account the fact that more capacity will be added later to improve the prior on the hidden units. Le Roux and Bengio (2008)提出了一种方法替换CD算法来训练RBM,实验表明训练第一个RBM用KL divergense可以更好的优化DBN。但是这种方法intractable,因为需要计算隐层所有configuration的和。
8.3 Joint Unsupervised Training of All the Layers
8.3.1 The wake-sleep algorithm

在wake-sleep算法中,向上的recognition parameter和向下的generative parameter是分离的。主要思想如下:
1、wake阶段:用x生成h~Q(h|x),用这个(h,x)作为fully observed data训练P(x|h)和P(h),相当于对做了一次随机梯度。
2、sleep阶段:sample (h,x) from P(x,h),然后用它作为observed data训练Q(h|x),这相当于对做了一次随机梯度。
8.3.2 Transforming the DBN into a Boltzmann Machine

当每一层作为RBM初始化之后,DBN就转变成了一个deep boltzmann machine。因为在BM中每个单元接收上面和下面的输入,(Salakhutdinov& Hinton, 2009)提出将RBM的权值二等分来初始化DBM。
9. Looking Forward

9.1 Global Optimization Strategies

9.2 Why Unsupervised Learning is Important

1. Scarcity of labeled examples
2. Unknown future tasks
3. Once a good high-level representation is learned, other learning tasks could be much easy.
4. Layer-wise unsupervised learning
5. Unsupervised learning could put the parameters of a supervised or reinforcement learning machine in a region from which gradient descent (local optimization) would yield good solutions
6. The extra constraints imposed on the optimization by requiring the model to capture not only the input-to-target dependency but also the statistical regularities of the input distributionmight be helpful in avoiding some poorly generalizing apparent local minima.
In general extra constraints may also create more local minima, 但是无监督预训练可以减少训练和测试误差,说明预训练将参数移动到最好的representation的参数空间附近。
Deep architectures have typically been used to construct a supervised classifier, and in that case the unsupervised learning component can clearly be seen as a regularizer or a prior that forces the resulting parameters to make sense not only to model classes given inputs but also to capture the structure of the input distribution.

9.3 Open questions
1、为什么基于梯度的深层网络用随机初始化经常不成功?
2、用CD算法训练的RBM能否保留输入的信息(因为它不像自编码器那样,可能丢失一些重要信息),如果不能怎么修改?
3、在CD算法中gibbs sampling的步骤需要调整吗?
4、Persistent CD算法值得挖掘?
5、除了重构误差,还有别的方法监视DBN或者RBM的训练吗?
6、RBM和AE能否用某种形式的sparse penalty提高效果?
7、SAE和SDAE有没有概率论的解释?