【深度学习】UPN分支介绍—深度信念网络基础原理与架构

图像来源(http://www.cognitivetoday.com/wp-content/uploads/2016/10/DCN-600×392.png)

我之前关于深度学习的文章:

1.深度学习基础(https://codeburst.io/deep-learning-what-why-dd77d432f182) 2.深度学习的自动编码器(https://codeburst.io/deep-learning-types-and-autoencoders-a40ee6754663)

今天我们将了解深度信念网络(DBN)一种无监督预训练的网络(UPN)

让我们先定义DBN:

DBN是一类深层神经网络,其包括有向边和无向边的多层图形模型。它由多层隐藏单元组成,每层都相互连接,但单元之间不连接。

要了解深层信念网络,我们需要了解DBN的两个重点:

1.信念网络

2.受限玻尔兹曼机(RBM)

信念网络:

它由随机二进制单元层组成,其中每个连接层都具有一些权重。信念网络中的随机二进制单位具有0或1两张状态,并且变为1的概率由来自其他单元的偏见和加权输入决定。

让我们来看看这个来自(Geoffrey Hinton,cs.toronto.edu)的深度信念网络图

图片来源:Geoffrey Hinton,cs.toronto.edu

(https://www.cs.toronto.edu/~hinton/nipstutorial/nipstut3.pdf)

GEOFFREY HINTON博士这样说:

深度信念网的两个最重要的属性是:

  • 有一个高效而逐层的过程,用于学习自上而下生成的权重,以确定一个层中的变量如何依赖于上个层中的变量。
  • 学习后,每个层面的潜在变量的值可以通过从底层观察数据向量开始的单个自下而上的传递来推断,并在相反方向上使用生成权重。

受限玻尔兹曼机

波尔兹曼机是一种在单位之间具有随机二进制单位和无向边的随机循环神经网络。由于玻尔兹曼机的范围限制,RBM被引入它由隐藏层单元组成,每个隐藏单元之间有受限的连接。这种结构有助于RBM学习。

看下面了解更多:

图片来源:Geoffrey Hinton,cs.toronto.edu

(https://www.cs.toronto.edu/~hinton/nipstutorial/nipstut3.pdf)

DBN架构:

DBN由受限玻尔兹曼机(RBMs)层组成,为预训练时期,然后是用于微调阶段的前馈网络。如下面的DBN的网络架构所示:

图像来源(https://www.safaribooksonline.com/library/view/deep-learning/9781491924570/assets/dpln_0401.png)

DBN如何工作:

现在我们已经了解了信念网络和RBM的基础知识,让我们尝试了解DBN如何实际运作。由于DBN是多层信念网络。其中每层是受限玻尔兹曼机器彼此堆叠,用于深度信念网络。训练DBN的第一步是使用对比分歧算法(CD算法)从可见单元学习一层特征。然后,下一步是将先前训练过特征的激活视为可见的单元,并学习第二个隐藏层中的特征的特征。最后,整个DBN在实现最终隐藏层的学习时被训练。

贪心DBN学习:

图像来源(https://www.slideshare.net/HasanHTopcu/deep-belief-networks-58155447)

深度信念网络的应用领域:

1.图像和人脸识别

2.视频序列识别

3.运动捕捉数据

NASA(美国国家航空航天局)正在使用DBN来分类TB级的,高分辨率的,高度多样化的卫星图像。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端之路

LinkedList源码解读

List中除了ArrayList我们最常用的就是LinkedList了。 LInkedList与ArrayList的最大区别在于元素的插入效率和随机访问效率 ...

19710
来自专栏MelonTeam专栏

ArrayList源码完全分析

导语: 这里分析的ArrayList是使用的JDK1.8里面的类,AndroidSDK里面的ArrayList基本和这个一样。 分析的方式是逐个API进行解析 ...

4519
来自专栏拭心的安卓进阶之路

Java 集合深入理解(6):AbstractList

今天心情比天蓝,来学学 AbstractList 吧! ? 什么是 AbstractList ? AbstractList 继承自 AbstractCollec...

19210
来自专栏学海无涯

Android开发之奇怪的Fragment

说起Android中的Fragment,在使用的时候稍加注意,就会发现存在以下两种: v4包中的兼容Fragment,android.support.v4.ap...

3165
来自专栏开发与安全

算法:AOV网(Activity on Vextex Network)与拓扑排序

在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex ...

2607
来自专栏刘君君

JDK8的HashMap源码学习笔记

3068
来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1181
来自专栏xingoo, 一个梦想做发明家的程序员

AOE关键路径

这个算法来求关键路径,其实就是利用拓扑排序,首先求出,每个节点最晚开始时间,再倒退求每个最早开始的时间。 从而算出活动最早开始的时间和最晚开始的时间,如果这两个...

2527
来自专栏xingoo, 一个梦想做发明家的程序员

Spark踩坑——java.lang.AbstractMethodError

百度了一下说是版本不一致导致的。于是重新检查各个jar包,发现spark-sql-kafka的版本是2.2,而spark的版本是2.3,修改spark-sql-...

1210
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1736

扫码关注云+社区