这是一个简单的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(对隐层神经元)来表示其自身权重 。
具体的公式推导在这里就不展示了
DBN是一个概率生成模型 , 与传统的判别模型的神经网络相对 , 生成模型是建立一个观察数据和标签之间的联合分布 , 对P(Observation|Label)和 P(Label|Observation)都做了评估 , 而判别模型仅仅而已评估了后者 , 也就是P(Label|Observation) 。
DBN由多个限制玻尔兹曼机(Restricted Boltzmann machines)层组成 , 一个典型的神经网络类型如图所示 。这些网络被“限制”为一个可视层和一个隐层 , 层间存在连接 , 但层内的单元间不存在连接 。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性 。

文章插图
生成对抗网络 GAN
生成对抗网络其实在之前的帖子中做过讲解 , 这里在说明一下 。
生成对抗网络的目标在于生成 , 我们传统的网络结构往往都是判别模型 , 即判断一个样本的真实性 。而生成模型能够根据所提供的样本生成类似的新样本 , 注意这些样本是由计算机学习而来的 。
GAN一般由两个网络组成 , 生成模型网络 , 判别模型网络 。
生成模型 G 捕捉样本数据的分布 , 用服从某一分布(均匀分布 , 高斯分布等)的噪声 z 生成一个类似真实训练数据的样本 , 追求效果是越像真实样本越好;判别模型 D 是一个二分类器 , 估计一个样本来自于训练数据(而非生成数据)的概率 , 如果样本来自于真实的训练数据 , D 输出大概率 , 否则 , D 输出小概率 。
推荐阅读
- 一文轻松了解网络流量控制,反压技术原理,程序员必备通信知识12
- 一文搞懂 Java 线程中断
- 一文掌握Go语言的流程控制
- 小青柑霜与霉的区别四种方法教你辨别
- 制造业|公司最不用应该出现的四种情况
- 苹果 iOS 15.2 正式版更新了哪些内容?一文搞懂
- 一文详尽解析Redis的设计原理
- 1分钟带你看懂Java内部类
- 一文教你读懂如何手工配置DBControl
- 教你看懂化妆品成分表 科学选购化妆品
