神经⽹络与深度学习 Neural Networks and Deep Learning

关于作者

Reference

感知器在 20 世纪五、六⼗年代由科学家 Frank Rosenblatt 发明,其受到 Warren McCulloch 和 Walter Pitts 早期的⼯作的影响。



 MNIST 数据集

专业的数学家如何思考⾼维空间的讨论

 Numpy 的 Python 库,⽤来做快速线性代数

MNIST 数据集的特殊格式的数据

使⽤ scikit-learn Python 程序库,它提供了⼀个简单的 Python 接⼝,包装了⼀个⽤于 SVM 的快速的,称为 LIBSVM 的 C 库。

 Andreas Mueller 的博客。Mueller 展⽰了通过⼀些优化SVM 参数的⼯作

Regularization of Neural Networks using DropConnect

反向传播算法最初在 1970 年代被提及,但是⼈们直到 David Rumelhart、Geoffrey Hinton 和Ronald Williams 的著名的 1986 年的论⽂中才认识到这个算法的重要性。


二元熵。 链式法则

使⽤交叉熵来对 MNIST 数字进⾏分类


交叉熵是“不确定性”的一种度量 可以阅读 Cover and Thomas 的第五章涉及 Kraft 不等式的有关信息论的内容。

 过度拟合   这个引⽤的故事来⾃⼀篇 Freeman Dyson 所写的引⼈⼊胜的⽂章。他是提出这个有瑕疵的模型的⼈之⼀。⼀个关于四个参数模拟⼤象的例⼦可以在这⾥ 找到。

 These issues go back to the problem of induction, famously discussed by the Scottish philosopher David Hume in
”An Enquiry Concerning Human Understanding” (1748). The problem of induction has been given a modern machinelearning form in the no-free lunch theorem (link) of David Wolpert and William Macready (1997).

梯度下降学习的动态有⼀种⾃规范化的效应。
13 In Gradient-Based Learning Applied to Document Recognition, by Yann LeCun, Léon Bottou, Yoshua Bengio, andPatrick Haffner (1998).


14 ImageNetClassificationwithDeepConvolutionalNeuralNetworks,byAlexKrizhevsky,IlyaSutskever,andGeoffrey
Hinton (2012).
“因为神经元不能依赖其他神经元特定的存在,这个技术其实减少了复杂的互适应的神经元。所以,强制要学习那些在
神经元的不同随机⼦集中更加健壮的特征。 ”

15 Improving neural networks by preventing co-adaptation of feature detectors by Geoffrey Hinton, Nitish Srivastava,Alex Krizhevsky, Ilya Sutskever
弃权技术的真正衡量是它已经在提升神经⽹络性能上应⽤得相当成功。原始论⽂ 15 介绍了将其应⽤于很多不同任务的技术。


7 Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis, by Patrice Simard, Dave
Steinkraus, and John Platt (2003)
这⽚论⽂中,作者在 MNIST 上使⽤了⼏个的这种想法的变化⽅式。其中⼀种他们考虑的⽹络结构其实和我们已经使⽤过的类似——⼀个拥有 800 个隐藏元的前馈神经⽹络,使⽤了交叉熵代价函数。

使⽤ scikit-learn 库提供的 SVM 替换神经⽹络

对“算法 A 是不是要⽐算法 B 好? ”正确的反应应该是“你在使⽤什么训练集合? ”
显著的例⼦参⻅ Scaling to very very large corpora for natural language disambiguation, by Michele Banko and
Eric Brill (2001).

权重初始化⽅法  看看在 2012 年的 Yoshua Bengio 的论⽂ 22 的14 和 15 ⻚,以及相关的参考⽂献
 Practical Recommendations for Gradient-Based Training of Deep Architectures, by Yoshua Bengio (2012)

⽹格搜索的成就和限制(易于实现的变体)在 James Bergstra 和 Yoshua Bengio 2012 年的 论⽂中已经给出了综述。很多更加精细的⽅法也被⼤家提出来了。我这⾥不会给出介绍,但是想指出 2012 年使⽤⻉叶斯观点⾃动优化超参数的论⽂。代码可以获得,也已经被其他的研究⼈员使⽤了。

优化代价函数的⽅法:当你越来越深⼊了解神经⽹络时,值得去尝试其他的优化技术,理解他们⼯作的原理,优势劣势,以及在实践中如何应⽤。前⾯我提到的⼀篇论⽂ 25 ,介绍并对⽐了这些技术,包含共轭梯度下降和 BFGS ⽅法(也可以看看 limited memory BFGS,L-BFGS。另⼀种近期效果很不错技术 26 是 Nesterov 的加速梯度技术,这个技术对 momentum 技术进⾏了改进。
 Efficient BackProp, by Yann LeCun, Léon Bottou, Genevieve Orr and Klaus-Robert Müller (1998).
http://www.cs.toronto.edu/~hinton/absps/momentum.pdf
例如, 看看 On the importance of initialization and momentum in deep learning, by Ilya Sutskever, James Martens,
George Dahl, and Geoffrey Hinton (2012).

 你怎么看那些全部由实验效果⽀撑(⽽⾮数学保证)的使⽤和研究机器学习技术呢?同样,在哪些场景中,你已经注意到这些技术失效了?

https://zh.wikipedia.org/wiki/哈恩-巴拿赫定理
http://www.dartmouth.edu/~gvc/Cybenko_MCSS.pdf
普遍性定理
1 Approximation by superpositions of a sigmoidal function, by George Cybenko (1989). The result was very much
in the air at the time, and several groups proved closely related results. Cybenko’s paper contains a useful discussionof much of that work. Another important early paper is Multilayer feedforward networks are universal approximators,by Kurt Hornik, Maxwell Stinchcombe, and Halbert White (1989). This paper uses the Stone-Weierstrass theorem toarrive at similar results

http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf
正如线路的⽰例中看到的那样,存在着理论上的研究结果告诉我们深度⽹络在本质上⽐浅层⽹络更加强⼤ 
1 对某些问题和⽹络结构,Razvan Pascanu, Guido Montúfar, and Yoshua Bengio 在 2014 年的这篇⽂章 On the
number of response regions of deep feed forward networks with piece-wise linear activations 给出了证明。更加详细
的讨论在 Yoshua Bengio 2009 年的著作 Learning deep architectures for AI 的第2部分。



单⼀隐藏层的神经⽹络⽰例   消失的梯度问题

现在有许多关于通过卷积⽹络来更好理解特征的⼯作成果。如果你感兴趣,我建议从 Matthew Zeiler 和 Rob Fergus 的
(2013)论⽂ Visualizing and Understanding Convolutional Networks 开始。

 Theano 的机器学习库

 Amazon Web Services EC2 G2 实例类型你手机上的系统没有可用·的 GPU


 Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis, by Patrice Simard, Dave
Steinkraus, and John Platt (2003).
在 2003 年,Simard,Steinkraus 和Platt 19 使⽤⼀个神经⽹络改进了他们的 MNIST 性能,达到了 99.6%,这个⽹络以其它⽅式和我们的⾮常相似,使⽤两个卷积–混合层,跟着⼀个具有 100 个神经元的隐藏的全连接层。

 仍然有可能在 MNIST 上提⾼性能。Rodrigo Benenson 汇编了⼀份信息汇总⻚⾯,显⽰这⼏年的进展,提供了论⽂的链接。

近期成果的大部分内容、它是⼀篇 Cireșan、Meier、Gambardella、和 Schmidhuber 所著的 2010 年论⽂ 20 。我喜欢这篇论⽂的地⽅是它是如此简单。其中的⽹络是⼀个许多层的神经⽹络,仅使⽤全连接层(没有卷积层) 
Deep, Big, Simple Neural Nets Excel on Handwritten Digit Recognition, by Dan Claudiu Cireșan, Ueli Meier, Luca
Maria Gambardella, and Jürgen Schmidhuber (2010).



2012 LRMD 论⽂:让我从⼀篇源⾃斯坦福和⾕歌的研究⼩组的 2012 年论⽂ 22 开始。我把这篇论⽂称为 LRMD,取⾃前四位作者的姓。LRMD 使⽤⼀个神经⽹络来分类 ImageNet 的图像,⼀个⾮常具有挑战性的图像识别问题。

明显是⼀个⽐ MNIST 更有挑战性的图像识别任务

http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf
2012 KSH 论⽂: LRMD 的成果被⼀篇 Krizhevsky, Sutskever 和 Hinton (KSH) 24 的 2012
年论⽂追随。KSH 训练和测试⼀个深度卷积神经⽹络,它使⽤ ImageNet 数据的⼀个有限的⼦
24 ImageNet classification with deep convolutional neural networks, by Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton (2012).

Alex Krizhevsky 的 cuda-convnet(和接替版本) ,它包含有实现这许多思想的
代码。⼀个基于 Theano 的实现 26 ,代码可以在这⾥得到。

Caffe 神经⽹络框架也包含⼀个 KSH ⽹络的版本,详细参⻅ Model Zoo。
为了做这件事,他们构建了⼀个系统让⼈类对 ILSVRC 图像进⾏分类。其作者之⼀ Andrej Karpathy 在⼀篇博
⽂中解释道,

26 Theano-based large-scale visual recognition with multiple GPUs, by Weiguang Ding, Ruoyan Wang, Fei Mao, andGraham Taylor (2014).

27 Going deeper with convolutions, by Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed,
Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich (2014).
28 ImageNet large scale visual recognition challenge, by Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause,
Sanjeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, Alexander C. Berg,and Li Fei-Fei (2014).


RNN 被⽤来将传统的算法思想,⽐如说 Turing 机或者编程语⾔,和神经⽹络进⾏联系上。这
篇 2014 年的论⽂提出了⼀种 RNN 可以以 python 程序的字符级表达作为输⼊,⽤这个表达来预
测输出。简单说,⽹络通过学习来理解某些 python 的程序

第⼆篇论⽂同样是 2014 年的,使
⽤ RNN 来设计⼀种称之为“神经 Turing 机”的模型。这是⼀种通⽤机器整个结构可以使⽤梯度
下降来训练。作者训练 NTM 来推断对⼀些简单问题的算法,⽐如说排序和复制

一个基于深度⽹络的系统已经⽤在了 Google 的 Android 操作系统中(详⻅ Vincent
Vanhoucke 的 2012-2015 论⽂) 。


一个称为长短期记忆(long short-term memory)的单元进⼊ RNN 中。LSTM 最早是由
Hochreiter和Schmidhuber在1997年提出, 就是为了解决这个不稳定梯度的问题。 LSTM让RNN
训练变得相当简单, 很多近期的论⽂ (包括我在上⾯给出的那些) 都是⽤了LSTM或者相关的想法

http://www.cs.toronto.edu/~hinton/absps/fastnc.pdf
深度信念⽹络,生成式模型和 Boltzmann 机:
 参⻅ Geoffrey Hinton, Simon Osindero 和 Yee-Whye Teh 在 2006 年的 A fast learning algorithm for deep belief
nets, 及 Geoffrey H


DBN 综述

http://www.cs.toronto.edu/~hinton/absps/guideTR.pdf
包含了很多关于 DBN核⼼组件的受限 Boltzmann 机的有价值的信息。


热⻔的领域包含使⽤神经⽹络来做
自然语言处理 natural languageprocessing(see also this informative review paper)、
机器翻译 machine translation,
音乐信息学 music informatics。

http://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
强化学习的技术来学习玩电⼦游戏 play video games well

发布了64 篇原创文章 · 获赞 64 · 访问量 23万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章