导航:首页 > 网络营销 > 哪些神经网络信息通常是双向传播的

哪些神经网络信息通常是双向传播的

发布时间:2023-08-08 12:06:31

❶ 常见神经网络类型之前馈型神经网络

1、前馈型神经网络

常见的前馈型神经网络包括感知器网络、BP神经网络、RBF网络(径向基函数神经网络)

(1)感知器网络:也被称笑拦搭作感知机,主要用于模式分类,也可以用作学习控制和基于模式分类的多模态控制

(2)反向传播神经网络(BP神经网络),利用了权值的反向传播调整策略,基于Sigmoid函数。可以实现从输入到输出的任意非线性函数

(3)RBF网络能逼近任意非线性函数,可以处理难碰拿以解析的规律性问题。具有良好的泛化能力和快速收敛速度。常用于分衡坦类问题,模式识别,信号处理,图像处理,系统建模等。

❷ BP神经网络的原理的BP什么意思

原文链接:http://tecdat.cn/?p=19936

在本教程中,您将学习如何在R语言中创建神经网络模型。

神经网络(或人工神经网络)具有通过样本进行学习的能力。人工神经网络是一种受生物神经元系统启发的信息处理模型。它由大量高度互连的处理元件(称为神经元)组成,以解决问题。它遵循非线性路径,并在整个节点中并行处理信息。神经网络是一个复杂的自适应系统。自适应意味着它可以通过调整输入权重来更改其内部结构。

该神经网络旨在解决人类容易遇到的问题和机器难以解决的问题,例如识别猫和狗的图片,识别编号的图片。这些问题通常称为模式识别。它的应用范围从光学字符识别到目标检测。

本教程将涵盖以下主题:

❸ 贝叶斯神经网络

通过优化的标准神经网络训练(从概率的角度来看)等同于权重的最大似然估计(MLE)。由于许多原因,这往往是不能令人满意的 —— 使用 MLE 会忽略在适当的权重值中可能存在的任何不确定性,即无法正确评估训练数据中的不确定性,从实际的角度来看,这种类型的训练容易出现过拟合现象。

对此的一个解决方案是引入正则化(从贝叶斯的角度来看,这相当于在权重上引入先验)。如果我们可以通过规范模型来解决过度自信决策和防止模型过度拟合的问题,那为什么我们需要贝叶斯神经网络?答案是: 当前神经网络架构中缺少预测中的不确定性度量,但贝叶斯神经网络将其纳入其中 。BNN 在特定环境中很重要,特别是当我们非常关心不确定性时,贝叶斯方法自然地解释了参数估计中的不确定性,并且可以将这种不确定性传播到预测中。

深度神经网络已成功应用于许多领域,包括非常敏感的领域,如医疗保健,安全性,欺诈性交易等等。这些领域在很大程度上依赖于模型的预测准确性,甚至一个过度自信的决策也可能导致一个大问题。此外,这些领域具有非常不平衡的数据集(百万个交易中的一个是欺诈性交易,百分之五的癌症检测结果是阳性,不到百分之一的电子邮件是垃圾邮件),容易导致该模型过度拟合。

从概率论的角度来看,使用单点估计权重以进行分类是不合理的。而贝叶斯神经网络对于过拟合更加鲁棒,并且可以从小数据集中轻松学习。 贝叶斯方法将其参数以概率分布的形式表示以提供不确定性估计;同时,通过使用先验概率分布的形式来表示参数,训练期间在许多模型上计算平均值,这给网络提供了正则化效果,从而防止过度拟合

在标准神经网络中,权重由单个点表示。 而贝叶斯神经网络以分布形式表示权重,如下图所示:

即使使用少量参数,在贝叶斯神经网络中推断后验模型也是一项艰巨的任务,因此通常使用后验模型的近似值,变分推理是一种流行的方法。人们将使用简单的变分分布(例如高斯分布)对后验进行模拟,并尝试调整分布的参数使其尽可能接近真实的后验 —— 通过最小化这种简单变分分布和真实后验之间的 KL 散度来完成。

但是用于逼近 BNN 后验的变分方法在计算上可能相当昂贵,因为使用近似分布会大大增加模型参数的数量,但不会大幅增加模型容量。例如,使用 BNN 后验近似的高斯分布,模型参数的数量增加了一倍,但报告了与使用丢失的传统方法相同的预测性能。 这使得该方法在实践中不适合与 CNN 一起使用,因为参数数量的增加太昂贵。

关于神经网络权重的精确贝叶斯推断是难以处理的,因为参数的数量非常大,并且神经网络的函数形式不适合精确积分。 因此,我们用变分概率分布 q θ (w | D) 逼近难以处理的真实后验概率分布 p(w | D),它包括高斯分布的性质 μ∈ℝ d 和 σ∈ℝ d ,表示为 N(θ | μ,σ²),其中 d 是定义概率分布的参数总数。 这些高斯变分后验概率分布的形状由它们的方差 σ² 确定,表示每个模型参数的不确定性估计。

在观察数据之前定义先验概率分布,一旦观察到数据(训练数据),学习就发生并且分布变换为后验分布。 利用概率论从数据中学习构成了贝叶斯学习的基础。贝叶斯定理如下:

P(θ | x) 为后验概率,也是我们想要计算的;P(θ) 为先验概率,在训练数据之前就是已知的;P(x | θ) 为可能性,显示了数据分布;P(x) 为证据,我们只能通过对所有可能的模型值积分来计算其值:

这使得问题变得棘手,因此我们采用变分近似来找到近似贝叶斯后验分布。

首先,我们的原始目标是,需要根据已有数据推断需要的分布 p;当 p(下图中黄色区域)不容易表达,不能直接求解时,可以尝试用变分推断的方法, 即,寻找容易表达和求解的分布 q(下图中红线和绿线构成的区域),当 q 和 p 的差距很小的时候,q 就可以作为 p 的近似分布,成为输出结果了。例如,我们用 q θ (w | D) 来近似 p(w | D)。首先注意 q θ (w | D) 的表达,其中 w 是变量,θ 是后验概率分布 q 的参数。所以在构造 q 的时候也分两步:第一,概率分布的选择;第二,参数的选择。第一步,我们在选择 q 的概率分布时,通常会直观选择 p 可能的概率分布,这样能够更好地保证 q 和 p 的相似程度。例如高斯混合模型中,原始假设 p 服从高斯分布,则构造的 q 依然服从高斯分布。之后,我们通过改变 θ,使得 q 不断逼近 p。

我们希望尽可能接近真正的分布,这可以通过最小化两者之间的 Kullback-Liebler(KL)散度来做到这一点。然而 KL 的表达式中依然有一部分不可求的后验概率,这个问题仍然是棘手的,所以用到了 ELBO:

但是由于积分的存在,这个公式仍然难以解决。此时,我们可以从近似函数 q θ (w | D) 中进行采样,因为从近似函数中采样权值要比真正的后验函数 p(w | D) 更容易。这样得到容易计算的函数:

这些采样权值 w 被用于神经网络的反向传播,学习后验分布。

贝叶斯建模中,存在两种类型的不确定:偶然不确定性和认知不确定性。

可以通过在模型参数或模型输出上放置概率分布来估计不确定性 。通过在模型的权重上放置先验分布,然后尝试捕获这些权重在给定数据的情况下变化多少来模拟认知不确定性。另一方面,通过在模型的输出上放置分布来模拟偶然不确定性。

传统神经网络常使用反向传播来训练。对于 BNN,其自然地解释了参数估计中的不确定性,并且可以将这种不确定性传播到预测结果中;此外,对参数值进行取平均而不是仅选择单点估计值使得模型不易出现过拟合。因此,对 BNN 参数的训练也需要特殊的训练方法,Bayes by Backprop 就是其中一种(它也是一种变分推断)。

Bayes by Backprop 用来学习神经网络权重的概率分布。它是一种变分推理方法,用于学习神经网络权重 w ~ q θ (w | D) 的后验分布,可以在反向传播中对权重 w 进行采样。整个方法可归纳如下:

由于参数数目较大,所以需要对模型权重进行适当的修剪。模型修剪减少了深度神经网络的各种连接矩阵中的稀疏性,从而减少了模型中有价值的参数的数量。模型修剪的整个想法是减少参数的数量而不会损失模型的准确性。最常用的修剪模型的方法是将低贡献权重映射到零并减少整体非零值权重的数量,可以通过训练大型稀疏模型并进一步修剪来实现。

(这部分内容摘自 一个例子搞清楚 先验分布/后验分布/似然估计 )

给定一些数据样本 x,假定我们知道样本是从某一种分布中随机取出的,但我们不知道这个分布具体的参数 θ。

因为给定样本 x 后, p(x) 会在 θ 空间上为一个定值,和 θ 的大小没有关系,所以可以省略分母 p(x)。 可化简为:

p(x) 相当于是一个归一化项,整个公式就表示为: Posterior∝(Likelihood∗Prior)(后验概率 正比于 先验概率 ∗ 似然函数)

需要一提的是,对贝叶斯 CNN 而言,不仅在卷积层中将概率分布置于权重上,还要求在全连接层中将概率分布置于权重上。

假设权重的变分后验概率分布 q θ (w ijhw | D) = N(μ ijhw ,α ijhw μ 2 ijhw )(其中,i 和 j 分别对应输入和输出层数,h 和 w 分别对应过滤器的高度和宽度),那么卷积公式被重定义为:

其中,ε j ~ N(0,1),A i 为过滤器在第 i 层要卷积的部分,b j 为相应的第 j 层的激活值,∗ 为卷积操作,⊙ 为元素乘法(component-wise multiplication)。

对 CNN 的权重应用概率分布而非单点值,并且要在反向传播时更新变分后验概率分布 q θ (w | D),关键在于过滤器会执行两次卷积操作(在单点预测的 CNN 中只执行一次卷积)。

从前面的公式我们看到,卷积操作的输出 b 是期望 μ ijhw 和方差 α ijhw μ 2 ijhw 的函数,因此我们可以分别计算出 μ ijhw 和 α ijhw μ 2 ijhw 的值,从而可以得到一个高斯概率分布。方法就是执行两次卷积操作:第一次,我们将 b 视为通过频率推理更新的 CNN 的输出,将单点估计值解释为变分后验概率分布的期望;第二次,我们将得到方差。通过这种方式,我们确保每个卷积操作只更新一个参数(第一次为 μ ijhw ,第二次为 α ijhw ),这与通过频率推断更新的 CNN 完全相同。

实际上,当我们执行第一次卷积操作,我们得到的是 q θ (w | D) 的最大后验概率,而第二次卷积操作则是得出权重 w 偏离了最大后验概率多少。另外,为了加速计算,确保方差 α ijhw μ 2 ijhw 为非零正数,并提到准确度,我们学习 logα ijhw 并使用 Softplus 激活函数。

在分类任务中,我们关注的是 P D (y* | x*);对于贝叶斯神经网络,其被表示为:

在 Bayes by Backprop 中,q θ (w | D) ~ N(w | μ, σ 2 ),而 θ = {μ, σ} 在数据集 D = {x i , y i } n i=1 的训练中学习得到。由于分类问题多是离散的,因此:

其中,Σ c f(x c ∗ | w) = 1,C 为总类数。通过从 q θ (w | D) 取样,可以获得期望值的无偏估计:

T 为样本数量。这个估计值允许我们评估预测值的不确定性,因此称为预测方差,用 Var q 表示:

这个值可以进一步分为偶然不确定性和认知不确定性:

由于贝叶斯 CNN 中的权重都由期望和方差来表示其分布,因此,相较于单点估计 CNN,贝叶斯 CNN 的参数数量翻了一倍。为了使贝叶斯 CNN 参数数量等于传统 CNN,可以使 BCNN 的过滤器数目减半。

另一种模型修剪的技术是对每层的权重使用 L1 归一化。通过 L1 归一化,我们使各模型层中的权重向量变得非常稀疏,即大部分矩阵元素变得接近零;同时,剩余的非零元素则捕获数据的最重要特征。我们设置一个阈值,如果该值低于阈值,则使权重为零。通过只保留非零权重,可以减少模型的参数数量,而不会影响模型的整体性能。

看了一些国内的论文,将贝叶斯应用于 BP 神经网络优化,往往是利用贝叶斯定理寻找最优神经网络参数,以解决神经网络权值易陷入局部最优的问题,同时也能解决神经网络过拟合。其中心思想在于: 根据给定的先验分布,利用贝叶斯定理考察神经网络参数的不确定性,从样本数据中,获得网络结构的后验概率,那么,使得该后验概率最大化的网络参数即为所需的最优参数 (我认为这其实是 MAP 而非贝叶斯估计)。最优参数定义为:

为方便计算,对后验概率取对数得到:

假设先验概率分布 p(w) 满足高斯分布:

则有:

上式中,似然函数部分对应于目标函数中的适应度函数,而先验概率部分对应于正则项,因此我们可以通过确定先验概率得到正则项,从而对神经网络的目标函数进行优化,进而有效控制网络规模,提高网络泛化能力。

后验分布是人们在获得样本数据 D 之后对参数 w 的一种调整。 贝叶斯把上一步得到的后验分布信息储存起来,在将来做推测时,上一步的后验信息就成为了先验信息 ,这样持续数次操作之后,样本数据的预测结果会一直进行调整,最后对参数估计的结果精确度更高。

神经网络中最重要的两个性能参数就是权值和阈值,而这两个参数的分布情况受到了目标函数中超参数的控制,但一般的算法不能确定超参数的取值。可以利用贝叶斯定理来求取目标函数的超参数,并且要求达到自主调节超参数取值的目标,并且通过持续的调整最后找到最优的取值,相应的确定 BP 神经网络的最优权值和阈值。

❹ 什么是BP神经网络

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:
1、从训练集中取出某一样本,把信息输入网络中。
2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。
3、计算网络实际输出与期望输出的误差。
4、将误差逐层反向回传至之前各层,并按一定原则将误差信号加载到连接权值上,使整个神经网络的连接权值向误差减小的方向转化。
5、対训练集中每一个输入—输出样本对重复以上步骤,直到整个训练样本集的误差减小到符合要求为止。

❺ 循环神经网络

为什么卷积神经网络不会出现严重的数值问题呢?
卷积神经网络中每一层的权重矩阵 W 是不同的,并且在初始化时它们是独立同分布的,因此可以相互抵消,在多层之后一般不会出现严重的数值问题。
循环神经网络采用 ReLu 激活函数,只有当 W 的取值在单位矩阵附近时才能取得比较好的效果,因此需要将 W 初始化为单位矩阵。

Seq2Seq 模型最基础的解码方法是贪心法,即选取一种度量标准后,每次都在当前状态下选择最佳的一个结果,直到结束。贪心法的计算代价低,适合作为基准结果与其他方法相比较。贪心法获得的是一个局部最优解,由于实际问题的复杂性,该方法往往不能取得最好的结果。
集束搜索: 是一种启发式算法,会保存 beam size 个当前的较佳选择,然后解码时每一步根据保存的选则进行下一步扩展和排序,接着选择前 b 个进行保存,循环迭代,知道结束时选择最佳的一个作为解码的结果。 b 往往选择一个适中的范围,以 8-12 为佳。

Seq2Seq 模型引入注意力机制是为了解决什么问题?为什么选用了双向的循环神经网络模型?
编码时输入序列的全部信息压缩到了一个向量中,随着序列增长,句子越前面的词的信息丢失越严重。同时,Seq2Seq 模型的输出序列中,常常会损失部分输入序列信息,这是解码时,当前词及对应的源语言词的上下文信息和位置信息在编解码过程中丢失了。 引入注意力机制,解决上述问题 。使用双向的循环神经网络进行建模,可以获取前后文的信息。

❻ 循环神经网络(RNN)简介

循环神经网络英文名称为 ( Recurrent Neural Network, RNN ),其通过使用带自反馈的神经元,能够处理任意长度的 时序 数据。

给定输入时序序列

式中, 表示一段时序数据, 为时间长度

以一段英文段落为例,其时序数据可以表示为:

若是一段视频,将其每一帧通过CNN网络处理得到相应的编码向量

循环神经网络通过以下公式更新隐藏层的活性值

循环神经网络图示

RNN的基本模型如下图所示,为便于理解,图中将RNN的模型展开,按照时序方向对其前向传播流程进行介绍

RNN的基本模型

利用数学表达式整个过程可以变得更加清晰,RNN的前向传播公式如下:

将上述过程整合到一个RNN cell中,可以表示为如下图所示的过程:

RNN的前向传播示意图

缺陷:

没有利用到模型后续的信息,可以通过双向RNN网络进行优化

RNN主要有两种计算梯度的方式:随时间反向传播(BPTT)和实时循环学习法(RTRL)算法

本文中主要介绍随时间反向传播的方法 ( BackPropagation Through Time

RNN的损失函数与任务有关,对于同步的序列对序列任务,其loss可以用交叉熵公式表示

然后通过BPTT算法便可以进行梯度的反向传播计算

梯度爆炸的解决方法:梯度修剪

梯度消失的解决方法:增加长程依赖 LSTM,GRU

GRU的基本思路:增加相关门(Relate Gate)和更新门(Update Gate),进而使得RNN单元具有记忆能力

首先从数学角度对GRU的前向传播过程进行介绍,具体公式如下:

公式中各变量的含义:

将上述数学公式转化为图像,可得

GRU Cell的前向传播流程

LSTM意为长短时记忆网络 (Long Short-Term Memory Network,LSTM) ,可以有效地解决简单神经网络的梯度消失和爆炸问题

在LSTM中,与GRU主要有两点不同

同样,先从数学公式入手,对LSTM的前向传播过程进行了解

基于数学公式的过程,可将LSTM CELL的前向传播过程总结为(图片借用于nndl):

LSTM Cell的前向传播示意图

从上图中可以看出,LSTM在前向传播的过程中传输了两个状态:内部状态 以及外部状态 ,在整个传播过程中 外部状态(隐状态) 每个时刻都会被重写,因此可以看作一种 短时记忆 ,而 内部状态 可以在某个时刻捕捉一些关键信息,并将此信息保存一段时间间隔,可以看作一种 长时记忆 (长的短时记忆)

此外,在LSTM网络初始化训练的时候,需要手动将遗忘门的数值设置的大一些,否则在参数初始化的时候,遗忘门的数据会被初始化为一个很小的值,前一时刻的内部状态 大部分都会丢失,这样网络很难获取到长距离的依赖信息,并且相邻时间间隔的梯度会非常小,导致 梯度弥散 问题,因此遗忘门的 偏置变量 的初始值 一般很大,取 1或2

将 设置为1即可,但是长度非常的大的时候会造成记忆单元的饱和,降低性能

三个门不仅依赖于 和 ,也依赖于

将两者合并为一个门,即:

首先,我们要理解什么是深层的RNN,对于单个的RNN cell,若将其在时间维度上展开,其深度与时间维度的长度成正比,但若将一个RNN cell看作为单个从 的映射函数,则单个cell实际上是很浅显的一层,因此深层循环神经网络要做的就是把多个RNN cell组合起来,换句话说,就是增加从输入 到输出 的路径,使得网络的深度更深。

如何增加从输入 到输出 的路径呢?两种途径:

堆叠循环神经网络示意图

将网络带入到实际应用场景中:假如我们要翻译一段句子

在这里,is和are实际上是由后面的Lucy和they所决定的,而这种单向的按照时序进行传播的方式没有利用到后面的信息。因此诞生了双向循环网络

双向循环神经网络示意图

双向循环神经网络实际上就是简单的双层循环神经网络,只不过第二层网络的传播方式为按时序的逆向传播,其传播公式为:

❼ 神经网络模型-27种神经网络模型们的简介

​ 

【1】Perceptron(P) 感知机

【1】感知机 

感知机是我们知道的最简单和最古老的神经元模型,它接收一些输入,然后把它们加总,通过激活函数并传递到输出层。

【2】Feed Forward(FF)前馈神经网络

 【2】前馈神经网络

前馈神经网络(FF),这也是一个很古老的方法——这种方法起源于50年代。它的工作原理通常遵循以下规则:

1.所有节点都完全连接

2.激活从输入层流向输出,无回环

3.输入和输出之间有一层(隐含层)

在大多数情况下,这种类型的网络使用反向传播方法进行训练。

【3】Radial Basis Network(RBF) RBF神经网络

 【3】RBF神经网络

RBF 神经网络实际上是 激活函数是径向基函数 而非逻辑函数的FF前馈神经网络(FF)。两者之间有什么区别呢?

逻辑函数--- 将某个任意值映射到[0 ,... 1]范围内来,回答“是或否”问题。适用于分类决策系统,但不适用于连续变量。

相反, 径向基函数--- 能显示“我们距离目标有多远”。 这完美适用于函数逼近和机器控制(例如作为PID控制器的替代)。

简而言之,RBF神经网络其实就是, 具有不同激活函数和应用方向的前馈网络 。

【4】Deep Feed Forword(DFF)深度前馈神经网络

【4】DFF深度前馈神经网络 

DFF深度前馈神经网络在90年代初期开启了深度学习的潘多拉盒子。 这些依然是前馈神经网络,但有不止一个隐含层 。那么,它到底有什么特殊性?

在训练传统的前馈神经网络时,我们只向上一层传递了少量的误差信息。由于堆叠更多的层次导致训练时间的指数增长,使得深度前馈神经网络非常不实用。 直到00年代初,我们开发了一系列有效的训练深度前馈神经网络的方法; 现在它们构成了现代机器学习系统的核心 ,能实现前馈神经网络的功能,但效果远高于此。

【5】Recurrent Neural Network(RNN) 递归神经网络

【5】RNN递归神经网络 

RNN递归神经网络引入不同类型的神经元——递归神经元。这种类型的第一个网络被称为约旦网络(Jordan Network),在网络中每个隐含神经元会收到它自己的在固定延迟(一次或多次迭代)后的输出。除此之外,它与普通的模糊神经网络非常相似。

当然,它有许多变化 — 如传递状态到输入节点,可变延迟等,但主要思想保持不变。这种类型的神经网络主要被使用在上下文很重要的时候——即过去的迭代结果和样本产生的决策会对当前产生影响。最常见的上下文的例子是文本——一个单词只能在前面的单词或句子的上下文中进行分析。

【6】Long/Short Term Memory (LSTM) 长短时记忆网络

【6】LSTM长短时记忆网络 

LSTM长短时记忆网络引入了一个存储单元,一个特殊的单元,当数据有时间间隔(或滞后)时可以处理数据。递归神经网络可以通过“记住”前十个词来处理文本,LSTM长短时记忆网络可以通过“记住”许多帧之前发生的事情处理视频帧。 LSTM网络也广泛用于写作和语音识别。

存储单元实际上由一些元素组成,称为门,它们是递归性的,并控制信息如何被记住和遗忘。

【7】Gated Recurrent Unit (GRU)

 【7】GRU是具有不同门的LSTM

GRU是具有不同门的LSTM。

听起来很简单,但缺少输出门可以更容易基于具体输入重复多次相同的输出,目前此模型在声音(音乐)和语音合成中使用得最多。

实际上的组合虽然有点不同:但是所有的LSTM门都被组合成所谓的更新门(Update Gate),并且复位门(Reset Gate)与输入密切相关。

它们比LSTM消耗资源少,但几乎有相同的效果。

【8】Auto Encoder (AE) 自动编码器

 【8】AE自动编码器

Autoencoders自动编码器用于分类,聚类和特征压缩。

当您训练前馈(FF)神经网络进行分类时,您主要必须在Y类别中提供X个示例,并且期望Y个输出单元格中的一个被激活。 这被称为“监督学习”。

另一方面,自动编码器可以在没有监督的情况下进行训练。它们的结构 - 当隐藏单元数量小于输入单元数量(并且输出单元数量等于输入单元数)时,并且当自动编码器被训练时输出尽可能接近输入的方式,强制自动编码器泛化数据并搜索常见模式。

【9】Variational AE (VAE)  变分自编码器

 【9】VAE变分自编码器

变分自编码器,与一般自编码器相比,它压缩的是概率,而不是特征。

尽管如此简单的改变,但是一般自编码器只能回答当“我们如何归纳数据?”的问题时,变分自编码器回答了“两件事情之间的联系有多强大?我们应该在两件事情之间分配误差还是它们完全独立的?”的问题。

【10】Denoising AE (DAE) 降噪自动编码器

 【10】DAE降噪自动编码器

虽然自动编码器很酷,但它们有时找不到最鲁棒的特征,而只是适应输入数据(实际上是过拟合的一个例子)。

降噪自动编码器(DAE)在输入单元上增加了一些噪声 - 通过随机位来改变数据,随机切换输入中的位,等等。通过这样做,一个强制降噪自动编码器从一个有点嘈杂的输入重构输出,使其更加通用,强制选择更常见的特征。

【11】Sparse AE (SAE) 稀疏自编码器

【11】SAE稀疏自编码器 

稀疏自编码器(SAE)是另外一个有时候可以抽离出数据中一些隐藏分组样试的自动编码的形式。结构和AE是一样的,但隐藏单元的数量大于输入或输出单元的数量。

【12】Markov Chain (MC) 马尔科夫链

 【12】Markov Chain (MC) 马尔科夫链

马尔可夫链(Markov Chain, MC)是一个比较老的图表概念了,它的每一个端点都存在一种可能性。过去,我们用它来搭建像“在单词hello之后有0.0053%的概率会出现dear,有0.03551%的概率出现you”这样的文本结构。

这些马尔科夫链并不是典型的神经网络,它可以被用作基于概率的分类(像贝叶斯过滤),用于聚类(对某些类别而言),也被用作有限状态机。

【13】Hopfield Network (HN) 霍普菲尔网络

【13】HN霍普菲尔网络 

霍普菲尔网络(HN)对一套有限的样本进行训练,所以它们用相同的样本对已知样本作出反应。

在训练前,每一个样本都作为输入样本,在训练之中作为隐藏样本,使用过之后被用作输出样本。

在HN试着重构受训样本的时候,他们可以用于给输入值降噪和修复输入。如果给出一半图片或数列用来学习,它们可以反馈全部样本。

【14】Boltzmann Machine (BM) 波尔滋曼机

【14】 BM 波尔滋曼机 

波尔滋曼机(BM)和HN非常相像,有些单元被标记为输入同时也是隐藏单元。在隐藏单元更新其状态时,输入单元就变成了输出单元。(在训练时,BM和HN一个一个的更新单元,而非并行)。

这是第一个成功保留模拟退火方法的网络拓扑。

多层叠的波尔滋曼机可以用于所谓的深度信念网络,深度信念网络可以用作特征检测和抽取。

【15】Restricted BM (RBM) 限制型波尔滋曼机

【15】 RBM 限制型波尔滋曼机 

在结构上,限制型波尔滋曼机(RBM)和BM很相似,但由于受限RBM被允许像FF一样用反向传播来训练(唯一的不同的是在反向传播经过数据之前RBM会经过一次输入层)。

【16】Deep Belief Network (DBN) 深度信念网络

【16】DBN 深度信念网络 

像之前提到的那样,深度信念网络(DBN)实际上是许多波尔滋曼机(被VAE包围)。他们能被连在一起(在一个神经网络训练另一个的时候),并且可以用已经学习过的样式来生成数据。

【17】Deep Convolutional Network (DCN) 深度卷积网络

【17】 DCN 深度卷积网络

当今,深度卷积网络(DCN)是人工神经网络之星。它具有卷积单元(或者池化层)和内核,每一种都用以不同目的。

卷积核事实上用来处理输入的数据,池化层是用来简化它们(大多数情况是用非线性方程,比如max),来减少不必要的特征。

他们通常被用来做图像识别,它们在图片的一小部分上运行(大约20x20像素)。输入窗口一个像素一个像素的沿着图像滑动。然后数据流向卷积层,卷积层形成一个漏斗(压缩被识别的特征)。从图像识别来讲,第一层识别梯度,第二层识别线,第三层识别形状,以此类推,直到特定的物体那一级。DFF通常被接在卷积层的末端方便未来的数据处理。

【18】Deconvolutional Network (DN) 去卷积网络

 【18】 DN 去卷积网络

去卷积网络(DN)是将DCN颠倒过来。DN能在获取猫的图片之后生成像(狗:0,蜥蜴:0,马:0,猫:1)一样的向量。DNC能在得到这个向量之后,能画出一只猫。

【19】Deep Convolutional Inverse Graphics Network (DCIGN) 深度卷积反转图像网络

【19】 DCIGN 深度卷积反转图像网络

深度卷积反转图像网络(DCIGN),长得像DCN和DN粘在一起,但也不完全是这样。

事实上,它是一个自动编码器,DCN和DN并不是作为两个分开的网络,而是承载网路输入和输出的间隔区。大多数这种神经网络可以被用作图像处理,并且可以处理他们以前没有被训练过的图像。由于其抽象化的水平很高,这些网络可以用于将某个事物从一张图片中移除,重画,或者像大名鼎鼎的CycleGAN一样将一匹马换成一个斑马。

【20】Generative Adversarial Network (GAN) 生成对抗网络

 【20】 GAN 生成对抗网络

生成对抗网络(GAN)代表了有生成器和分辨器组成的双网络大家族。它们一直在相互伤害——生成器试着生成一些数据,而分辨器接收样本数据后试着分辨出哪些是样本,哪些是生成的。只要你能够保持两种神经网络训练之间的平衡,在不断的进化中,这种神经网络可以生成实际图像。

【21】Liquid State Machine (LSM) 液体状态机

 【21】 LSM 液体状态机

液体状态机(LSM)是一种稀疏的,激活函数被阈值代替了的(并不是全部相连的)神经网络。只有达到阈值的时候,单元格从连续的样本和释放出来的输出中积累价值信息,并再次将内部的副本设为零。

这种想法来自于人脑,这些神经网络被广泛的应用于计算机视觉,语音识别系统,但目前还没有重大突破。

【22】Extreme  Learning Machine (ELM) 极端学习机

【22】ELM 极端学习机 

极端学习机(ELM)是通过产生稀疏的随机连接的隐藏层来减少FF网络背后的复杂性。它们需要用到更少计算机的能量,实际的效率很大程度上取决于任务和数据。

【23】Echo State Network (ESN) 回声状态网络

【23】 ESN 回声状态网络

回声状态网络(ESN)是重复网络的细分种类。数据会经过输入端,如果被监测到进行了多次迭代(请允许重复网路的特征乱入一下),只有在隐藏层之间的权重会在此之后更新。

据我所知,除了多个理论基准之外,我不知道这种类型的有什么实际应用。。。。。。。

【24】Deep Resial Network (DRN) 深度残差网络

​【24】 DRN 深度残差网络 

深度残差网络(DRN)是有些输入值的部分会传递到下一层。这一特点可以让它可以做到很深的层级(达到300层),但事实上它们是一种没有明确延时的RNN。

【25】Kohonen Network (KN) Kohonen神经网络

​ 【25】 Kohonen神经网络

Kohonen神经网络(KN)引入了“单元格距离”的特征。大多数情况下用于分类,这种网络试着调整它们的单元格使其对某种特定的输入作出最可能的反应。当一些单元格更新了, 离他们最近的单元格也会更新。

像SVM一样,这些网络总被认为不是“真正”的神经网络。

【26】Support Vector Machine (SVM)

​【26】 SVM 支持向量机 

支持向量机(SVM)用于二元分类工作,无论这个网络处理多少维度或输入,结果都会是“是”或“否”。

SVM不是所有情况下都被叫做神经网络。

【27】Neural Turing Machine (NTM) 神经图灵机

​【27】NTM 神经图灵机 

神经网络像是黑箱——我们可以训练它们,得到结果,增强它们,但实际的决定路径大多数我们都是不可见的。

神经图灵机(NTM)就是在尝试解决这个问题——它是一个提取出记忆单元之后的FF。一些作者也说它是一个抽象版的LSTM。

记忆是被内容编址的,这个网络可以基于现状读取记忆,编写记忆,也代表了图灵完备神经网络。

❽ 循环神经网络(RNN)浅析

RNN是两种神经网络模型的缩写,一种是递归神经网络(Recursive Neural Network),一种是循环神经网络(Recurrent Neural Network)。虽然这两种神经网络有着千丝万缕的联系,但是本文主要讨论的是第二种神经网络模型——循环神经网络(Recurrent Neural Network)。

循环神经网络是指一个随着时间的推移,重复发生的结构。在自然语言处理(NLP),语音图像等多个领域均有非常广泛的应用。RNN网络和其他网络最大的不同就在于RNN能够实现某种“记忆功能”,是进行时间序列分析时最好的选择。如同人类能够凭借自己过往的记忆更好地认识这个世界一样。RNN也实现了类似于人脑的这一机制,对所处理过的信息留存有一定的记忆,而不像其他类型的神经网络并不能对处理过的信息留存记忆。

循环神经网络的原理并不十分复杂,本节主要从原理上分析RNN的结构和功能,不涉及RNN的数学推导和证明,整个网络只有简单的输入输出和网络状态参数。一个典型的RNN神经网络如图所示:

由上图可以看出:一个典型的RNN网络包含一个输入x,一个输出h和一个神经网络单元A。和普通的神经网络不同的是,RNN网络的神经网络单元A不仅仅与输入和输出存在联系,其与自身也存在一个回路。这种网络结构就揭示了RNN的实质:上一个时刻的网络状态信息将会作用于下一个时刻的网络状态。如果上图的网络结构仍不够清晰,RNN网络还能够以时间序列展开成如下形式:

等号右边是RNN的展开形式。由于RNN一般用来处理序列信息,因此下文说明时都以时间序列来举例,解释。等号右边的等价RNN网络中最初始的输入是x0,输出是h0,这代表着0时刻RNN网络的输入为x0,输出为h0,网络神经元在0时刻的状态保存在A中。当下一个时刻1到来时,此时网络神经元的状态不仅仅由1时刻的输入x1决定,也由0时刻的神经元状态决定。以后的情况都以此类推,直到时间序列的末尾t时刻。

上面的过程可以用一个简单的例子来论证:假设现在有一句话“I want to play basketball”,由于自然语言本身就是一个时间序列,较早的语言会与较后的语言存在某种联系,例如刚才的句子中“play”这个动词意味着后面一定会有一个名词,而这个名词具体是什么可能需要更遥远的语境来决定,因此一句话也可以作为RNN的输入。回到刚才的那句话,这句话中的5个单词是以时序出现的,我们现在将这五个单词编码后依次输入到RNN中。首先是单词“I”,它作为时序上第一个出现的单词被用作x0输入,拥有一个h0输出,并且改变了初始神经元A的状态。单词“want”作为时序上第二个出现的单词作为x1输入,这时RNN的输出和神经元状态将不仅仅由x1决定,也将由上一时刻的神经元状态或者说上一时刻的输入x0决定。之后的情况以此类推,直到上述句子输入到最后一个单词“basketball”。

接下来我们需要关注RNN的神经元结构:

上图依然是一个RNN神经网络的时序展开模型,中间t时刻的网络模型揭示了RNN的结构。可以看到,原始的RNN网络的内部结构非常简单。神经元A在t时刻的状态仅仅是t-1时刻神经元状态与t时刻网络输入的双曲正切函数的值,这个值不仅仅作为该时刻网络的输出,也作为该时刻网络的状态被传入到下一个时刻的网络状态中,这个过程叫做RNN的正向传播(forward propagation)。注:双曲正切函数的解析式如下:

双曲正切函数的求导如下:

双曲正切函数的图像如下所示:

这里就带来一个问题:为什么RNN网络的激活函数要选用双曲正切而不是sigmod呢?(RNN的激活函数除了双曲正切,RELU函数也用的非常多)原因在于RNN网络在求解时涉及时间序列上的大量求导运算,使用sigmod函数容易出现梯度消失,且sigmod的导数形式较为复杂。事实上,即使使用双曲正切函数,传统的RNN网络依然存在梯度消失问题,无法“记忆”长时间序列上的信息,这个bug直到LSTM上引入了单元状态后才算较好地解决。

这一节主要介绍与RNN相关的数学推导,由于RNN是一个时序模型,因此其求解过程可能和一般的神经网络不太相同。首先需要介绍一下RNN完整的结构图,上一节给出的RNN结构图省去了很多内部参数,仅仅作为一个概念模型给出。

上图表明了RNN网络的完整拓扑结构,从图中我们可以看到RNN网络中的参数情况。在这里我们只分析t时刻网络的行为与数学推导。t时刻网络迎来一个输入xt,网络此时刻的神经元状态st用如下式子表达:

t时刻的网络状态st不仅仅要输入到下一个时刻t+1的网络状态中去,还要作为该时刻的网络输出。当然,st不能直接输出,在输出之前还要再乘上一个系数V,而且为了误差逆传播时的方便通常还要对输出进行归一化处理,也就是对输出进行softmax化。因此,t时刻网络的输出ot表达为如下形式:

为了表达方便,笔者将上述两个公式做如下变换:

以上,就是RNN网络的数学表达了,接下来我们需要求解这个模型。在论述具体解法之前首先需要明确两个问题:优化目标函数是什么?待优化的量是什么?

只有在明确了这两个问题之后才能对模型进行具体的推导和求解。关于第一个问题,笔者选取模型的损失函数作为优化目标;关于第二个问题,我们从RNN的结构图中不难发现:只要我们得到了模型的U,V,W这三个参数就能完全确定模型的状态。因此该优化问题的优化变量就是RNN的这三个参数。顺便说一句,RNN模型的U,V,W三个参数是全局共享的,也就是说不同时刻的模型参数是完全一致的,这个特性使RNN得参数变得稍微少了一些。

不做过多的讨论,RNN的损失函数选用交叉熵(Cross Entropy),这是机器学习中使用最广泛的损失函数之一了,其通常的表达式如下所示:

上面式子是交叉熵的标量形式,y_i是真实的标签值,y_i*是模型给出的预测值,最外面之所以有一个累加符号是因为模型输出的一般都是一个多维的向量,只有把n维损失都加和才能得到真实的损失值。交叉熵在应用于RNN时需要做一些改变:首先,RNN的输出是向量形式,没有必要将所有维度都加在一起,直接把损失值用向量表达就可以了;其次,由于RNN模型处理的是序列问题,因此其模型损失不能只是一个时刻的损失,应该包含全部N个时刻的损失。

故RNN模型在t时刻的损失函数写成如下形式:

全部N个时刻的损失函数(全局损失)表达为如下形式:

需要说明的是:yt是t时刻输入的真实标签值,ot为模型的预测值,N代表全部N个时刻。下文中为了书写方便,将Loss简记为L。在结束本小节之前,最后补充一个softmax函数的求导公式:

由于RNN模型与时间序列有关,因此不能直接使用BP(back propagation)算法。针对RNN问题的特殊情况,提出了BPTT算法。BPTT的全称是“随时间变化的反向传播算法”(back propagation through time)。这个方法的基础仍然是常规的链式求导法则,接下来开始具体推导。虽然RNN的全局损失是与全部N个时刻有关的,但为了简单笔者在推导时只关注t时刻的损失函数。

首先求出t时刻下损失函数关于o_t*的微分:

求出损失函数关于参数V的微分:

因此,全局损失关于参数V的微分为:

求出t时刻的损失函数关于关于st*的微分:

求出t时刻的损失函数关于s_t-1*的微分:

求出t时刻损失函数关于参数U的偏微分。注意:由于是时间序列模型,因此t时刻关于U的微分与前t-1个时刻都有关,在具体计算时可以限定最远回溯到前n个时刻,但在推导时需要将前t-1个时刻全部带入:

因此,全局损失关于U的偏微分为:

求t时刻损失函数关于参数W的偏微分,和上面相同的道理,在这里仍然要计算全部前t-1时刻的情况:

因此,全局损失关于参数W的微分结果为:

至此,全局损失函数关于三个主要参数的微分都已经得到了。整理如下:

接下来进一步化简上述微分表达式,化简的主要方向为t时刻的损失函数关于ot的微分以及关于st*的微分。已知t时刻损失函数的表达式,求关于ot的微分:

softmax函数求导:

因此:

又因为:

且:

有了上面的数学推导,我们可以得到全局损失关于U,V,W三个参数的梯度公式:

由于参数U和W的微分公式不仅仅与t时刻有关,还与前面的t-1个时刻都有关,因此无法写出直接的计算公式。不过上面已经给出了t时刻的损失函数关于s_t-1的微分递推公式,想来求解这个式子也是十分简单的,在这里就不赘述了。

以上就是关于BPTT算法的全部数学推导。从最终结果可以看出三个公式的偏微分结果非常简单,在具体的优化过程中可以直接带入进行计算。对于这种优化问题来说,最常用的方法就是梯度下降法。针对本文涉及的RNN问题,可以构造出三个参数的梯度更新公式:

依靠上述梯度更新公式就能够迭代求解三个参数,直到三个参数的值发生收敛。

这是笔者第一次尝试推导RNN的数学模型,在推导过程中遇到了非常多的bug。非常感谢互联网上的一些公开资料和博客,给了我非常大的帮助和指引。接下来笔者将尝试实现一个单隐层的RNN模型用于实现一个语义预测模型。

❾ 神经网络连接方式分为哪几类每一类有哪些特点

神经网络模型的分类
人工神经网络的模型很多,可以按照不同的方法进行分类。其中,常见的两种分类方法是,按照网络连接的拓朴结构分类和按照网络内部的信息流向分类。
1 按照网络拓朴结构分类
网络的拓朴结构,即神经元之间的连接方式。按此划分,可将神经网络结构分为两大类:层次型结构和互联型结构。
层次型结构的神经网络将神经元按功能和顺序的不同分为输出层、中间层(隐层)、输出层。输出层各神经元负责接收来自外界的输入信息,并传给中间各隐层神经元;隐层是神经网络的内部信息处理层,负责信息变换。根据需要可设计为一层或多层;最后一个隐层将信息传递给输出层神经元经进一步处理后向外界输出信息处理结果。

而互连型网络结构中,任意两个节点之间都可能存在连接路径,因此可以根据网络中节点的连接程度将互连型网络细分为三种情况:全互连型、局部互连型和稀疏连接型
2 按照网络信息流向分类
从神经网络内部信息传递方向来看,可以分为两种类型:前馈型网络和反馈型网络。
单纯前馈网络的结构与分层网络结构相同,前馈是因网络信息处理的方向是从输入层到各隐层再到输出层逐层进行而得名的。前馈型网络中前一层的输出是下一层的输入,信息的处理具有逐层传递进行的方向性,一般不存在反馈环路。因此这类网络很容易串联起来建立多层前馈网络。
反馈型网络的结构与单层全互连结构网络相同。在反馈型网络中的所有节点都具有信息处理功能,而且每个节点既可以从外界接受输入,同时又可以向外界输出。

阅读全文

与哪些神经网络信息通常是双向传播的相关的资料

热点内容
文山网络营销如何 浏览:145
故宫网络信号 浏览:284
为什么wifi玩王者荣耀网络不卡 浏览:262
苹果手机获取不到网络时间 浏览:301
无线网络登录号 浏览:768
移动盒子无线网络开关的设置密码 浏览:192
如何进行网络营销策划 浏览:635
网络有个卡的信号怎么解决 浏览:910
局域网设置双人网络 浏览:609
fast路由器设置成功后没有网络 浏览:443
vivox27手机数据网络差 浏览:408
皓影多媒体怎么显示网络异常 浏览:888
unraid万兆网络设置 浏览:524
实战网络营销网 浏览:848
wifi网速显示未知网络 浏览:704
三星usb连接共享网络打印机 浏览:429
大疆御连接网络固件更新 浏览:379
网络通信安全密码口令 浏览:586
同一网络两个手机直播 浏览:434
移动网络的投屏慢 浏览:941

友情链接