文章“Redcing the Dimensiongality of Data with Neural Networks”的翻译

注明:本人英语水平有限,翻译不当之处,请以英文原版为准,不喜勿喷,另,本文翻译只限于学术交流,不涉及任何版权问题,若有不当侵权或其他任何除学术交流之外的问题,请留言本人,本人立刻删除,谢谢!!

本文原作者:G.E.Hinton* and R.S.Salakhutdionv

原文地址:http://www.cs.toronto.edu/~hinton/science.pdf

为了重构高维的输入向量,可以通过训练一个具有小的中间层的多层的神经网络,从而把高位数据转换成低维的代码。梯度下降法能够用于这种自动编码网络中的权值调整,但是这只有在初始权值接近于好的方法(?)时才会起到很好的作用,本文描述了一种初始权值的有效方法,该方法允许深度自动编码网络学习低维的代码(原文“code”,暂时未想好更好的表述),该方法与主成分分析方法相比在数据降维方面能有更好的效果。

数据降维有助于高维数据的分类,可视化,通信以及存储。现广泛应用的降维方法是主成分分析方法(PCA),该方法寻找数据集中方差的最大值方向,并且按照这个最大值方向坐标呈现数据(?,可查看关于PCA的解释,此处是老外的理解表述,可能不符合我们的思维方式),我们描述了一个非线性的主成分分析方法,该方法使用一个自适应的多层的编码网络,将高维的数据转化成低维的代码

,同时利用一个类似的“decode”网络将这些代码还原成原始数据。在这个“ecode”和“decode”(此处为表述清楚使用原文这两个单词)网络中开始权值都是随机产生的,他们同时训练以便将原始数据和重构数据之间的差距降到最小,其中的梯度是通过将“decode”(重构网络)和“encode”(编码网络)之间的误差反向传播的链式法则获得的(?),这整个系统叫做“autoencode”(自动编码机),如图1所示。

如果一个非线性的自动编码机具有多个隐含层(2-4层),那么优化它的权值是非常困难的,

初始权值数量过大,会使“autocode”陷入局部最小值,初始权值数量过小,开始几层的梯度变化就会很小,训练多隐含层的“autocode”就会很难实现,如果初始权值接近一个好的状况(原文“good solution”,不知是不是这个意思。。)梯度下降就会表现很好,但是找到这样一个初始权值需要一个与众不同的算法,这种算法需要一次只能学习一层的特征。(搞不懂,,难道是每层需要不同的算法??+_+)我们介绍了一个二进制的“pretraining”程序,并把它推广到了实质数据集,结果表明它适用于不同的数据集。

二进制向量整体(例如图像)可以使用一个两层的受限玻尔兹曼机来建模,该模型利用对称的权值将随机的二进像素值连接到随机的二进制特征提取器。因为RBM可见层单元的状态是可见的,所以可见层单元的像素值就相当于RBM的可见层;特征提取层就相当于隐含层,可见层和隐含层之间的联合配置(v,h)具有一个能量(?此处能量的概念来自原文“energy”,但是不知合适否),该能量是通过以下函数(1)得到的

其中vi和hi分别是第i个像素和第j个特征的二进制状态,bi和bj是它们的偏置值,wij是它们之间的权值,这个网络通过这个能量函数给每一个可能的图像分配了一个概率值,就像(8)那样。

通过调整权值和偏置来降低或者提高图像的能量,从而提高训练图像的概率值,虚构出真实的图像,对于一副给定的图像,每个特征提取器j的二进制状态hj根据σ(bj+∑iviwij)得出的概率值,被设置成1,其中σ(x)是一个逻辑函数1/[1+exp(-x)],bj是第j个偏置,vi是第i个像素的状态,wij是i和j之间的权值。一旦隐含层单元之间的二进制状态确定后,这个虚构的(层,暂且叫做层,)就根据σ(bj+∑iviwij)得到的概率值设定可见层的状态为1,其中bi是第一个偏置值。

隐含层单元的状态每更新一次,就产生虚构层(对应前面的“层”)的特征。权值的改变是通过

实现的,其中ε是学习率,<vi hj>是。。。。(没理解)。在偏置方面使用了一个简单的学习规则,这个学习规则即使在它(指的应该是?wij)不是非常遵循训练数据的梯度时也能起到很好的作用。

利用单层的二进制特征模拟图像数据集并不能起到很好的作用。在学习了一层特征提取器之后,我们可以把其中 的激活单元-也就是被被数据驱动的状态-作为第二层特征提取的输入数据。第一层的特征提取器就变成了下一层RBM的可见层单元,这样一层接着一层的学习能够在每一代中重复许多次,这表明增加一个额外层能够提高模型分配给训练数据一个更低的概率值下界,并且能够提供每一层不用减少的特征提取器的数量和正确的初始化权值。这个界(bound,不知如何翻译)不适合有少量的特征提取器的高层,但是这种一层接一层的学习算法无疑是深度自动编码机预训练权值的一个非常有效方法。每一层特征提取器都会获取本层和下一层之间强劲的,高度规则话的相关性特征,对于各种各样的数据集,这种方法是一种渐进的揭示其中低维的非线性结构的有效方法。

在预训练特征提取器的许多层以后,这个模型就被展开成一个编码器和解码器,编码器和解码器的初始化就使用相同的权值。全部的微调状态就会通过实际的确定概率来来代替原来随机的激活状态,并且为了优化重构,这个微调会在整个自动编码机中使用反向传播来微调权值。

对于连续数据,RBM第一层的隐含层单元仍然是二进制的,但是其中的可见层是通过带有高斯噪声的线性单元产生的,  如果高斯噪声具有单位方差,那么隐含层单元的随机更新规则仍然是相同的,并且可见层单元i的更新来自于带有单位方差和bi+∑jhjwij均值的高斯样本(??)。

在本文的所有实验中,每一个RBM的可见层单元都是真实值逻辑单元,(?)值的大小在区间[0,1]之间。但是训练高层次的RBM时,可见层单元的状态是根据上一层的RBM隐含层单元的激活概率来设置激活状态的,与之相反的是,每一个RBM的隐含层单元除了顶层的那一个之外,都有随机的二进制值。顶层的RBM单元是随机的真实值,这些数值来自于一个单位方差高斯变量(?),这些变量的均值由RBM的逻辑可见层单元输入决定。这允许低维的代码好好利用连续变量并且能够和PCA进行对比。关于预训练和微调的细节可以在(8)中找到。

为了展示本文的预训练算法和微调网络,本文训练了一个非常深的自动编码机,该编码机运行在一个合成的数据集上,这个数据集包含的是由三个随机点产生的二维曲线(不知对否)。这个数据集的维数是知道的,并且每一个像素的强度和六个数字(?)之间是非线性的关系。像素强度限制在[0,1]之间,并且是非高斯分布的,

时间: 2024-12-30 03:49:54

文章“Redcing the Dimensiongality of Data with Neural Networks”的翻译的相关文章

Reducing the Dimensionality of data with neural networks / A fast learing algorithm for deep belief net

Deeplearning原文作者Hinton代码注解 1 Matlab示例代码为两部分,分别对应不同的论文: 2 3 1. Reducing the Dimensionality of data with neural networks 4 5 ministdeepauto.m backprop.m rbmhidlinear.m 6 7 2. A fast learing algorithm for deep belief net 8 9 mnistclassify.m backpropclas

Hinton 【Reducing the Dimensionality of Data with Neural Networks】 Reading Note

2006年,机器学习泰斗.多伦多大学计算机系教授Geoffery Hinton在Science发表文章,提出基于深度信念网络(Deep Belief Networks, DBN)可使用非监督的逐层贪心训练算法,为训练深度神经网络带来了希望.如果说Hinton 2006年发表在<Science>杂志上的论文[1]只是在学术界掀起了对深度学习的研究热潮,那么近年来各大巨头公司争相跟进,将顶级人才从学术界争抢到工业界,则标志着深度学习真正进入了实用阶段,将对一系列产品和服务产生深远影响,成为它们背后

[CS231n-CNN] Training Neural Networks Part 1 : activation functions, weight initialization, gradient flow, batch normalization | babysitting the learning process, hyperparameter optimization

课程主页:http://cs231n.stanford.edu/ ? Introduction to neural networks -Training Neural Network ______________________________________________________________________________________________________________________________________________________________

《Neural networks and deep learning》概览

最近阅读了<Neural networks and deep learning>这本书(online book,还没出版),算是读得比较仔细,前面几章涉及的内容比较简单,我着重看了第三章<Improving the way neural networks learn>,涉及深度神经网络优化和训练的各种技术,对第三章做了详细的笔记(同时参考了其他资料,以后读到其他相关的论文资料也会补充或更改),欢迎有阅读这本书的同学一起交流.以下属个人理解,如有错误请指正. What this bo

卷积神经网络的并行化模型——One weird trick for parallelizing convolutional neural networks

前段时间一直在关注 CNN 的实现,查看了 caffe 的代码以及 convnet2 的代码.目前对单机多卡的内容比较感兴趣,因此特别关注 convnet2 关于 multi-GPU 的支持. 其中 cuda-convnet2 的项目地址发布在:Google Code:cuda-convnet2 关于 multi-GPU 的一篇比较重要的论文就是:One weird trick for parallelizing convolutional neural networks 本文也将针对这篇文章给

Neural Networks for Machine Learning by Geoffrey Hinton (3)

Neural Networks for Machine Learning by Geoffrey Hinton (3) 训练感知机的方法并不能用以训练隐含层 训练感知机的方式是每次直接修正权重,最终得到满足所有凸锥里的权重.可行解的平均一定还是可行解. 对多层神经网络而言,2个可行解的平均并不一定是可行解. They should never have been called multi-layer perceptrons. 为何不解析求解神经网络? 我们希望了解神经网络具体工作方式. 我们需要

训练技巧详解【含有部分代码】Bag of Tricks for Image Classification with Convolutional Neural Networks

训练技巧详解[含有部分代码]Bag of Tricks for Image Classification with Convolutional Neural Networks 置顶 2018-12-11 22:07:40 Snoopy_Dream 阅读数 1332更多 分类专栏: 计算机视觉 pytorch 深度学习tricks 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/e01528

Neural Networks for Machine Learning by Geoffrey Hinton (1~2)

机器学习能良好解决的问题 识别模式 识别异常 预測 大脑工作模式 人类有个神经元,每一个包括个权重,带宽要远好于工作站. 神经元的不同类型 Linear (线性)神经元  Binary threshold (二值)神经元  watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="300&quo

Learning to Compare Image Patches via Convolutional Neural Networks --- Reading Summary

Learning to Compare Image Patches via Convolutional Neural Networks ---  Reading Summary 2017.03.08 Target: this paper attempt to learn a geneal similarity function for comparing image patches from image data directly. There are several ways in which