深度神经网络可以分为3类:

  1)前馈深度网络(feed-forwarddeep networks, FFDN)
  2)反馈深度网络(feed-back deep networks, FBDN)
  3)双向深度网络(bi-directionaldeep networks, BDDN)

双向深度网络(bi-directionaldeep networks, BDDN)

  结构上:双向网络的结构结合了编码器和解码器2类单层网络结构,通过叠加多个编码器层和解码器层构成(每层可能是单独的编码过程或解码过程,也可能既包含编码过程也包含解码过程)。
  训练上:双向网络的学习则结合了前馈网络和反馈网络的训练方法。
  通常包括单层网络的预训练和逐层反向迭代误差2个部分。其中单层网络的预训练是对输入信号编码和解码的重建过程,这与反馈网络训练方法类似;而基于反向迭代误差的权值微调与前馈网络训练方法类似。
  a)单层网络的预训练多采用贪心算法:每层使用输入信号IL与权值w计算生成信号IL+1传递到下一层,信号IL+1再与相同的权值w计算生成重构信号I’L 映射回输入层,通过不断缩小IL与I’L间的误差,训练每层网络。
  b)网络结构中各层网络结构都经过预训练之后,再通过反向迭代误差对整个网络结构进行权值微调。

不同的双向深度网络

1)深度玻尔兹曼机(deep Boltzmann machines, DBM)

  它由多层受限玻尔兹曼机(restricted Boltzmann machine, RBM )叠加构成。网络中所有节点间的连线都是双向的。
  a)玻尔兹曼机(Boltzmann machine, BM)是一种随机的递归神经网络。BM是基于能量的无向图概率模型。玻尔兹曼机由二值神经元构成,每个神经元只取0或1两种状态,状态1代表该神经元处于激活状态,0表示该神经元处于抑制状态。然而,即使使用模拟退火算法,这个网络的学习过程也十分慢。
  b)Hinton等提出的受限玻尔兹曼机去掉了玻尔兹曼机同层之间的连接,从而大大提高了学习效率。受限玻尔兹曼机分为可见层v以及隐层h,共两层,可见层和隐层的节点通过权值w相连接,2层节点之间是全连接,同层节点间互不相连。

BM的训练算法

  BM的典型训练算法有变分近似法、随机近似法(stochastic approximation procedure,SAP)、对比散度算法(contrastivedivergence,CD)、持续对比散度算法(persistent contrastive divergence,PCD)、快速持续对比散度算法(fastpersistent contrastive divergence,FPCD)和回火MCMC算法等。

RBM的原理

  RBMD的一层是可视层v(即输入层),一层是隐层h,每层内的节点之间设有连接。
  在已知v时,全部的隐藏节点之间都是条件独立的(因为这个模型是二部图),即p(h|v) = p(h1|v1) … p(hn|v)。
  同样的,在已知隐层h的情况下,可视节点又都是条件独立的,又因为全部的h和v满足玻尔兹曼分布,所以当输入v的时候,通过p(h|v)可得到隐层h,得到h之后,通过p(v|h)又可以重构可视层v。
  通过调整参数,使得从隐层计算得到的可视层与原来的可视层有相同的分布。这样的话,得到的隐层就是可视层的另外一种表达,即可视层的特征表示。

RBM的训练方法

  首先随机初始化可见层,然后在可见层与隐层之间交替进行吉布斯采样:用条件分布概率P(h|v)计算隐层;再根据隐层节点,同样用条件分布概率P(v|h)来计算可见层;重复这一采样过程直到可见层和隐层达到平稳分布。
  后来Hinton提出了一种快速算法,称作对比离差(contrastive divergence, CD)学习算法。这种算法使用训练数据初始化可见层,只需迭代k次上述采样过程(即每次迭代包括从可见层更新隐层,以及从隐层更新可见层),就可获得对模型的估计。

RBM的损失函数

  由于受限玻尔兹曼机是一种随机网络,而随机神经网络又是根植于统计力学的,所以受统计力学能量泛函的启发引入了能量函数。在随机神经网络中,能量函数是用来描述整个系统状态的测度。网络越有序或概率分布越集中,网络的能量就越小;反之,网络越无序或概率分布不集中,那么网络的能量就越大。所以当网络最稳定时,能量函数的值最小。

DBM训练分为2个阶段

  即预训练阶段和微调阶段。
  a)在预训练阶段,采用无监督的逐层贪心训练方法来训练网络每层的参数,即先训练网络的第1个隐含层,然后接着训练第2,3,…个隐含层,最后用这些训练好的网络参数值作为整体网络参数的初始值。
  b)预训练之后,将训练好的每层受限玻尔兹曼机叠加形成深度玻尔兹曼机,利用有监督的学习对网络进行训练(一般采用反向传播算法)。

2)深度信念网络(deep beliefnetworks, DBN)

DBM与DBN的区别

  对于RBM若增加隐层的层数,可得到深度玻尔兹曼机(DBM,Deep Boltzmann Machine)。
  若在靠近可视层v的部分使用贝叶斯信念网,远离可视层的部分使用RBM,那么就可以得到一个深度信念网络(DBNs,Deep Belief Nets)。

DBN的训练

  训练的过程中,所需要学习的即是联合概率分布。在机器学习领域中,其所表示的就是对象的生成模型。如果想要全局优化具有多隐层的深度信念网络是比较困难的。
  这个时候,可以运用贪婪算法,即逐层进行优化,每次只训练相邻两层的模型参数,通过逐层学习来获得全局的网络参数。这种训练方法(非监督逐层贪婪训练)已经被Hinton证明是有效的,并称其为相对收敛(contrastive divergence)。

DBN的结构及其变种

  采用二值可见单元和隐单元RBM作为结构单元的DBN,在MNIST等数据集上表现出很好的性能。
  近几年,具有连续值单元的RBM,如mcRBM、mPoT模型和spike—and-slab RBM等已经成功应用。
  Spike—and—slab RBM中spike表示以0为中心的离散概率分布,slab表示在连续域上的稠密均匀分布,可以用吉布斯采样对spike—and—slab RBM进行有效推断,得到优越的学习性能。

3)栈式自编码器(stacked auto-encoders, SAE)

SAE与DBN的区别

  堆栈自编码网络的结构与DBN类似,由若干结构单元堆栈组成,不同之处在于其结构单元为自编码模型(auto—en—coder)而不是RBM。自编码模型是一个两层的神经网络,第一层称为编码层,第二层称为解码层。
  当然,SAE的结构单元除了自编码模型之外,还可以使用自编码模型的一些变形,如降噪自编码模型和收缩自编码模型等。

4)MKMs

  受SVM算法中核函数的启发,在深度模型结构中加入核函数,构建一种基于核函数的深度学习模型。
  MKMs深度模型,如同深度信念网络(deep belief network,DBNs),反复迭代核PCA 来逼近高阶非线性函数,每一层核PCA 的输出作为下一层核PCA 的输入。作者模拟大型神经网络计算方法创建核函数族,并将其应用在训练多层深度学习模型中。

L层MKMs深度模型的训练过程

  a)、去除输入特征中无信息含量的特征;
  b)、重复L次:A、计算有非线性核产生特征的主成分;B、去除无信息含量的主成分特征;
  c)、采用Mahalanobis距离进行最近邻分类。

  在参数训练阶段,采用核主成分分析法(kernelprincipal component analysis,KPCA)进行逐层贪婪无监督学习,并提取第k层数据特征中的前nk 主成分,此时第k+1层便获得第k层的低维空间特征。
  为进一步降低每层特征的维数,采用有监督的训练机制进行二次筛选:首先,根据离散化特征点边缘直方图,估计它与类标签之间的互信息,将nk 主成分进行排序;其次,对于不同的k 和w 采用KNN 聚类方法,每次选取排序最靠前的w验证集上的特征并计算其错误率,最终选择错误率最低的w个特征。

  该模型由于特征选取阶段无法并行计算,导致交叉验证阶段需耗费大量时间。据此,提出了一种改进方法,通过在隐藏层采用有监督的核偏最小二乘法(kernel partial least squares,KPLS)来优化此问题。

5)DeSTIN

历史

  目前较成熟的深度学习模型大多建立在空间层次结构上,很少对时效性(temporal)有所体现。相关研究表明,人类大脑的运行模式是将感受到的模式与记忆存储的模式进行匹配,并对下一时刻的模式进行预测,反复进行上述步骤,这个过程包含了时空信息。因此在深度结构中将时效性考虑在内,会更接近人脑的工作模式。

理解

  DeSTIN 是一种基于贝叶斯推理理论、动态进行模式分类的深度学习架构,它是一种区分性的层次网络结构。
  在该深度模型中,数据间的时空相关性通过无监督方式来学习。
  网络的每一层的每个节点结构一致,且包含多个聚类中心,通过聚类和动态建模来模拟输入。每个节点通过贝叶斯信念推理输出该节点信念值,根据信念值提取整个DeSTIN网络的模式特征,最后一层网络输出特征可以输入分类器如SVM中进行模式分类。

  DeSTIN 模型的每一个节点都用来学习一个模式时序,底层节点通过对输入数据的时间与空间特征进行提取,改变其信念值,输入到下一层。由于每一个节点结构相同,训练时可采样并行计算,节约运算资源。
  该模型最重要的步骤就是信念值更新算法。信念值更新算法同时考虑了数据的时间与空间特征

现状

  目前将时效性考虑在内的深度学习架构虽然不是很成熟,但也逐渐应用在不同领域,也是深度学习模型未来发展的一个新方向。

深度学习基础--不同网络种类--双向深度网络(bi-directionaldeep networks, BDDN)相关推荐

  1. 深度学习基础:深入理解Squeeze-and-Excitation (SE)网络

    对于CNN网络来说,其核心计算是卷积算子,其通过卷积核从输入特征图学习到新特征图.从本质上讲,卷积是对一个局部区域进行特征融合,这包括空间上(H和W维度)以及通道间(C维度)的特征融合 我们可以发现卷 ...

  2. 深度学习基础 | NLP大魔王 · BERT

    ‍作者 | Chilia 整理 | NewBeeNLP‍ 首先,请阅读先修知识: 深度学习基础 | 从Language Model到RNN 深度学习基础 | RNN家族全面解析 深度学习基础 | Se ...

  3. 【完结】有三AI阿里云的深度学习基础课程暂时完结,欢迎扩散学习

    2021年3月份有三AI与阿里天池联合推出了深度学习系列课程, 课程内容包括人工智能与深度学习发展背景,深度学习典型应用,卷积神经网络,循环神经网络,生成对抗网络,深度学习开源框架等内容,目前已经基本 ...

  4. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 编程指南

    编程指南 目前飞桨(PaddlePaddle,以下简称Paddle)已经同时支持动态图和静态图两种编程方式, 本文主要侧重于介绍静态图的编程方法,关于动态图编程方法,请参考动态图机制-DyGraph. ...

  5. 深度学习基础 | 超详细逐步图解 Transformer

    作者 | Chilia 整理 | NewBeeNLP 首先,请阅读先修知识: 深度学习基础 | 从Language Model到RNN 深度学习基础 | RNN家族全面解析 深度学习基础 | Seq2 ...

  6. 深度学习基础知识整理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kwame211/article/details/81165381 本文是在七月的BAT机器学习面试1 ...

  7. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 个性化推荐

    人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 个性化推荐 本教程源代码目录在book/recommender_system,初次使用请您参考Book文档使用说明. 说明: 硬件 ...

  8. 深度学习基础 | RNN家族全面解析

    作者 | Chilia 整理 | NewBeeNLP 首先,请阅读先修知识:深度学习基础 | 从Language Model到RNN 1. 梯度消失和梯度爆炸 1.1 梯度消失 [定义]当很多的层都用 ...

  9. 深度学习第一讲之深度学习基础

    技术交流qq群: 659201069 深度学习第一讲之深度学习基础 转载请注明出处! 本篇博文从what.why.when.who.where.how五个方面来分析深度学习,接下来讲如何入门,我门将通 ...

最新文章

  1. 安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置
  2. tensorflow2:tf.app.run()
  3. MBA必读:不能触碰的5大职场高压线
  4. SAP Spartacus 自定义指令的实现以及通过@HostBinding实现属性绑定
  5. gbk 转 UTF-8
  6. python format格式化输出填充符号不起作用_Python格式化输出——format用法示例
  7. python3 gui协程_Python3进阶-协程
  8. 2017.6.21 大都市meg 思考记录
  9. python缩进问题idle_Python IDLE中的缩进问题
  10. PyTricks : Python is Cool
  11. Python数据分析-房价的影响因素图解
  12. 反超苹果,微软重回全球市值第一!
  13. 计算机语言中的计数器是什么,程序计数器的作用_程序计数器pc中存放的是什么...
  14. vc++之windows api
  15. Axure的授权人与授权码
  16. SPA项目开发 之 登录注册
  17. 射频中的 IM3、IIP3、OIP3、G、P1dB指标之间的关系
  18. 关于new Map()
  19. PCA降维以及Kmeans聚类实例----python,sklearn,PCA,Kmeans
  20. 计算机网络国际会议排名,科学网—计算机相关国际会议排名 - 刘耀的博文

热门文章

  1. 吃鸡2019年5月7日服务器维护,绝地求生更新:绝地求生5月7日更新内容 绝地求生5月7日更新维护公告...
  2. Mdoelsim10.4怎么脚本单独仿真ISE14.7 IP核
  3. 定时任务表达式:汇总
  4. 教学向|骨骼构建模太难?zbrush骨骼建模详细讲解(上)
  5. java开发微信抢红包挂_Java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo...
  6. MYSQL统计函数基础
  7. 查看 KeyStore 文件详细信息命令
  8. 第一次机房收费——问题合集(一)
  9. 别闯进Hybrid App的误区
  10. Electron中使用sql.js操作SQLite数据库