这篇paper来做什么的?

用神经网络来降维、之前降维用的方法是主成分分析法PCA,找到数据集中最大方差方向。(附:降维有助于分类、可视化、交流和高维信号的存储)

这篇paper提出了一种非线性的PCA 的推广,通过一个小的中间层来重构高维输入向量,训练一个多层神经网络。利用一个自适应的、多层的编码网络(Deep autoencoder networks),达到降维的目的。

这种降维方法,比主成分分析法PCA(principal compenent analysis)效果要好的多。

在这两种网络中,随机初始化权重,通过最小化原始数据及其重建数据之间的差异,进行训练。

利用链规则来反馈错误,首先通过解码网络(Decoder),然后通过编码网络(Encoder),可以获得梯度。

Hinton把它的算法分成了3部分:(预处理)Pretraining、Unrolling、Fine-tuning

预处理包含了学习一个受限玻尔兹曼机栈( 堆叠的RBM),每一个只有一层特征监测子。一层RBM学习过的数据作为下一层RBM的输入,然后使用BP算法调整参数。

给定原始输入后,先要训练模型的第一层,即图中左侧的黑色框。黑色框可以看作是一个编码器,将原始输入编码为第一层的初级特征,可以将编码器看作模型的一种“认知”。为了验证这些特征确实是输入的一种抽象表示,且没有丢失太多信息,需要引入一个对应的解码器,即图中左侧的灰色框,可以看作模型的“生成”。为了让认知和生成达成一致,就要求原始输入通过编码再解码,可以大致还原为原始输入。因此将原始输入与其编码再解码之后的误差定义为代价函数,同时训练编码器和解码器。训练收敛后,编码器就是我们要的第一层模型,而解码器则不再需要了。这时我们得到了原始数据的第一层抽象。

(1)Pretraining

Pretraining就是RBM限制玻尔兹曼机,通过CD-1算法先获得参数W、b的初始值。

RBM的能量函数

1、h是特征j的二值状态。feature detector特征描述子,是模型自己学习获得的,被称为隐式hidden变量,其实它就是每层网络的输出

2、v是像素i的二值状态。可见变量,即输入。上一层的h就是下一层的v。。

3、bi,bj是像素i和特征j的偏差。

4、wij是像素i和特征j间的权值

我们的目标就是通过调整权值和偏差最小化这个能量函数,使得网络更倾向的真实的数。

每个特征探测子j的二值状态hj以的概率被设为1。

其中σ是逻辑函数(logistic function )

每个vi以的概率被设为1

权重更新:

这里emuxilong 是学习率,<>表示{0, 1}随机变量为1的期望。data分式中,h是通过v获得的;recon中,v是通过隐式变量h重构的, h是通过重构后的v重新计算的。

(2)Unrolling

固定第一层模型,原始输入就映射成第一层抽象,将其当作输入,如法炮制,可以继续训练出第二层模型,再根据前两层模型训练出第三层模型,以此类推,直至训练出最高层模型.

Unrolling其实就是根据encode的输出,获得重构图像的过程,即decode。

训练完一层网络之后,我们可以使它激活,当这一层被数据驱动——进而生成数据作为学习第二层特征的输入。第一层的特征探测子成为第二层RBM的可见元。这种一层接一层/逐层的学习 当必要时可以重复多次/反复进行。

(3)Fine-tuning

有了重构后的输入,再加上原始输入,就可以通过Fine-tuning做进一步的参数调整了。

逐层初始化完成后,就可以用有标签的数据,采用反向传播算法对模型进行整体有监督的训练了。这一步可看作对多层模型整体的精细调整。由于深层模型具有很多局部最优解,模型初始化的位置将很大程度上决定最终模型的质量。“逐层初始化”的步骤就是让模型处于一个较为接近全局最优的位置,从而获得更好的效果。

参数调整阶段使用最小化交叉熵损失:

vi 为像素点i的强度,Vi recon为此点的重构后的值。

总结:

其中Pretraining就是RBM模型,通过CD-1算法先获得参数W、b的初始值。Unrolling其实就是根据encode的输出,获得重构图像的过程,即decode。有了重构后的输入,再加上原始输入,就可以通过Fine-tuning做进一步的参数调整了。

优化多隐层的非线性自编码器的权重是非常困难(2-4):使用大的初始权重,自编码器往往会陷入较差的局部极小(poor local minima);使用小的初始权重,(由于梯度消失)前几层的梯度非常小,使得训练多隐层的自编码器变得不可行

自顶向下的监督学习:

  (就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调)基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以deep learning效果好很大程度上归功于第一步的feature learning过程。

  多层感知机其实在上世纪已经被提出来了,但是为什么它没有得到广泛应用呢?其原因在于对多层非线性网络进行权值优化时很难得到全局的参数。因为一般使用数值优化算法(比如BP算法)时需要随机给网络赋一个值,而当这个权值太大的话,就很容易收敛到”差”的局部收敛点,权值太小的话则在进行误差反向传递时离输入层越近的权值更新越慢,因此优化问题是多层NN没有大规模应用的原因。而本文的作者设计出来的autoencoder深度网络确能够较快的找到比较好的全局最优点,它是用无监督的方法(这里是RBM)先分开对每层网络进行训练,然后将它当做是初始值来微调。这种方法被认为是对PCA的一个非线性泛化方法。

【神经网络】Reducing the Dimensionality of Data with Neural Networks的更多相关文章

  1. 一天一经典Reducing the Dimensionality of Data with Neural Networks [Science2006]

    别看本文没有几页纸,本着把经典的文多读几遍的想法,把它彩印出来看,没想到效果很好,比在屏幕上看着舒服.若用蓝色的笔圈出重点,这篇文章中几乎要全蓝.字字珠玑. Reducing the Dimensio ...

  2. Deep Learning 16:用自编码器对数据进行降维_读论文“Reducing the Dimensionality of Data with Neural Networks”的笔记

    前言 论文“Reducing the Dimensionality of Data with Neural Networks”是深度学习鼻祖hinton于2006年发表于<SCIENCE > ...

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

    Deeplearning原文作者Hinton代码注解 Matlab示例代码为两部分,分别对应不同的论文: . Reducing the Dimensionality of data with neur ...

  4. Reducing the Dimensionality of Data with Neural Networks:神经网络用于降维

    原文链接:http://www.ncbi.nlm.nih.gov/pubmed/16873662/ G. E. Hinton* and R. R. Salakhutdinov .   Science. ...

  5. 论文阅读---Reducing the Dimensionality of Data with Neural Networks

    通过训练多层神经网络可以将高维数据转换成低维数据,其中有对高维输入向量进行改造的网络层.梯度下降可以用来微调如自编码器网络的权重系数,但是对权重的初始化要求比较高.这里提出一种有效初始化权重的方法,允 ...

  6. 【Deep Learning】Hinton. Reducing the Dimensionality of Data with Neural Networks Reading Note

    2006年,机器学习泰斗.多伦多大学计算机系教授Geoffery Hinton在Science发表文章,提出基于深度信念网络(Deep Belief Networks, DBN)可使用非监督的逐层贪心 ...

  7. Reducing the Dimensionality of Data with Neural Networks

    ****************内容加密中********************

  8. 深度神经网络多任务学习(Multi-Task Learning in Deep Neural Networks)

    https://cloud.tencent.com/developer/article/1118159 http://ruder.io/multi-task/ https://arxiv.org/ab ...

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

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

随机推荐

  1. HTTPS 指南

    苹果在 WWDC 2016 上宣布:2016 年底将要求所有 APP 适配苹果的 App Transport Security,简单地说就是除了特殊情况(浏览器.第三方服务.媒体)外,APP 跟服务端 ...

  2. Android--ListView 分割线

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  3. 【java】详解JDK的安装和配置

    目录结构: contents structure [+] 什么是JDK JDK的三个版本 JDK包含的主要内容 JDK的安装 JDK的配置 配置JAVA_HOME 配置PATH 到底自己需不需要配置C ...

  4. Windows 重装系统-用户转移User和Program Files 文件夹

    原文地址:https://blog.csdn.net/sinat_38799924/article/details/74059037 重装系统时为了让系统数据保持可用我们需要做一些备份处理.比如用户数 ...

  5. numpy 数组迭代Iterating over arrays

    在numpy 1.6中引入的迭代器对象nditer提供了许多灵活的方式来以系统的方式访问一个或多个数组的所有元素. 1 单数组迭代 该部分位于numpy-ref-1.14.5第1.15 部分Singl ...

  6. 《JAVA与模式》之备忘录模式

    一.备忘录(Memento)模式结构 备忘录对象是一个用来存储另外一个对象内部状态的快照(snapshot)的对象.备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来, ...

  7. mysql 创建函数问题

    ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declar ...

  8. MySQL 错误1418

    创建function的时候报如下错误: Error Code : This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA ...

  9. API设计原则

    译序 Qt的设计水准在业界很有口碑,一致.易于掌握和强大的API是Qt最著名的优点之一.此文既是Qt官网上的API设计指导准则,也是Qt在API设计上的实践总结.虽然Qt用的是C++,但其中设计原则和 ...

  10. High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件

    原文地址:https://www.codeproject.com/articles/14075/high-speed-charting-control 本文翻译在CodeProject上的介绍(主要还 ...