Reducing the Dimensionality of Data with Neural Networks(1)

摘要

        通过训练一个多层的神经网络可以将多维数据转化为一个低维编码,使用一个小的中心层可以重建高维的输入向量。在自编码网络中,梯度下降被用来微调网络的权重,但是梯度下降往往在初始权重接近最优解的情况下,才会表现的比较好。我们提出了一个有效初始化权重的方法,使自编码网络学习低维编码的性能优于PCA的数据降维。

主要内容

        降维有助于分类、可视化、传递、存储高维的数据。一个简单和广泛使用的方法是主成分分析PCA,该方法发现数据集中方差最大的方向和利用沿着每个方向的坐标来代表每个数据。我们设置了一个非线性的PCA生成器,可以使用合适、多层编码网络将高维数据转为低维编码,同时使用一个相似的解码网络来从编码数据中恢复出来。

       第一步随机初始化两个网络的权重,通过最小化原始数据和重建数据的差异来同时训练两个网络。通过链式法则来反向传播导数误差得到所需要的梯度,即通过解码网络到编码网络。整个系统被称为“自编码”,网络的设计如图1所示:

                                                            

                                                                      图1:自编码网络架构

        因为自编码网络中含有很多的隐藏层,所以是有困难的去优化非线性自编码的权重。当初始权重值较大时,自编码容易陷入局部极小值;当有初始化权重较小时,在前几层的梯度值较小,使用一些隐藏层去训练自编码是不合理的。如果这个初始权重接近最优解,梯度下降会表现比较好,但是研究表明这样的权重参数需要一个不同类型的算法,可以一次在一层中学习特征。我们介绍的这个预训练处理是一个二进制数据,从真实数据中的一般化,实验表明在大量的数据集性能都很好。

二元向量的集合(例如:图像)可以使用一个两层的网络来建模,这个被称为随机的“受限玻尔兹曼机”(RBM),二进制像素连接到随机,二进制特征检测器可以使用对称的权重连接。像素值相当于RMB的可见单元,因为他们的状态是可以被观察到的;特征检测器对应隐藏单元。可见和隐藏单元的联合函数(v,h)有一个能量函数:

                                                                     

v_{}^{i}h_{}^{j}表示二进制像素i和特征j的状态,b_{}^{i}b_{}^{j}表示其偏差,w_{}^{ij}表示像素和特征之间的权重。通过上述能量函数,是这个网络集成了每张图的所有可能情况。图像的训练可以通过调整权重和偏差来降低图像的能量函数,提高能量的相似性。“虚构的”图像更加符合真实的数据。提供一张训练图,每个特征检测器h_{}^{j}的二进制状态使用概率\sigma \left ( b_{j}+\sum _{i}v_{i}w_{ij} \right ),其中\sigma \left ( x \right )为逻辑函数1/\sigma \left ( 1 + exp\left ( -x \right )\right )b_{}^{j}是j的偏差,v_{}^{i}是像素i的状态,w_{}^{ij}是i和j之间的权重。一旦二进制状态被隐藏单元选择,一个“虚构的”通过使用概率\sigma \left ( b_{i}+\sum _{j}h_{j}w_{ij} \right )来将v_{}^{i}设定为1,其中b_{}^{i}是i的偏差。隐藏单元的状态将会更新一次,使他们表示虚构的特征,权重的改变:
                                                                               

其中\varepsilon代表学习率,是像素i和特征检测器j分数,当检测器被数据驱动时,它们是一致的。是相应虚构的分数。我们首先测试了一个普通版本,对偏差的更新使用相同的学习率。学习效率很好,即使训练数据的对数概率的梯度不是很清晰。

       对于一系列的图像一个单层的二进制特征不是一个最好的模型。在特征检测器学习一层后,我们激活他们的状态,当它们在被数据驱动下,使数据学习特征的第二层。第一层的特征检测器变为可视单元,去学习下个RMB。这个层对层的学习可以重复学习。通过上述表明,添加一个额外的网络层可以提高对数概率的下界,模型设计更接近训练数据,保证每层的特征检测器的数据量不会减少,他们的权重被正确初始化。这个边界在较高层拥有较少的特征检测器时,将不会被使用。尽管如果层传层的学习算法对于深度自编码网络的预训练权重是非常有用的。每一层特征学习都很强,与下层的激活单元高度相关。对于一个大量的数据集,这个一个有效的方式去逐渐降维。

       在特征检测器的多层被预训练后,这个模型时“展开的”去制造编码和解码网络,来使用相同的权重初始化。全局微调阶段,使用确定的激活来代替随机激活,实值概率以及使用反向传播贯穿整个自编码网络,来微调权重来进行优化重建。

      对于连续的数据,RBM第一层的隐藏单元保留二进制,但是可见单用使用高斯核噪声的线性单元进行替代。如果这个噪声单一变量,对于隐藏单元的随机更新保持不变,对于可见单元i的更新使用高斯的单一变量和均值。

      在我们的所有实验里面,每个RBM的可见单元都有真实的激活,它们的变动在逻辑单元0和1中。在训练较高层的RBMs时,可见单元被设定为先前RBM隐藏单元的激活概率,但是每个RBM的隐藏单元除了最上层有随机的二进制值。顶层的RBM的隐藏单元拥有从一个单元方差高斯中提取的实际值,它的均值从RBM的逻辑可见单元中确定。这使低维编码充分利用连续变量和促进PCA的比较。预训练的细节和微调可以参考文章(8)。

      为了验证我们的预训练算法可以有效的微调我们的网络,我们使用了一个合成的曲线图数据集,改曲线图是在二维上随机选择3个自由点。对于这个数据集,真实内在的维度是已知的,像素强度和以及形成它们的非线性的6个数是相关的。像素强度在0和1之间是非高斯的,所以在自编码中我们使用逻辑输出单元,通过微调来最小化交叉熵

                                            

其中是像素i的强度,是重建的像素i的强度。

        自编码由卷积核为(28*28)-400-200-100-50-25-6进行编码和一个对称的解码。这6个单元在编码层是线性的和所有其它的单元是逻辑的。这个网络使用2万张图像进行训练,在10000的新数据上进行测试。自编码网络发现如何去卷积784像素大小的图像达到6个真实值,从而表现比较好的重建。PCA给出了很差的重建。没有使用预训练,深度自编码网络总是重建训练数据的均值,然后延长微调。浅层的自编码器在数据和编码之间含有一个隐藏层可以不使用预训练权重进行学习,但是添加预训练权重明显减少训练时间。在参数相同的情况下,深度自编码器在测试集上可以得到比低层自编码器较低的重建误差,但是这个优势会随着参数增加而消失。

        下一个,我们使用了784-1000-500-250-30的自编码器去对MNIST数据集进行编码。matlab代码中,我们使用预训练权重和微调的方式。然后,所有的单元都逻辑提出30个线性单元在编码层。在60000的训练图像上进行微调,在10000的图像数据上进行测试,重建效果优于PCA。二维自编码器比开始两个规则模块具有较好的可视效果。

        我们也尝试了635-2000-1000-500-30的自编码器,使用线性输入单元去发现30维的编码,该实验使用的Olivetti灰度图像的人脸数据集。自编码器的性能优于PCA。

        在文件训练时,自编码器在编码过程中具有快速的索引。我们使用804,414条新闻连线故事作为代表,2000条常用词干的特定文件可能的向量,我们训练一个2000-500-250-125-10的自编码器在一半的数据上,并使用多分类交叉熵

进行微调。10个编码单元是一个线性和隐藏单元是逻辑的。当cos的角度在两个编码之间,我们通常测量相似性,自编码器比最新的分割系统LSA性能还要优越,LSA一个基于PCA被众人所知的文件检索算法。自编码器的性能也优于局部线性扁平化,一个最近提出的非线性降维的算法。

       逐层预训练也能用于分类和回归。一个广泛使用的是手写体MNIST识别任务,对于随机初始化的反向传播最好的误差率在1.6%和1.4%的SVM。在784-500-500-2000-10的逐层训练网络,反向传播使用最陡梯度下降方法和一个较小的学习率误差达到了1.2%。预训练帮助了一般化,因为它可以增强最有用的信息,来自于模型图的权重。对于标签中非常相似的信息,通过预训练只需要微调权重。

        自从1980年,通过深度自编码器反向传播可以有效进行非线性维度降维,只要提供速度足够快,数据集足够大,初始权重靠近最优解。所有这三个条件现在是全部满足的。不像非参数化方法,自编码给出一个数据和编码空间双方向的一个映射,他们能够使用大量的数据集,因为预训练和微调比率是线性的对于训练在时间和空间上。

了解更多关于《计算机视觉与图形学》相关知识,请关注公众号:

下载我们视频中代码和相关讲义,请在公众号回复:计算机视觉课程资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值