首页 > 编程知识 正文

lstm和rnn的区别,tensorflow cpu和gpu速度差距

时间:2023-05-06 18:41:04 阅读:51544 作者:1956

文章目录一、RNN网络(Recurrent Neural Network ) 1.1RNN网络模型定义1.2 RNN模型的缺点二、LSTM网络(Long Short Term Memory ) 2.1 LSTM原理2.2 LSTM缺点

另一方面,RNN网络1.1RNN网络模型定义RNN是一种特殊的神经网络结构,是用于处理序列数据的神经网络。 与CNN的最大区别在于可以处理不同时间点的数据。 各层间有一定的联系,不是孤立的卷积网络层。

循环神经网络如下图所示。 时间步骤中的每个节点都接收来自前一个节点的输入。 这可以用反馈循环表示。 可以深入挖掘此反馈循环,如下图所示。 在每个时间步骤,获得输入xt_i和前一个节点的输出h_t-i,计算输出h_t-i,并生成输出ht_i 1。 此输出在检索后提供给下一个节点。 该过程将继续,直到评估了所有时间步骤。

结构如下。 首先单词转换为机器可读的向量,然后RNN逐个处理向量序列,依次处理到最后。

在处理过程中,预处理后的输出根据权重传递给下一个网络模块,随后模块的输入进入网络,依次重复该过程完成网络传输。

前方传播中,各单元的动作依次进行如下。

动画如下。

首先,将输入和以前的隐藏状态合并为一个向量。 向量包含当前输入和以前输入的信息。 该向量进而经过激活函数Tanh,输出新的非显示状态或者网络存储。

激活函数Tanh用的输出值总是在区间(-1,1 )内。

简单的神经网络一般包括输入层、隐藏层和输出层,工作原理如下:

u是从输入层到非显示层的权重矩阵,o也是表示输出层的值的矢量; v是从隐藏层到输出层的权重矩阵。 循环神经网络隐藏层的值s不仅取决于当前的输入x,还取决于上一次隐藏层的值s。 权重矩阵w将隐藏层的上次值作为本次输入的权重。

整个模型框架的计算公式如下:

1.2 RNN模型的缺点

从上图可知,ht的输出中包含了x0…xt、h0…ht-1的所有信息,远端的x0、h0与权重相乘t次。 RNN的激活函数tanh及其导数的波形如下。

可知tanh输出的数值为=1。 如果权重w小于1,则重复多次乘法运算后,最终权重接近0; 当权重w大于1时,重复多次乘法运算就接近无限大,无限大的梯度在tanh中只是无限大地接近1。 这种接近0或1的现象称为梯度消失(梯度方差)和梯度爆炸。 因此,相对于长链的时间序列,远端的数值点对目前的输出没有任何作用,这种现象称为长期依赖。

二、LSTM网络2.1 LSTM原理RNN受限于短期记忆问题。 如果序列足够长,则很难将信息从较早的时间步骤传输到较晚的时间步骤。 因此,如果尝试处理文本进行预测,RNN可能会首先忽略重要信息。 反向传播过程中,RNN存在梯度消失问题。 在这种情况下,需要RNN改良型网络LSTM和GRU诞生的长存储网络。

LSTM和GRU网络引入“门”概念,通过门选择相关信息,确定哪些是重要形象,哪些需要保留,哪些需要舍弃。 LSTM和GRU常用于语音识别、语音合成、文本生成等领域,也用于生成视频字幕。

举个例子,今天下午天气很好,我要去打羽毛球。 听和看这句话,我们会在第一时间捕捉主要信息“下午”、“天气好”、“打篮球”,放弃不重要的信息“我们”、“走”等等。 LTM和GRU的工作原理相似。 学习只留下相关信息进行预测,可以忘记不相关的数据。

LTM核心是单元模块和“门”电路结构。 模块用于逐个后续传播信息,在传播过程中携带相关信息,保证信息的有效性和持续性。 门电路用于进行现象的筛选和筛选,舍弃不必要的信息,保持有效的信息。 这里采用的是电路中的建模方式,0表示舍弃,1表示保持信息,所以这里采用sigmod函数,取该函数的值(0,1 )。 这有助于更新和忘记数据。 因为无论什么数字乘以0都是0,所以这个部分的信息会被忘记。 同样,任何数字乘以1都是相同的值,这部分信息将完全保留。 这样,网络就可以知道哪些数据重要而必须忘记,哪些数字重要而必须保留。

LTM有三个门:输入门、遗忘门和输出门。

输入门和输出门,冷艳的大豆是输入和输出。 遗忘之门用于信息的取舍和保持。

输入门:

输入门以更新单元的状态。 首先将隐藏的信息和当前输入的信息输入Sigmoid函数,在0和1之间调整输出值,决定更新哪个信息。 0不重要,1重要。 也可以将隐藏状态和当前输入传输到Tanh函数,在-1和1之间压缩数字以调整网络,并将Tanh输出与Sigmoid输出相乘。 Sigmoid输出确定Tanh输出中哪些信息重要并需要保留。

输出门:

输出门可以确定下一个隐藏状态的值,所述隐藏状态包括以前输入的相关信息。 当然,隐藏状态也可以用于预测

。首先把先前的隐藏状态和当前输入传递给Sigmoid函数;接着把新得到的单元状态传递给Tanh函数;然后把Tanh输出和Sigmoid输出相乘,以确定隐藏状态应携带的信息;最后把隐藏状态作为当前单元输出,把新的单元状态和新的隐藏状态传输给下个时间步。

单元模块:
这里已经具备足够信息来计算单元状态。首先把先前的单元状态和遗忘向量逐点相乘,如果它乘以接近0的值,则意味在新的单元状态中可能要丢弃这些值;然后把它和输入门的输出值逐点相加,把神经网络发现的新信息更新到单元状态中,这样就得到了新的单元状态。
LSTM核心为两条主线一个门:一条记忆线,一条输出线,一个门。


σ为决定门(sigmoid)。根据C的情况,决定A中保留多少,对A进行筛选后输出为B。

2.2 LSTM缺点

一个神经元中存在3个门,相当于每个神经元都是原来RNN计算量的3倍以上,十分浪费算力。
无法对不等长序列数据进行处理。

三、GRU网络

GRU结构中去除了单元状态,而使用隐藏状态来传输信息。它只有两个门结构,分别是更新门和重置门。

重置门(reset gate):决定丢弃先前信息的程度.
更新门(update gate):类似于LSTM中的遗忘门和输入门,它能决定要丢弃哪些信息和要添加哪些新信息。

四、 LSTM vs GRU差异

LSTM和GRU并没有明显的准确率上的区别
GRU比起LSTM来,参数更少,运算更快,仅此而已。
所以,在实际应用中,我们用LSTM做default方法,如果追求更高的性能,就换成GRU

五、总结

RNN适用于处理序列数据和预测任务,但会受到短期记忆的影响。LSTM和GRU是两种通过引入门结构来减弱短期记忆影响的演化变体,其中门结构可用来调节流经序列链的信息流。目前,LSTM和GRU经常被用于语音识别、语音合成和自然语言理解等多个深度学习应用中。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。