RBM模型中显层和隐层的偏置有什么意义

12972人阅读
Deep Learning(16)
在介绍EBM(Energy Based Model)和BM(Boltzmann Machines)之前,我们先来了解一下产生式模型(generative model)和判别式模型(discriminative model)的区别
产生式模型:用来估计联合概率P(x,y), 因此可以根据联合概率来生成样本,如HMM
(1,0),(1,0), (2,0), (2, 1)
产生式模型:
P(x,y): & &P(1, 0) = 1/2, P(1, 1) = 0, P(2, 0)= 1/4, P(2, 1) = 1/4.
判别式模型:
P(y|x): & &P(0|1) = 1, P(1|1) = 0, P(0|2) =1/2, P(1|2) = 1/2
基于能量的模型和波尔兹曼机
包含一个可见层和一个隐层的BM模型如图2(a)所示
BM具有强大的无监督学习能力,能够学习数据中复杂的规则。但是,拥有这种学习能力的代价是其训练/学习时间非常长。此外,不仅无法确切地计算BM所表示的分布,甚至得到服从BM所表示分布的随机样本也很困难。为克服此问题,引入了一种限制的波尔兹曼机(RBM)。RBM具有一个可见层,一个隐层,层内无连接,其结构如图2(b)所示。Roux和Bengio从理论上证明昬只要隐单元的数目足够多,RBM能够拟合任意离散分布。
3. 限制性玻尔兹曼机
玻尔兹曼机(Boltzmann Machine,BM)是一种特殊形式的对数线性的马尔科夫随机场(Markov Random Field,MRF),即能量函数是自由变量的线性函数。 通过引入隐含单元,我们可以提升模型的表达能力,表示非常复杂的概率分布。
限制性玻尔兹曼机(RBM)进一步加一些约束,在RBM中不存在可见单元与可见单元的链接,也不存在隐含单元与隐含单元的链接,如下图所示
RBM的能量函数E(v,h)定义为,
E(v,h)=-b′v-c′h-h′Wv.
其中’表示转置,b,c,W为模型的参数,b,c分别为可见层和隐含层的偏置,W为可见层与隐含层的链接权重。此时,对应的自由能量为,
另外,由于RBM的特殊结构,可见层/隐含层内个单元之间是相互独立的,所以我们有,
使用二值单元的RBM
如果RBM中的每个单元都是二值的,即有vj,hi∈{0,1},我们可以得到,
而对应的自由能量函数为,
使用梯度下降法求解模型参数时,各参数的梯度值如下[2],
4. RBM的学习
前面提到了,RBM是很难学习的,即模型的参数很难确定,下面我们就具体讨论一下基于采样的近似学习方法。学习RBM的任务是求出模型的参数&θ={c,b,W}的值。
4.1 Gibbs采样
Gibbs采样是一种基于马尔科夫链蒙特卡罗(Markov Chain Monte Carlo,MCMC)策略的采样方法。对于一个K为随机向量X=(X1,X2,…,XK),
假设我们无法求得关于X的联合分布P(X),但我们知道给定X的其他分量时,其第k个分量Xk的条件分布,即P(Xk|Xk-),其中Xk-=(X1,X2,…,Xk-1,Xk+1,…,XK),那么,我们可以从X的一个任意状态(比如[x1(0),x2(0),…,xK(0)])开始,利用上述条件
分布,迭代的对其分量依次采样,随着采样次数的增加,随机变量[x1(n),x2(n),…,xK(n)]的概率分布将以n的几何级数的速度收敛于X的联合
概率分布P(X)。也就是说,我们可以在未知联合概率分布的条件下对其进行采样。
基于RBM的对称结构,以及其中神经元状态的条件独立性,我们可以使用Gibbs采样方法得到服从RBM定义的分布的随机样本。在RBM中进行k步Gibbs采样的具体
算法为:用一个训练样本(或可见层的任何随机化状态)初始化可见层的状态v0,交替进行如下采样:
在经过步数k足够大的情况下,我们可以得到服从RBM所定义的分布的样本。此外,使用Gibbs采样我们也可以得到式⑧中第一项的近似。
4.2 对比散度算法
尽管利用Gibbs采样我们可以得到对数似然函数关于未知参数梯度的近似,但通常情况下需要使用较大的采样步数,这使得RBM的训练效率仍然不高,尤其是当观测数据 的特征维数较高时。2002年,Hinton[4]提出了RBM的一个快速学习算法,即对比散度(Contrastive Divergence,CD)。实践证明,对比散度(CD)是一种成功的用于求解对数似然函数
与Gibbs采样不同,Hinton指出当使用训练数据初 始化v0时,我们仅需要使用k(通常k=1)步Gibbs采样变可以得到足够好的近似。在CD算法一开始,可见单元的状态被设置成一个训练样本,并利用式(11)第一个式子
来计算所有隐层单元的二值状态,在所有隐层单元的状态确定了之后,根据式(11)第二个式子来确定第i个可见单元vi取值为1的概率,进而产生可见层的一个重构
(reconstruction)。然后将重构的可见层作为真实的模型代入式(13)各式中第一项,这样就可以进行梯度下降算法了。
在RBM中,可见单元一般等于训练数据的特征维数,而隐层单元数需要事先给定,这里设可见单元数和隐单元数分别为n和m,令W表示可见层与隐层间的链接权重
矩阵(m×n阶),a(n维列向量)和b(m维列向量)分别表示可见层与隐层的偏置向量。
RBM的基于CD的快速学习算法主要步骤如下:
以原始输入数据训练
抽取的特征作为顶部的输入训练
可以通过CD快速训练,这一框架绕过了直接从整体上训练DBN的高复杂度,从而将其化简为对多个的训练问题。经过这种方式训练后,可以再通过传统的全局学习算法,如反向传播算法,对网络进行微调,从而使模型收敛到局部最优点。这种学习算法,本质上等同于先通过逐层RBM训练将模型的参数初始化为较优的值,再通过少量的传统学习算法进一步训练。这样一来,不仅解决了模型训练速度慢的问题,大量试验结果也表明,这种方式能够产生非常好的参数初始值,从而大大提升了模型的建模能力。
References
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1813728次
积分:18132
积分:18132
排名:第374名
原创:153篇
转载:106篇
评论:98条
阅读:6353
(1)(2)(1)(4)(1)(10)(16)(14)(3)(2)(18)(20)(2)(11)(14)(20)(23)(28)(27)(4)(5)(3)(14)(11)(11)Autoencoder与RBM结合使用 - 博客频道 - CSDN.NET
wtq1993的博客
分类:机器学习
AutoEncoder是多层神经网络,其中输入层和输出层表示相同的含义,具有相同的节点数。AutoEncode学习的是一个输入输出相同的“恒等函数”。不过输入和输出相同,使得这个网络的输出没有任何意义。AutoEncoder的意义在于学习的(通常是节点数更少的)中间coder层(最中间的那一层),这一层是输入向量的良好表示。这个过程起到了“降维”的作用。当AutoEncoder只有一个隐含层的时候,其原理相当于主成分分析(PCA),当AutoEncoder有多个隐含层的时候,每两层之间可以用RBM来pre-training,最后由BP来调整最终权值。网络权重更新公式很容易用求偏导数的方法推导出来,算法是梯度下降法。(RBM:层内无连接,层间全连接,二分图)
Denoising AutoEncoder是AutoEncoder的一个变种,与AutoEncoder不同的是,Denoising AutoEncoder在输入的过程中加入了噪声信息,从而让AutoEncoder能够学习这种噪声。
Denoising AutoEncoder与RBM非常像:
(1)参数一样:隐含层偏置、显示层偏置、网络权重
(2)作用一样:都是输入的另一种(压缩)表示
(3)过程类似:都有reconstruct,并且都是reconstruct与input的差别,越小越好
Denoising AutoEncoder与RBM的区别:
背后原理就不说了(RBM是能量函数),区别在于训练准则。RBM是隐含层“产生”显示层的概率(通常用log表示),Denoising AutoEncoder是输入分布与reconstruct分布的KL距离。所用的训练方法,前者是CD-k,后者是梯度下降。RBM固定只有两层;AutoEncoder,可以有多层,并且这些多层网络可以由标准的bp算法来更新网络权重和偏置,与标准神经网络不同的是,AutoEncoder的输入层和最终的输出层是“同一层”,不仅仅是节点数目、输出相同,而是完完全全的“同一层”,这也会影响到这一层相关的权值更新方式。总之,输入与输出是同一层,在此基础上,再由输入与输出的差别构造准则函数,再求各个参数的偏导数,再用bp方式更新各个权重。
【AutoEncoder工程代码】:相关Matlab工程代码主页:
论文:Science – 2006 Science_Reducing the Dimensionality of Data with Neural Networks
(如下所有文件,放到同一个目录下)
1). 下载手写体数据MNIST: , 并在Linux或Windows下进行解压;(60,000 个训练集 和, 10,000 个测试集,数字手写体0-9 10类)
train-images-idx3-ubyte.gz: training set images (9912422 bytes)
train-labels-idx1-ubyte.gz: training set labels (28881 bytes)
t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
2). 下载共轭梯度代码:
3). 下载AutoEncoder代码,包括如下13个Matlab文件:
mnistdeepauto.m //训练AutoEncoder的主文件;
mnistclassify.m //用于训练分类器的主文件;
converter.m //转换MNIST文件为Matlab数据格式;
rbm.m //训练RBM二进制隐层和二进制可视单元;
rbmhidlinear.m //训练RBM高斯隐层和二进制可视单元;
backprop.m //进行fine-tuning的反向传播代码;
backpropclassify.m //利用“Encoder”网络进行分类的反向传播;
CG_MNIST.m //Conjugate Gradient optimization for fine-tuning an autoencoder
CG_CLASSIFY_INIT.m //Conjugate Gradient optimization for classification (training top-layer weights while holding low-level weights fixed)
CG_CLASSIFY.m //Conjugate Gradient optimization for classification (training all weights)
makebatches.m //Creates minibatches for RBM training
mnistdisp.m //显示fine-tuning阶段的进度;
README.txt //说明文件
4). 在Matlab中执行mnistdeepauto.m文件训练autoencoder;我们看一下此文件中大致做了一些什么操作:
maxepoch=10; //RBM学习时的迭代次数
numhid=1000; numpen=500; numpen2=250; numopen=30; //设置各个隐藏层的神经元的个数;这个程序所采用的网络共有四层。【 30】
\\作者提供的二进制数据需要将原始数据文件转换成Matlab数据格式
\\把大的数据块拆成每块100个样本的小块 batchdata [样本数,维数,分块数]
//开始四层RBM训练
\\迭代学习,分别学习到4个RBM模型,mnisthp.mat,&mnisthp2.mat,&mnistpo.mat,&mnistvh.mat记录了RBM学习到的模型(3个参数:权重矩阵W,前向偏移量b,后向偏移量c)
这里有一个问题,就是W,叫做链接权重矩阵可能更合适一点,如果叫做转移矩阵的话,一个问题就是,为什么P(v=1|h)=sigmod(c+Wv), 而P(h=1|v)=sigmod(b+W’h),这里W是用的转置而不是W的逆?因为直观上会有一个问题就是说 y=Wx的话,那么就应该有x=inv(W)y,但是这里确只是用一个转置,而且正交矩阵才具有此性质,W’=inv(W). 而其实 这个是RBM 能量函数的性质,在RBM能量函数中 v和h 有种伪对阵性,上述两式是在能量函数基础上计算条件概率得到的。
\\反向传播的训练速度好慢啊。==b,迭代200次估计需要1天多,我们直接迭代1次跑个demo,最终反向传播之后可以学习到 w1,w2,w3,w4四个编码权重矩阵及w5,w6,w7,w8四个解码权重矩阵。
5). 若执行mnistclassify.m可训练MNIST分类器
6). 代码中有很多参数可以进行调节You can also set various parameters in the code, such as maximum number of epochs, learning rates, network architecture, etc.
Q:DAE 比DBN 好?
【参考】:
4. DeepLearning 工具包汇总
5. DeepLearning 工具包Matlab代码集合:,是丹麦工业大学以为硕士期间的工作
6. DeepLearning 工具包C, C++, Java, phython, scala代码集合,
7. RBM详解:
【备注源码注释】:
排名:千里之外
(25)(66)(6)(10)(23)(8)(4)(1)(1)(2)基于深度学习的专家排序方法
云南机电职业技术学院,昆明,650203
专家检索是垂直信息检索的研究热点,用以对专家特定人群进行更精确的查询。专家检索是指根据查询和专家的相关度对专家进行排序,将最相关的专家排在前面。其中专家排序方法的好坏对专家检索效果起着至关重要的作用。目前专家排序方法主要包括专家模型排序方法,文档模型排序方法,投票模型排序方法和链接分析模型。针对专家排序不应只计算单个专家的相关性而应该考虑整个专家列表上的排序损失,第三章提出了基于列表的专家排序方法。这种方法在很大程度上提高了专家检索的精度,但存在局限性。该方法采用的神经网络模型由于随机初始化容易陷入局部最小而且训练时间过长,此外浅层的神经网络不能更好的模拟排序函数。
近期在机器学习领域研究火热的深度学习最初是由Hinton等人2006年提出的一种深度可信网络模型[45],该算法至今仍是深度学习的主流方法。深度可信网络DBN模型被认为由一层BP网络和若干层RBM堆叠而成,训练过程中训练实例作为底部RBM的输入,下一层RBM的输出作为上一层RBM的输入,由此从低到高逐层训练RBM来构建深度可信网络模型,每层RBM通过反复训练求得最优参数。这一模型绕过直接从整体上训练DBN的高复杂度,而将其转化为对多个RBM层的训练问题。最后通过顶层BP神经网络算法对深度可信网络模型进行整体微调,提高了建模能力。深度学习在语音识别和图像处理上取得了显著的成就。微软亚洲研究院和谷歌的研究员通过使用DNN技术在语音识别上降低了20%~30%的错误率,取得了十几年来突破性的进展。在图像处理领域也降低了10%左右的错误率。深度学习在自然语言处理的诸多领域也得到了广泛的研究和应用。如陈宇[47]等提出的利用深度学习进行中文名实体关系抽取方法,证明了深度学习非常适用于基于高维空间特征的信息抽取任务;又如奚雪峰[48]等提出的利用深度学习机制进行基于语义特征的代词指代消解方法,表明增加RBM
训练层数可以提高系统性能。深度学习方法通过RBM无监督的自训练得到很好的参数来逐层初始化权重,进而构建深度可信网络DBN模型能够很好的克服神经网络的局限。综合上述考虑本文提出了基于深度学习的专家排序方法。 2 深度学习模型
2.1深度可信网络DBN
DBN(deep belief nets)模型是由多层无监督的RBM(restricted Boltzmann machine)网络和一层有监督的反向传播BP网络组成的一种深层神经网络。其结构如图4.1所示。DBN模型在训练过程中主要分为两步:首先分别单独无监督的训练每一层RBM网络,求得每层最优参数,确保特征向量映射时,尽可能多地保留好的特征信息,弱化次要信息和错误信息,即多层RBM对特征集合聚类的过程;然后DBN的顶层的BP神经网络接收最后一层RBM输出的特征向量作为其输入特征向量,进行分类并微调整个DBN模型。
DBN训练的具体过程是:1.将专家文档的特征向量赋值给底层RBM的可视层作为输入;2.RBM通过自训练求得最佳层内权重参数,并输出隐含层特征;
3.低层RBM的输出作为顶层RBM的输入,逐层从低向上传播,直到最顶层RBM;2
4.BP神经网络接收最顶层RBM的输出作为其输入特征,进行对专家进行分类排序,并微调每层RBM的权重参数。
其中RBM网络训练模型是DBN的核心。它通过自训练得到层内最优参数,可以看作是对一个深层BP网络参数的初始化,克服了BP神经网络因随机初始化参数而容易陷入局部最小和训练时间过长等缺点。底层RBM网络接收原始的特征向量,顶层RBM将低层RBM的输出作为其输入,在自底向上的传递过程中,具体的特征向量逐渐转化为抽象的特征向量,在顶层的RBM网络形成更易于分类排序的组合特征向量,而且传递过程中会弱化次要信息和错误信息。深层网络可以更好的逼近排序函数,因此理论上深层网络的排序效果比浅层网络要好。
2.2受限玻尔兹曼机RBM自训练过程
RBM是DBN的核心,由一个可见层v和一个隐含层h组成。层间的节点两两相连,层内的节点互不相连,其结构如图4.2所示。
RBM模型在给定可见层单元状态下,各隐含层单元的激活条件是独立的;反之,在给定隐含层单元状态下,可见层单元的激活条件也是独立的。假设RBM模型有n个可视单元和m个隐含单元, W表示可视单元和隐含单元之间的权重矩阵,a表示可视层的偏置向量,b表示隐含层的偏置向量。RBM自训练的目的是确定参数??{W,a,b}使联合概率分布p(v,h)。
在自训练过程中,首先将可视层向量值映射给隐含单元;然后通过隐含层向量值重建可视单元;重建的新可视单元再次映射给隐含单元,又可以获取新的隐含单元。反复执行这种步骤叫做吉布斯采样。可视层的输入通常是已知的,底层RBM可视层的输入是训练样例,上一层RBM的输入是低层RBM的输出。已知的可视单元的节点值通过公式(1)可求得隐含单位的节点值。
11?exp?b(j?ivwiij………………………(1) )
RBM是对称网络,因此同理可以由已知的隐含单元的节点值通过公式(2)求得第二个状态下可视单元的节点值。
1?exp?c(i?jhjw……………………(2)
可视层特征向量v和隐含层特征向量h的联合概率分布满足:
p(v,h)?exp(?E(v,h))?ehTWv?bTv?cTh………………(3)
其中E(v,h)是可视层特征向量v和隐含层特征向量h的数学期望。通常采用马尔可夫链蒙特卡罗MCMC求使p(v,h)最大的参数?。其基本步骤是将可视层和隐含层互为条件,不断的求出更新状态,最后共同趋向平稳状态,此时p(v,h)最大。然后求出最大联合概率分布与初始状态的联合概率分布的斜率。最后利用公式(4)更新参数?。
?(??1)??(?)?logp(v,h)??????……………………(4)
基于CD准则的RBM模型自训练的过程为:
1)根据训练样例确定RBM可视单元和隐含单元个数;设定训练周期T;
2)将训练样例向量赋值给RBM可视单元作为输入,并对参数W,a和b进行随机初始化为较小的数;
3)利用公式(1)求出所有隐含层单元p(h1j?1v1);
4)利用公式(2)求出第二个状态下所有可视层单元p(v2i?1h1);
5)再利用公式(1)求出第二个状态下所有隐含层单元p(h2j?1v2);
6)重复上述3)到5)过程T次;
7)利用如下公式更新各参数
TT?W?W??(P(h1?1v1)v1?P(h2?1v2)v2);
?a?a??(v1?v2);
?b?b??(P(h1?1v1)?P(h2?1v2))不知道的肯定以为是影视学院的学生在拍戏呢。
新郎的衣服已经被撕开,双脚也被透明胶带捆住了。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  来自:Poll的笔记 - 博客园
  链接:/maybe2030/p/5597716.html(点击尾部阅读原文前往)
  阅读目录
  1、神经元模型
  2、感知机和神经网络
  3、误差逆传播算法
  4、常见的神经网络模型
  5、深度学习
  6、参考内容
  目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网、人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革。要学习深度学习,那么首先要熟悉神经网络(Neural Networks,简称NN)的一些基本概念。当然,这里所说的神经网络不是生物学的神经网络,我们将其称之为人工神经网络(Artificial Neural Networks,简称ANN)貌似更为合理。神经网络最早是人工智能领域的一种算法或者说是模型,目前神经网络已经发展成为一类多学科交叉的学科领域,它也随着深度学习取得的进展重新受到重视和推崇。
  为什么说是“重新”呢?其实,神经网络最为一种算法模型很早就已经开始研究了,但是在取得一些进展后,神经网络的研究陷入了一段很长时间的低潮期,后来随着Hinton在深度学习上取得的进展,神经网络又再次受到人们的重视。本文就以神经网络为主,着重总结一些相关的基础知识,然后在此基础上引出深度学习的概念,如有书写不当的地方,还请大家评批指正。
  1、神经元模型
  神经元是神经网络中最基本的结构,也可以说是神经网络的基本单元,它的设计灵感完全来源于生物学上神经元的信息传播机制。我们学过生物的同学都知道,神经元有两种状态:兴奋和抑制。一般情况下,大多数的神经元是处于抑制状态,但是一旦某个神经元收到刺激,导致它的电位超过一个阈值,那么这个神经元就会被激活,处于“兴奋”状态,进而向其他的神经元传播化学物质(其实就是信息)。
  下图为生物学上的神经元结构示意图:
  1943年,McCulloch和Pitts将上图的神经元结构用一种简单的模型进行了表示,构成了一种人工神经元模型,也就是我们现在经常用到的“M-P神经元模型”,如下图所示:
  从上图M-P神经元模型可以看出,神经元的输出
  其中θ为我们之前提到的神经元的激活阈值,函数f(?)也被称为是激活函数。如上图所示,函数f(?)可以用一个阶跃方程表示,大于阈值激活;否则则抑制。但是这样有点太粗暴,因为阶跃函数不光滑,不连续,不可导,因此我们更常用的方法是用sigmoid函数来表示函数函数f(?)。
  sigmoid函数的表达式和分布图如下所示:
  2、感知机和神经网络
  感知机(perceptron)是由两层神经元组成的结构,输入层用于接受外界输入信号,输出层(也被称为是感知机的功能层)就是M-P神经元。下图表示了一个输入层具有三个神经元(分别表示为x0、x1、x2)的感知机结构:
  根据上图不难理解,感知机模型可以由如下公式表示:
  y=f(wx+b)
  其中,w为感知机输入层到输出层连接的权重,b表示输出层的偏置。事实上,感知机是一种判别式的线性分类模型,可以解决与、或、非这样的简单的线性可分(linearly separable)问题,线性可分问题的示意图见下图:
  但是由于它只有一层功能神经元,所以学习能力非常有限。事实证明,单层感知机无法解决最简单的非线性可分问题――异或问题。
  关于感知机解决异或问题还有一段历史值得我们简单去了解一下:感知器只能做简单的线性分类任务。但是当时的人们热情太过于高涨,并没有人清醒的认识到这点。于是,当人工智能领域的巨擘Minsky指出这点时,事态就发生了变化。Minsky在1969年出版了一本叫《Perceptron》的书,里面用详细的数学证明了感知器的弱点,尤其是感知器对XOR(异或)这样的简单分类任务都无法解决。Minsky认为,如果将计算层增加到两层,计算量则过大,而且没有有效的学习算法。所以,他认为研究更深层的网络是没有价值的。由于Minsky的巨大影响力以及书中呈现的悲观态度,让很多学者和实验室纷纷放弃了神经网络的研究。神经网络的研究陷入了冰河期。这个时期又被称为“AI winter”。接近10年以后,对于两层神经网络的研究才带来神经网络的复苏。
  我们知道,我们日常生活中很多问题,甚至说大多数问题都不是线性可分问题,那我们要解决非线性可分问题该怎样处理呢?这就是这部分我们要引出的“多层”的概念。既然单层感知机解决不了非线性问题,那我们就采用多层感知机,下图就是一个两层感知机解决异或问题的示意图:
  构建好上述网络以后,通过训练得到最后的分类面如下:
  由此可见,多层感知机可以很好的解决非线性可分问题,我们通常将多层感知机这样的多层结构称之为是神经网络。但是,正如Minsky之前所担心的,多层感知机虽然可以在理论上可以解决非线性问题,但是实际生活中问题的复杂性要远不止异或问题这么简单,所以我们往往要构建多层网络,而对于多层神经网络采用什么样的学习算法又是一项巨大的挑战,如下图所示的具有4层隐含层的网络结构中至少有33个参数(不计偏置bias参数),我们应该如何去确定呢?
  3、误差逆传播算法
  所谓神经网络的训练或者是学习,其主要目的在于通过学习算法得到神经网络解决指定问题所需的参数,这里的参数包括各层神经元之间的连接权重以及偏置等。因为作为算法的设计者(我们),我们通常是根据实际问题来构造出网络结构,参数的确定则需要神经网络通过训练样本和学习算法来迭代找到最优参数组。
  说起神经网络的学习算法,不得不提其中最杰出、最成功的代表――误差逆传播(error BackPropagation,简称BP)算法。BP学习算法通常用在最为广泛使用的多层前馈神经网络中。
  4、常见的神经网络模型
  4.1 Boltzmann机和受限Boltzmann机
  神经网络中有一类模型是为网络状态定义一个“能量”,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数。Boltzmann(玻尔兹曼)机就是基于能量的模型,其神经元分为两层:显层和隐层。显层用于表示数据的输入和输出,隐层则被理解为数据的内在表达。Boltzmann机的神经元都是布尔型的,即只能取0、1值。标准的Boltzmann机是全连接的,也就是说各层内的神经元都是相互连接的,因此计算复杂度很高,而且难以用来解决实际问题。因此,我们经常使用一种特殊的Boltzmann机――受限玻尔兹曼机(Restricted Boltzmann Mechine,简称RBM),它层内无连接,层间有连接,可以看做是一个二部图。下图为Boltzmann机和RBM的结构示意图:
  RBM常常用对比散度(Constrastive Divergence,简称CD)来进行训练。
  4.2 RBF网络
  RBF(Radial Basis Function)径向基函数网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。下图为一个RBF神经网络示意图:
  训练RBF网络通常采用两步:
  1& 确定神经元中心,常用的方式包括随机采样,聚类等;
  2& 确定神经网络参数,常用算法为BP算法。
  4.3 ART网络
  ART(Adaptive Resonance Theory)自适应谐振理论网络是竞争型学习的重要代表,该网络由比较层、识别层、识别层阈值和重置模块构成。ART比较好的缓解了竞争型学习中的“可塑性-稳定性窘境”(stability-plasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性则指的是神经网络在学习新知识时要保持对旧知识的记忆。这就使得ART网络具有一个很重要的优点:可进行增量学习或在线学习。
  4.4 SOM网络
  SOM(Self-Organizing Map,自组织映射)网络是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间(通常为二维),同事保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的临近神经元。下图为SOM网络的结构示意图:
  4.5 结构自适应网络
  我们前面提到过,一般的神经网络都是先指定好网络结构,训练的目的是利用训练样本来确定合适的连接权、阈值等参数。与此不同的是,结构自适应网络则将网络结构也当做学习的目标之一,并希望在训练过程中找到最符合数据特点的网络结构。
  4.6 递归神经网络以及Elman网络
  与前馈神经网络不同,递归神经网络(Recurrent Neural Networks,简称RNN)允许网络中出现环形结构,从而可以让一些神经元的输出反馈回来作为输入信号,这样的结构与信息反馈过程,使得网络在tt 时刻的输出状态不仅与tt 时刻的输入有关,还与t?1时刻的网络状态有关,从而能处理与时间有关的动态变化。
  Elman网络是最常用的递归神经网络之一,其结构如下图所示:
  RNN一般的训练算法采用推广的BP算法。值得一提的是,RNN在(t+1)时刻网络的结果O(t+1)是该时刻输入和所有历史共同作用的结果,这样就达到了对时间序列建模的目的。因此,从某种意义上来讲,RNN被视为是时间深度上的深度学习也未尝不对。
  RNN在(t+1)时刻网络的结果O(t+1)是该时刻输入和所有历史共同作用的结果,这么讲其实也不是很准确,因为“梯度发散”同样也会发生在时间轴上,也就是说对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本无法影响太遥远的过去。因此,“所有的历史”只是理想的情况。在实际中,这种影响也就只能维持若干个时间戳而已。换句话说,后面时间步的错误信号,往往并不能回到足够远的过去,像更早的时间步一样,去影响网络,这使它很难以学习远距离的影响。
  为了解决上述时间轴上的梯度发散,机器学习领域发展出了长短时记忆单元(Long-Short Term Memory,简称LSTM),通过门的开关实现时间上的记忆功能,并防止梯度发散。其实除了学习历史信息,RNN和LSTM还可以被设计成为双向结构,即双向RNN、双向LSTM,同时利用历史和未来的信息。
  5、深度学习
  深度学习指的是深度神经网络模型,一般指网络层数在三层或者三层以上的神经网络结构。
  理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。就像前面多层感知机带给我们的启示一样,神经网络的层数直接决定了它对现实的刻画能力。但是在一般情况下,复杂模型的训练效率低,易陷入过拟合,因此难以受到人们的青睐。具体来讲就是,随着神经网络层数的加深,优化函数越来越容易陷入局部最优解(即过拟合,在训练样本上有很好的拟合效果,但是在测试集上效果很差)。同时,不可忽略的一个问题是随着网络层数增加,“梯度消失”(或者说是梯度发散diverge)现象更加严重。我们经常使用sigmoid函数作为隐含层的功能神经元,对于幅度为1的信号,在BP反向传播梯度时,每传递一层,梯度衰减为原来的0.25。层数一多,梯度指数衰减后低层基本接收不到有效的训练信号。
  为了解决深层神经网络的训练问题,一种有效的手段是采取无监督逐层训练(unsupervised layer-wise training),其基本思想是每次训练一层隐节点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入,这被称之为“预训练”(pre-training);在预训练完成后,再对整个网络进行“微调”(fine-tunning)训练。比如Hinton在深度信念网络(Deep Belief Networks,简称DBN)中,每层都是一个RBM,即整个网络可以被视为是若干个RBM堆叠而成。在使用无监督训练时,首先训练第一层,这是关于训练样本的RBM模型,可按标准的RBM进行训练;然后,将第一层预训练号的隐节点视为第二层的输入节点,对第二层进行预训练;... 各层预训练完成后,再利用BP算法对整个网络进行训练。
  事实上,“预训练+微调”的训练方式可被视为是将大量参数分组,对每组先找到局部看起来较好的设置,然后再基于这些局部较优的结果联合起来进行全局寻优。这样就在利用了模型大量参数所提供的自由度的同时,有效地节省了训练开销。
  另一种节省训练开销的做法是进行“权共享”(weight sharing),即让一组神经元使用相同的连接权,这个策略在卷积神经网络(Convolutional Neural Networks,简称CNN)中发挥了重要作用。下图为一个CNN网络示意图:
  CNN可以用BP算法进行训练,但是在训练中,无论是卷积层还是采样层,其每组神经元(即上图中的每一个“平面”)都是用相同的连接权,从而大幅减少了需要训练的参数数目。
  6. 参考内容
  1、周志华《机器学习》
  2、知乎问答:/question/
  ●本文编号163,以后想阅读这篇文章直接输入163即可。
  ●输入m可以获取到文章目录
  今日微信公号推荐↓↓↓
算法与数据结构
更多推荐《》
  涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。传播计算机学习经验、推荐计算机优秀资源:点击前往《》!
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:}

我要回帖

更多关于 大隐静脉的临床意义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信