加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一文看懂四种基本的神经网络架构

发布时间:2019-03-31 09:58:49 所属栏目:建站 来源:BlackBlog__
导读:副标题#e# 刚刚入门神经网络,往往会对众多的神经网络架构感到困惑,神经网络看起来复杂多样,但是这么多架构无非也就是三类,前馈神经网络,循环网络,对称连接网络,本文将介绍四种常见的神经网络,分别是CNN,RNN,DBN,GAN。通过这四种基本的神经网络架

这里举AlexNet为例:

  • 输入:224×224大小的图片,3通道
  • 第一层卷积:11×11大小的卷积核96个,每个GPU上48个。
  • 第一层max-pooling:2×2的核。
  • 第二层卷积:5×5卷积核256个,每个GPU上128个。
  • 第二层max-pooling:2×2的核。
  • 第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
  • 第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
  • 第五层卷积:3×3的卷积核256个,两个GPU上个128个。
  • 第五层max-pooling:2×2的核。
  • 第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
  • 第二层全连接:4096维
  • Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。

卷积神经网络在模式识别领域有着重要应用,当然这里只是对卷积神经网络做了最简单的讲解,卷积神经网络中仍然有很多知识,比如局部感受野,权值共享,多卷积核等内容,后续有机会再进行讲解。

循环神经网络(递归神经网络) RNN

传统的神经网络对于很多问题难以处理,比如你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。

这是一个简单的RNN的结构,可以看到隐藏层自己是可以跟自己进行连接的。

那么RNN为什么隐藏层能够看到上一刻的隐藏层的输出呢,其实我们把这个网络展开来开就很清晰了。

这个网络在t时刻接收到输入Xt之后,隐藏层的值是St,输出值是Ot,关键一点是,的值不仅仅取决于Xt,还取决于St-1。

式1是输出层的计算公式,输出层是一个全连接层,也就是它的每个节点都和隐藏层的每个节点相连。V是输出层的权重矩阵,g是激活函数。式2是隐藏层的计算公式,它是循环层。U是输入x的权重矩阵,W是上一次的值St-1作为这一次的输入的权重矩阵,f是激活函数。

从上面的公式我们可以看出,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。

如果反复把式2带入到式1,我们将得到:

从上面可以看出,循环神经网络的输出值,是受前面历次输入值Xt、Xt-1、Xt-2、X-3、X-4…影响的,这就是为什么循环神经网络可以往前看任意多个输入值的原因。

深度信念网络 DBN

在讲DBN之前,我们需要对DBN的基本组成单位有一定的了解,那就是RBM,受限玻尔兹曼机。

首先什么是玻尔兹曼机?

如图所示为一个玻尔兹曼机,其蓝色节点为隐层,白色节点为输入层。

玻尔兹曼机和递归神经网络相比,区别体现在以下几点:

1、递归神经网络本质是学习一个函数,因此有输入和输出层的概念,而玻尔兹曼机的用处在于学习一组数据的“内在表示”,因此其没有输出层的概念。

2、递归神经网络各节点链接为有向环,而玻尔兹曼机各节点连接成无向完全图。

而受限玻尔兹曼机是什么呢?

最简单的来说就是加入了限制,这个限制就是将完全图变成了二分图。即由一个显层和一个隐层构成,显层与隐层的神经元之间为双向全连接。

h表示隐藏层,v表示显层

在RBM中,任意两个相连的神经元之间有一个权值w表示其连接强度,每个神经元自身有一个偏置系数b(对显层神经元)和c(对隐层神经元)来表示其自身权重。

具体的公式推导在这里就不展示了

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!