1、深度神经网络深度神经网络内容 深度神经网络发展历史、背景 动机Why Deep Learning? 深度学习常用模型Neural networkBack propagation1986 解决了一般性学习问题 与生物系统相联系Nature历史Neural networkBack propagation1986Nature历史x1x2x3w1w2w3Neural networkBack propagation1986 解决了一般性学习问题 与生物系统相联系Nature历史But it is given up SVM Boosting Decision tree 2006Neural network
2、Back propagation1986Nature历史2006Deep belief netScience Unsupervised & Layer-wised pre-training Better designs for modeling and training (normalization, nonlinearity, dropout) New development of computer architectures GPU Multi-core computer systems Large scale databasesBig Data !Neural networks is c
3、oming back!深度学习浪潮 IT Companies are Racing into Deep LearningNeural networkBack propagation1986 Solve general learning problems Tied with biological systemBut it is given up2006Deep belief netSciencedeep learning resultsSpeech2011NatureObject recognition over 1,000,000 images and 1,000 categories (2
4、GPU)Neural networkBack propagation19862006Deep belief netScienceSpeech20112012NatureA. Krizhevsky, L. Sutskever, and G. E. Hinton, “ImageNet Classification with Deep Convolutional Neural Networks,” NIPS, 2012.Neural networkBack propagation19862006Deep belief netScienceSpeech20112012 ImageNet 2013 im
5、age classification challengeMSRA, IBM, Adobe, NEC, Clarifai, Berkley, U. Tokyo, UCLA, UIUC, Toronto . Top 20 groups all used deep learning ImageNet 2013 object detection challengeNeural networkBack propagation19862006Deep belief netScienceSpeech20112012 ImageNet 2014 Image classification challenge I
6、mageNet 2014 object detection challengeNeural networkBack propagation19862006Deep belief netScienceSpeech20112012 Google and Baidu announced their deep learning based visual search engines (2013) Google “on our test set we saw double the average precision when compared to other approaches we had tri
7、ed. We acquired the rights to the technology and went full speed ahead adapting it to run at large scale on Googles computers. We took cutting edge research straight out of an academic research lab and launched it, in just a little over six months.” BaiduNeural networkBack propagation19862006Deep be
8、lief netScienceSpeech20112012Face recognition2014 Deep learning achieves 99.53% face verification accuracy on Labeled Faces in the Wild (LFW), higher than human performanceY. Sun, X. Wang, and X. Tang. Deep Learning Face Representation by Joint Identification-Verification. NIPS, 2014.Y. Sun, X. Wang
9、, and X. Tang. Deeply learned face representations are sparse, selective, and robust. CVPR, 2015.深度学习浪潮 Deep Learning深度学习浪潮 时代背景-数据爆炸还存在很多没有良好解决的问题,例如图像识别、语音识别、自然语言理解、天气预测、基因表达、内容推荐等。深度学习浪潮 时代背景-计算性能提升动机Why Deep Learning? 深度学习 What is Deep Learning?“Deep learning is a set of algorithms in machine le
10、arning that attempt to learn in multiple levels, corresponding to different levels of abstraction. It typically uses artificial neural networks. The levels in these learned statistical models correspond to distinct levels of concepts, where higher-level concepts are defined from lower-level ones, an
11、d the same lower-level concepts can help to define many higher-level concepts.” (Oct. 2013.)“Deep learning is a set of algorithms in machine learning that attempt to model high-level abstractions in data by using model architectures composed of multiple non-linear transformations.” (Aug. 2014)传统机器学习
12、 解决这些问题的思路 良好的特征表达,对最终算法的准确性起了非常关键的作用,而且系统主要的计算和测试工作都耗在这一大部分。 但实际中一般都是人工完成的。特征表达能不能自动地学习一些特征呢?能!Deep Learning生物学启示 人脑视觉机理 “视觉系统的信息处理”:可视皮层是分级的 神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。 关键词:一个是抽象,一个是迭代。 从原始信号,做低级抽象,逐渐向高级抽象迭代。人类的逻辑思维,经常使用高度抽象的概念。不同水平的抽象 层次化表示脑的深层结构why go deep? 深层结构能够有效被表达 对相同的函数需要更少的计算单元 深层结构可
13、产生层次化特征表达 允许非局部扩展 可解释性 多层隐变量允许统计上的组合共享 深层结构有效(vision, audio, NLP等)!Computer Vision FeaturesAudio FeaturesDeep Learning 基本思想 自动地学习特征 假设有一堆输入I(如图像或者文本),我们设计了一个系统S(有n层),通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,, Sn。 对于深度学习来说,其思想就是堆叠多个层 也就是说这一层的输出作为下一层的输入。通过这种方式,就可以实现对输入信息进行分级表达了。 可以略微地放松“输出
14、等于输入”的限制深层 vs 浅层神经网络 多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类 深层网络结构中,高层可以综合应用低层信息 低层关注“局部”,高层关注“全局”、更具有语义化 深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服。 为自适应地学习非线性处理过程提供了一种可能的简洁、普适的结构模型深层 vs 浅层神经网络 “深度模型”是手段,“特征学习”是目的。 强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点; 明确突出了特征学习的重要性,也就是说,通过逐层特征
15、变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易。 与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。BP算法的问题 需要带标签训练数据 几乎所有的数据是无标签的 人脑可以从无标签数据中学习 局部极小 对深层网络远离了最优解 学习时间不适合大数据 梯度消失 Below top few layers, correction signal is minimalniiiiijijjkkjiiiijjidyyyyyxdyyyx1111克服BP的限制 梯度方法对输入的结构建模 建立产生输入的生成式模型,调整参数使得生成式模型的概率最大 Lear
16、n p(image) not p(label | image)What kind of generative model should we learn?Deep learning训练 自下向上的非监督学习(greedy layer-wise training) 自顶向下的监督学习 就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调 微调特征(中间层),使得与问题更相关。Deep Learning的常用模型 AutoEncoder自动编码器AutoEncoder自动编码器 Deep Learning最简单的一种方法 利用人工神经网络本身的层次结构特点 如果给定一个神经网络,假设其输出
17、与输入是相同的,然后训练调整其参数,得到每一层中的权重。 自然地,就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征。 自动编码器就是一种尽可能复现输入信号的神经网络。 为了实现这种复现,自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分AutoEncoder自动编码器 学习过程 无标签数据,用非监督学习学习特征在之前的前向神经网络中,如左图,输入的样本是有标签的,即(input, target),这样根据当前输出和target(label)之间的差去改变前面各层的参数,直到收敛。但现在我们只有无标签数据,也就是右边的图。那么这个
18、误差怎么得到呢?AutoEncoder自动编码器 将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示 那么我们怎么知道这个code表示的就是input呢? 增加一个decoder解码器 decoder输出的信息 vs 开始的输入信号input 通过调整encoder和decoder的参数,使得重构误差最小,这样就得到输入input信号的一个表示了,也就是编码code。 因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。AutoEncoder自动编码器 网络结构 三层结构 输入层,隐藏层,输出层 神经元模型 限定神经元的数量 输入层神经
19、元数=输出层神经元数 隐层神经元数量输入层神经元数量意义:迫使隐藏层节点学习得到输入数据的压缩表示方法AutoEncoder自动编码器 利用类似神经网络的双隐层的方式,简单粗暴地提取了样本的特征。 Tied Weights (Vincent,2010) W=WT 只训练单组W就可以 若W-1=WT的话,W就是个正交矩阵了,即W是可以训成近似正交阵的。) ()(byWsigmoidzbWxsigmoidyAutoEncoder自动编码器 Deep结构逐层训练 自编码器“栈化” 通过编码器产生特征,然后训练下一层。得到第一层的code,重构误差最小让我们相信这个code就是原输入信号的良好表达了,
20、或者牵强点说,它和原信号是一模一样的(表达不一样,反映的是一个东西)。那第二层和第一层的训练方式就没有差别了,将第一层输出的code当成第二层的输入信号,同样最小化重构误差,就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达了。其他层也以同样的方法进行。AutoEncoder自动编码器 监督学习 Deep结构,每一层都会得到原始输入的不同层次的表达。 有监督微调 为了实现分类,可以在AutoEncoder的最顶的编码层添加一个分类器(例如Logistic回归、SVM等),然后通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。AutoEncoder自动编码器
21、 监督学习 最后层的特征code输入到分类器中,基于有标签样本,通过监督学习对网络进行微调1、只调整分类器2、通过有标签样本,微调整个系统:(如果有足够多的数据,end-to-end learning端对端学习)AutoEncoder扩展 Sparse AutoEncoder稀疏自动编码器 限制得到的表达code尽量稀疏 Denoising AutoEncoders降噪自动编码器 数据存在噪声Sparse AutoEncoder稀疏自动编码器 限制得到的表达code尽量稀疏 在AutoEncoder的基础上加上L1的Regularity限制 人脑好像也是这样的,某个输入只是刺激某些神经元,其他
22、的大部分的神经元是受到抑制的Denoising AutoEncoders降噪自动编码器 若训练数据中存在噪声,自动编码器必须学习去除这种噪声而获得真正的没有被噪声污染过的输入。 迫使编码器去学习输入信号的更加鲁棒的表达。 就是以一定概率分布(通常使用二项分布)去擦除原始input矩阵,即每个值都随机置0, 这样看起来部分数据的部分特征是丢失了。 以这丢失的数据x去计算y,计算z,并将z与原始x做误差迭代,这样,网络就学习了这个破损(Corruputed)的数据。Denoising AE降噪自动编码器 破损数据的作用 通过与非破损数据训练的对比,破损数据训练出来的Weight噪声比较小。 破损数
23、据一定程度上减轻了训练数据与测试数据的代沟。 这样胡乱擦除原始input真的很科学?真的没问题? Vincent又从大脑认知角度给了解释:人类具有认知被阻挡的破损图像能力,此源于我们高等的联想记忆感受机能。我们能以多种形式去记忆(比如图像、声音),所以即便是数据破损丢失,我们也能回想起来。两隐层自编码网络MNIST手写数字识别 训练一个包含两个隐含层的栈式自编码网络,用来进行MNIST手写数字分类1. 用原始输入x(k)训练第一个自编码器,学习得到原始输入的一阶特征表示h(1)(k)http:/ufldl.stanford.edu/wiki/index.php/栈式自编码算法两隐层自编码网络M
24、NIST手写数字识别把上一层的一阶特征作为另一个稀疏自编码器的输入,使用它们来学习二阶特征h(2)(k)两隐层自编码网络MNIST手写数字识别将二阶特征作为softmax分类器的输入,训练得到一个能将二阶特征映射到数字标签的模型两隐层自编码网络MNIST手写数字识别将这三层结合起来构成一个栈式自编码网络,通过反向传播算法(BP)同时调整所有层的参数以改善学习结果(称为整体细调fine-tuning)栈式自编码器神经网络 栈式自编码神经网络具有强大的表达能力及深度神经网络的所有优点。 通常能够获取到输入的“层次型分组”或者“部分-整体分解”结构。 学习方式:前层的输出作为下一层输入的方式依次训练
25、。 如果网络的输入数据是图像,网络的第一层会学习如何去识别边,第二层一般会学习如何去组合边,从而构成轮廓、角等。更高层会学习如何去组合更形象且有意义的特征。 如果输入数据集包含人脸图像,更高层会学习如何识别或组合眼睛、鼻子、嘴等人脸器官。Deep Learning的常用模型 Deep Belief Networks(DBN)发展历程 Hopfield network Boltzman machine Restricted Boltzman machine DBNHopfield Network 结构 单层全互连、对称权值的反馈网络 状态:-1(0),+1 网络演化 Hopfield网络按动力学
26、方式运行。,其工作过程为状态的演化过程,即从初始状态按能量减小的方向进行演化,直到达到稳定状态。稳定状态即为网络的输出52二值随机神经元 (Bernoulli variables) These have a state of 1 or 0. The probability of turning on is determined by the weighted input from other units (plus a bias)001jjijiiwsbsp)exp(1)(11jjijiwsb)(1isp波尔兹曼机 Boltzmann Machine 结构类似于Hopfield 网络,但它是具
27、有隐单元的反馈互联网络 遵循波尔兹曼分布,学习数据的固有内在表示BM基本原理1. Hopfield网络的神经元的结构功能及其在网络中的地位网络的神经元的结构功能及其在网络中的地位是一样的。是一样的。但但BM中一部分神经元与外部相连中一部分神经元与外部相连,可以起到网可以起到网络的输入、输出功能络的输入、输出功能,或者严格地说可以受到外部条件的或者严格地说可以受到外部条件的约束。约束。另一部分神经元则不与外部相连,因而属于隐单元另一部分神经元则不与外部相连,因而属于隐单元2.每个神经元只取每个神经元只取1或或0这两种状态:这两种状态: 状态状态1代表该神经元处于接通状态,状态代表该神经元处于接通
28、状态,状态0代表该神经元代表该神经元处于断开状态处于断开状态wji= wij , wii =0网络结构复杂、训练代价大、局部极小受限波尔兹曼机 Restricted Boltzmann Machines Restricted Boltzmann Machine(RBM) 通过输入数据集学习概率分布的随机生成神经网络RBM结构:一个可见层一个可见层一个隐层一个隐层层内无连接层内无连接 二层图: 一层是可视层,即输入数据层一层是可视层,即输入数据层(v) 一层是隐藏层一层是隐藏层(h)所有的节点都是二值变量所有的节点都是二值变量RBM中,隐单元在给定可视单元情况下,条件独立中,隐单元在给定可视单元
29、情况下,条件独立55受限波尔兹曼机 RBM的参数的参数 ,均为实数,均为实数,Wij表示可见单元表示可见单元i和隐单元和隐单元j之间的连接权重,之间的连接权重,bi和和aj分别表示可见单元分别表示可见单元i和隐单元和隐单元j的偏置。的偏置。 定义联合组态(jointconfiguration)能量: 当参数确定时,基于该能量函数,得到当参数确定时,基于该能量函数,得到 (v,h)的联合概率分布的联合概率分布受限波尔兹曼机 受限波尔兹曼机 学习目标:极大似然 给定N个样本Niivp1)(log(maxRBM 极大似然 v 为观测变量,h 为隐变量,其能量函数为:E(v, h; ) 概率值:p(v
30、,h), p(v), p(h), p(v|h), p(h|v)RBM 极大似然RBM CD 算法思想 (Hinton, 2002)Contrastive Divergence观测分布真实分布RBM 具体参数W, a, b RBM 的能量:E(v,h) = vTWh bTv aTh 概率形式RBM 具体参数RBM 对于hj0;1, vi 0;1, 可进一步化简:RBM 通过采样来计算第二项: CD-K算法 再回顾ML算法目标xxpxxfLxpxfxfE)()(1)()()(Niivp1)(log(maxRBM 算法流程(CD-1): 输入样本为v1,v2, vn,设观测变量v, 隐变量h 将对各
31、参数的偏导数初始化为 wij=0, aj=0, bi=0; For k =1, N: v(0) vn For j = 1,.,m, do sample: For i=1,.,n, do sample: 计算梯度,最后平均(样本数))0(|()0(vhphjj(隐结点数))|()0()1(hvpvii(维数)RBM CD-1算法RBM 图解RBM 训练技巧(结构已定) 将数据分成Batch, 在每个batch 内并行计算 将CD-算法折衷成CD-1算法 监控学习过程 防止overfitting 监控学习率 增加动力机制(选样) 增加稀疏机制(联接)G. Hinton. A Practical G
32、uide to Training Restricted Boltzmann Machines, Tech Report, No.UTML TR 2010-003, Department of Computer Science, University of Toronto, CanadaDeep Belief Networks(DBNs) 概率生成模型 深层结构多层 非监督的预学习提供了网络好的初始化 maximizing the lower-bound of the log-likelihood of the data 监督微调(fine-tuning) Generative: Up-down
33、 algorithm Discriminative: backpropagationDBN结构Hinton et al., 2006DBN Greedy training 第一步 Construct an RBM with an input layer v and a hidden layer h Train the RBMDBN Greedy training 第二步 Stack another hidden layer on top of the RBM to form a new RBM Fix W1, sample h1 from Q(h1|v) as input. Train W2
34、as RBM.DBN Greedy training 第三步 Continue to stack layers on top of the network, train it as previous step, with sample sampled from Q(h2|h1) And so onFine-tuning Training for classification逐层贪婪训练 RBM specifies P(v,h) from P(v|h) and P(h|v) Implicitly defines P(v) and P(h) Key idea of stacking Keep P(
35、v|h) from 1st RBM Replace P(h) by the distribution generated by 2nd level RBM逐层贪婪训练 Easy approximate inference P(hk+1|hk) approximated from the associated RBM Approximation because P(hk+1) differs between RBM and DBN Training: Variational bound justifies greedy layerwise training of RBMsDBN识别手写数字待识别
36、数字的黑白位图隐性神经元识别结果关闭状态的神经元开启状态的神经元Result is righterror rate: DBN 1.2%,Compare with SVM 1.4%DBN提取音频特征DBN训练一个5层的深度网络提取音乐的特征,用于音乐风格的分类参考文献:参考文献:Philippe Hamel and Douglas Eck, LEARNING FEATURES FROM MUSIC AUDIO WITH DEEP BELIEF NETWORKS.3个隐藏层输入的原始数据是经过分帧,加窗之后的信号的频谱分类器采用的是支持向量机SVM对比的方法是MFCCs,分类器同样采用SVMDBN
37、提取音频特征具有不同流派音频的不同表示的2维映射和输入Inputs、MFCCs相比,DBN算法中隐藏层的激活的聚类表达更明确,分类的准确度更高。小结 深度神经网络发展历史、背景 动机Why Deep Learning? 深度学习常用模型References G. Hinton. A Practical Guide to Training Restricted Boltzmann Machines, Tech Report, No. UTML TR 2010-003, Department of Computer Science, University of Toronto, Canada G.
38、 Hinton and R. Salakhutdinov. Reducing the Dimensionality of Data with Neural Networks. Science, 2006 Vincent, Pascal, et al. Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion. Journal of Machine Learning Research 11.12(2010):3371-3408
39、. Yoshua Bengio: Learning Deep architectures for AI, Foundations and Trends in Machine Learning, 2(1), 2009 http:/ G. Hinton, S. Osindero and Y. W. Teh. A fast learning algorithm for deep belief nets. Neural Computation, 2006 Kevin P. Murphy. Machine Learning: A Probabilistic Perspective. Chapter 28 : Deep Learning. The MIT Press, 2012 Bengioy 的书:http:/www.iro.umontreal.ca/bengioy/DLbook/Thanks!