大家都清楚神经网络在上个世纪七八十年代是着实火过一回的,尤其是后向传播BP算法出来之后,但90年代后被SVM之类抢了风头,再后来大家更熟悉的是SVM、AdaBoost、随机森林、GBDT、LR、FTRL这些概念。究其原因,主要是神经网络很难解决训练的问题,比如梯度消失。当时的神经网络研究进入一个低潮期,不过Hinton老人家坚持下来了。

功夫不负有心人,2006年Hinton和学生发表了利用RBM编码的深层神经网络的Science Paper:Reducing the Dimensionality of Data with Neural Networks,不过回头来看,这篇paper在当今的实用性并不强,它的更大作用是把神经网络又推回到大家视线中,利用单层的RBM自编码预训练使得深层的神经网络训练变得可能,但那时候Deep learning依然争议很多,最终真正爆发是2012年的ImageNet的夺冠,这是后话。

如图中所示,这篇paper的主要思想是使用受限RBM先分层训练,受限的意思是不包含层内的相互连接边(比如vi*vj或hi*hj)。每一层RBM训练时的目标是使得能量最小:

能量最小其实就是P(v, h)联合概率最大,而其他v’相关的p(v’, h)较小,后面这个是归一化因子相关。这块如果理解有问题的,需要补一下RBM相关知识,目前网上资料不少了。

大致的过程为,从输入层开始,不断进行降维,比如左图中的2000维降到1000维, 降维时保证能量最小,也就是输出h和输入v比较一致,而和其他输入v’不一致,换句话说,输出尽量保证输入的信息量。降维从目标上比较类似于PCA,但Hinton在文章说这种方法比PCA效果会好很多,尤其是经过多层压缩的时候(比如784个像素压缩到6个实数),从原理应该也是这样的,RBM每一层都尽量保留了输入的信息。

预训练结束后,就会展开得到中间的解码器,这是一个叠加的过程,也就是下一层RBM的输出作为上一层RBM的输入。

最后再利用真实数据进行参数细调,目标是输入图片经过编码解码后尽量保持原图信息,用的Loss函数是负Log Likelihood:

这篇在今天看来实用性不太大,难度也不大,但在当时这篇文章看起来还是晦涩的,很多原理没有细讲。为何能中Science?个人认为,毕竟Hinton是神经网络的泰斗,换个人名不见经传的人估计中不了,另外这篇文章也确实使得以前不可能的深层神经网络变得可能了,在今天依然有很多可以借鉴的地方,细心的同学会发现上百或上千层的ResNet的思想在一定程度上和这篇论文是神似的。ResNet也是意识到深层(152层)不好直接训练,那就在单层上想办法,将原来直接优化H(x)改为优化残差F(x) = H(x)-x,其中H(X)是某一层原始的的期望映射输出,x是输入,相当于输入x有个直通车到达该层输出,从而使得单层的训练更加容易。

参考资料:

[1] Paper:http://www.cs.toronto.edu/~hinton/science.pdf

[2] 代码:http://www.cs.toronto.edu/~hinton/MatlabForSciencePaper.html


本文只是简单回顾,疏漏之处敬请谅解,感兴趣的可以加QQ群一起学习:252085834

#Deep Learning回顾#之2006年的Science Paper的更多相关文章

  1. #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

    CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...

  2. #Deep Learning回顾#之基于深度学习的目标检测(阅读小结)

    原文链接:https://www.52ml.net/20287.html 这篇博文主要讲了深度学习在目标检测中的发展. 博文首先介绍了传统的目标检测算法过程: 传统的目标检测一般使用滑动窗口的框架,主 ...

  3. Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet - 我爱机器学习

    http://www.cnblogs.com/52machinelearning/p/5821591.html

  4. Deep Learning 经典网路回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

    #Deep Learning回顾#之LeNet.AlexNet.GoogLeNet.VGG.ResNet 深入浅出——网络模型中Inception的作用与结构全解析 图像识别中的深度残差学习(Deep ...

  5. deep learning 经典网络模型之Alexnet、VGG、Googlenet、Resnet

    CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...

  6. 深度学习Deep learning

    In the last chapter we learned that deep neural networks are often much harder to train than shallow ...

  7. The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near

    The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near ...

  8. Popular Deep Learning Tools – a review

    Popular Deep Learning Tools – a review Deep Learning is the hottest trend now in AI and Machine Lear ...

  9. Does Deep Learning Come from the Devil?

    Does Deep Learning Come from the Devil? Deep learning has revolutionized computer vision and natural ...

随机推荐

  1. exel按行查找或按列查找

    表1:sheet1 1). 在表1中找出ID号位0928的基因相对应的数值 在相对应的单元格输入:B2=VLOOKUP(A:A,Sheet1!A:D,3,0) 既可以得到: ············· ...

  2. XPath使用实例

    实例 1基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径 //BBB           选择所有BBB元素 /AAA/CCC 选择 ...

  3. 从C++到GO

    从C++到GO 刚开始接触Go语言,看了两本Go语言的书,从c++开发者的角度来看看go语言的新特性,说下自己感触较深的几点: 并发编程 Go语言层面支持协程,将并发业务逻辑从异步转为同步,大幅提高开 ...

  4. windows apache开启url rewrite

    加载Rewrite模块: 在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号“#”, ...

  5. Redis教程(二):String数据类型

    一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...

  6. eclipse导入android项目红叉和红色感叹号怎么解决

    解决办法如下:第一步:你要确保这个项目没有问题,有的项目本身就有问题,例如:xml文件,java程序等本身就有错.第二步:在Eclipse菜单中选择“Project”----〉Clean 解决不了,下 ...

  7. Mysql安装出现=========== install/remove of the Service Denied

    在安装mysql过程中遇到一个问题  install/remove of the Service Denied,这个问题说明自己没有安装和删除的权利,原因是自己在运行cmd过程是没有使用管理员身份运行 ...

  8. Cordova+Ionic之坑

    命令:ionic platform add android 报错:Unable to start the daemon process…… 解决: 1)添加环境变量[_JAVA_OPTIONS],值: ...

  9. 电子爱好者DIY篇

    2016/7/15 电子爱好者DIY篇 一年和之前就想到了一些感悟,现在有些模糊的清晰起来了,但还是不够清晰,故写下来做个日志. 结论 首先把结论放在前面.目前随着电子集成电路的发展,电子DIY越来越 ...

  10. spring 驱动模式

    驱动模式 public class ProAction extends ActionSupport implements ModelDriven<Product>{ //驱动模式 priv ...