1、1,侯越先网络智能信息技术研究所,神经网络及深度学习I(模型、应用篇),2,主要内容,1、深度学习的动机和挑战,为什么要设计深层结构?为什么深层结构很难训练?逐层预训练!,2、深度信念网络(Deep Belief Nets),受限玻尔兹曼机(Restricted Boltzmann Machines)对比散度(Contrastive Divergence)算法堆叠RBM形成DBN,3、自动编码机(Auto-Encoders),4、Word2vec,Auto-Encoders堆叠Auto-Encoders,模型:CBOW&Skip-gram优化:Hierarchical Softmax & Ne
2、gative Sampling,3,导引:深度学习是什么,用深层结构来学习高层次特征的一系列方法,4,可训练特征的抽取,特征抽取效果比较:从上到下分别是原始图像30维Autoencoder重构30维PCA重构,5,大纲深度学习简介为什么要设计深层结构?为什么深层结构很难训练?逐层预训练!深度信念网络(Deep Belief Nets)受限玻尔兹曼机(Restricted Boltzmann Machines)对比散度(Contrastive Divergence)算法堆叠RBM形成DBN自动编码机(Auto-Encoders)Auto-Encoders堆叠Auto-EncodersWord2v
3、ec简介模型:CBOW&Skip-gram优化:Hierarchical Softmax & Negative Sampling,6,深层结构,需要用强非线性函数来得到高层次抽象表示。抽象表示不能过度依赖于不确定因素(如:轻微的视角和光照变化)。经验上,深层结构是获得这种抽象的一种有效方法:各中间层产生更高层次的抽象。更严格的解释?,7,深层结构,8,为什么深层的结构很难训练,在经过几次反复的乘法后, 可能会趋近于零,形成大尺度的梯度“平坦区”。,在反向传播的过程中,梯度很容易消失。,9,深层神经网络的实验性能分析,MNIST数字分类任务;400次实验(随机初始值)层数增加,误差反而也增加,1
4、0,解决方案:逐层预训练,优化目标:样本的似然函数P(x)一次训练一层,11,解决方案:逐层预训练,在预训练的基础上通过反向传播误差来微调目标函数:P(y|x),12,解决方案:逐层预训练,关键思想:先将注意力集中在用深层网络建模输入的P(X),即生成模型; 再考虑如何优化任务P(Y|X)。,额外的优势:能利用大规模的无标签数据!,13,大纲深度学习简介为什么要设计深层结构?为什么深层结构很难训练?逐层预训练深度信念网络(Deep Belief Nets)受限玻尔兹曼机(Restricted Boltzmann Machines)对比散度(Contrastive Divergence)算法堆叠
5、RBM形成DBN自动编码机(Auto-Encoders)Auto-Encoders堆叠Auto-EncodersWord2vec简介模型:CBOW&Skip-gram优化:Hierarchical Softmax & Negative Sampling,14,深度学习的一般方法框架,目标:学习函数 f : x y。预训练:先学习输入x的隐含特征h,再学习x h yh可看作是生成数据的隐变量!如何从数据x中挖掘有用的隐含特征?利用层叠的生成分布学习模型例子:深度置信网络(DBN)由层叠的受限玻尔兹曼机(RBM)构成,15,受限玻尔兹曼机(RBM),RBM是基于能量的模型:激发规则: 只有h-x
6、之间的交互归一化: 称为配分函数稳态概率概率:,注:sigmoid函数,16,受限玻尔兹曼机(RBM),例子:继续假设 和 均为二元变量。令权值 , 为1,其他均为-1,且b = d = 0。此时,该RBM定义了一个 上的稳态分布,且 拥有高稳态概率。,17,训练RBM,我们关心的是似然函数 :RBM的学习任务:通过最大化训练集上(假设T个样本)的对数似然函数,学习参数的值。,18,训练RBM,使用随机梯度上升法求 的最大值,关键步骤是计算 关于各参数的偏导数。以参数 为例,通过计算得到对数似然函数关于 的梯度:,19,对比散度(CD)算法,上式中的 无法精确地求得,只能通过采样的方法获取其近
7、似值。由于RBM神经元状态的条件独立性,可以采用Gibbs采样交替地获得x和h的值,但是需要较大采样步数。CD算法是一种快速的采样算法:用训练数据初始化后,只需要k(通常k=1)步Gibbs采样便可以得到足够好的近似。,20,对比散度(CD)算法,以更新参数 为例,CD算法的过程为:从 中采样从 中采样从 中采样更新参数:,21,Deep Belief Nets (DBN) = Stacked RBM,DBN定义了一种数据生成模型,堆叠的RBM也能够用来初始化DNN( Deep Neural Network ),22,DBN总结,DBN是由多个RBM堆叠而成的概率生成模型 逐层的预训练DBN,
8、再做有监督的精细训练,是使DBN重 新受关注的关键。 预训练关注的是优化数据的似然函数(生成模型),并非最终的标签。先建模P(x)要优于建模P(y|x)。 RBM的训练代价很高,解决办法:CD算法。,23,问题和思考,问题?思考题: 1 由统计机器学习的观点,如何在概念上理解预训练的过程? 2 由数值优化的观点,如何在概念上理解预训练的过程? 3 如何证明RBM的激发规则和稳态概率分布互相蕴含?,24,大纲深度学习简介为什么要设计深层结构?为什么深层结构很难训练?逐层预训练深度信念网络(Deep Belief Nets)受限玻尔兹曼机(Restricted Boltzmann Machines
9、)对比散度(Contrastive Divergence)算法堆叠RBM形成DBN自动编码机(Auto-Encoders)Auto-Encoders堆叠Auto-EncodersWord2vec简介模型:CBOW&Skip-gram优化:Hierarchical Softmax & Negative Sampling,25,Auto-Encoders,相比于RBM,更为简单的选择。,激励h来给出更小的重建误差:目标:重建:应用反向传播算法来训练该模型。此时, 既作为输入又作为输出。,26,Stacked Auto-Encoders (SAE),Encoder和Decoder与RBM中的P(h|
10、x)和P(x|h)意义是一样的,所以也可以以同样的方式堆叠起来,形成深层结构。,27,去噪Auto-Encoders,为了促使隐层发现更为鲁棒性的特征,而不是学习二者的同一性(identity)。通过降低依赖于 的重建误差,来训练权值。提取特征的能力比一般Auto-encoder更强。,28,Autoencoder总结,区别于RBMs, Auto-encoders 是确定性 vs.模型经常是浅层的,训练速度快,29,问题和思考,问题?思考题:为何去噪Autoencoder经常可以获得更鲁棒的特征表示?,30,大纲深度学习简介为什么要设计深层结构?为什么深层结构很难训练?逐层预训练深度信念网络(
11、Deep Belief Nets)受限玻尔兹曼机(Restricted Boltzmann Machines)对比散度(Contrastive Divergence)算法堆叠RBM形成DBN自动编码机(Auto-Encoders)Auto-Encoders堆叠Auto-EncodersWord2vec简介模型:CBOW&Skip-gram优化:Hierarchical Softmax & Negative Sampling,31,Word2vec导引,深度学习:学习高层次的特征。Word2vec:浅层网络便可以学到很好的语义特征。语义特征:单词、句子或文档在低维连续空间上的向量表示 (embe
12、dding )相似度计算解决维数灾难问题: (词表大小) 50100,32,Word2vec的前身神经网络语言模型(NNLM),参数C是|V|*m的矩阵,即为要优化的词向量,每个单词向量的维数为m。 优化目标是最大化:,33,Word2vec模型,Mikolov et al, Efficient Estimation of Word Representations in Vector Space, ICLR 2013.Mikolov et al, Distributed Representations of Words and Phrases and their Compositionalit
13、y, NIPS 2013.https:/ Softmax将单词分类,省去了计算Softmax分母的时间。,35,Skip-gram + Hierarchical Softmax,最大化:,计算Softmax分母,需要查找词表中所有单词向量。,解决办法:采用Hierarchical Softmax,36,Hierarchical Softmax,可以对词表中每一个词采用Huffman编码。本来需要遍历所有的叶子节点,现在只需要遍历从根节点到一个叶子节点的路径。,37,问题和思考,问题?思考题:NNLM和Word2Vector模型的工作机理的解释是相当直觉化,尝试给出相对更形式化的解释。,38,深
14、度学习资源,Tutorials Deep Learning tutorials: http:/ Stanford deep learning tutorials with simple programming assignments and reading list http:/deeplearning.stanford.edu/wiki/ Recursive Autoencoder class project http:/cseweb.ucsd.edu/elkan/250B/learningmeaning.pdf Graduate Summer School: Deep Learning, Feature Learninghttp:/www.ipam.ucla.edu/programs/gss2012/ ICML 2012 Representation Learning tutorialwww.iro.umontreal.ca/bengioy/talks/deep-learning-tutorial-2012.html More reading (including tutorial references):http:/nlp.stanford.edu/courses/NAACL2013/,