RNN LSTM GRU BRNN介绍

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ghw15221836342/article/details/86416261

为什么我们需要序列模型?

当你用前向神经网络或者CNN去处理序列模型的时候,表现的很差。我们常见的序列模型的例子:一段语音或者一句包含序列化单词的英语句子。前向传播或者CNN需要这些句子保持同样的额长度,但是我们都知道一句话里不同单词的长度都是不同的。如果你把这些语句变成同样的长度作为一个输入的话,这些传统的模型还是不能理解这些输入的含义。给定一段话,当观察某一个单词的时候你会发现,序列化模型都在努力寻找每个单词与上下文之间的联系。这就符合我们人的想法,当你看到一个新的单词的时候,你也会从上下文之间联系去推断这个单词的含义。

Rccurrent Neural Network

image

循环神经网络如上图所示,每个时隙的每个节点都从前一个节点获取输入,可以用一个循环来表示。对于每一个时隙,我们选取x_i和a_i-1(前一个结点的输出)作为后一个节点的输入,经过计算以后得到输入h_i.这个输出可以被传到下一个节点,直到所有的时隙都被计算好了以后。
image
下面是RNN的计算公式:
image
反向传播在RNN中与图2所示的传播过程方向相反。与其他的反向传播算法一样,我们计算损失函数,获取梯度去更新我们的权重参数。最有意义的一个地方是,RNN中的反向传播是从右向左。当所有的参数从最后的时隙到初始的时隙都更新完之后,就完成了整个反向传播的过程。

Long short -Term Memory - LSTM Network

RNN的缺点就是无法从比较靠后的时隙中获取信息。
image
为了了解t+1时隙的内容,我们需要知道知道0和1时隙的信息,但是他们太靠后了以至于无法将有效的信息传递过来进行推导。例如:I grew up in France …… I speak fluent French。为了了解你说法语,网络必须要回头去看,但是它无法做到这一点,这个问题要归结于间便消失的原因,因为RNN只适用于短期记忆序列。

为了解决这个问题,Hochreiter & Schmidhuber 提出了 LSTM.
image
LSTM的主体结构和RNN相同,但是重复模块进行了更多的运算,扩展重复模块使得LSTM能够记住长短序列。接下来让我们去了解一下各部分的运算。

1. Forget gate operation

image
我们将输入和前一个时隙的输出串联起来,并且将串联的值传递到sigmoid函数产生一个输出value(f_t),处于0-1之间。我们在f_t和c_t-1之间进行逐元素乘法。如果值为0,则从c_t-1中消除,如果值为1,则完全通过。因此,该操作也称为“忘记门操作”。

2. Update gate operation

image
上图就是“Update gate operation”,我们将当前时隙的值和之前时隙中学习到的值串联起来。将这个串联的值传到到tanh函数中,我们会得到一个候选值,并且将候选值传到sigmoid函数中,所选取的候选值就是更新的c_t-1.

3. Output gate operation

image

我们连接当前时间步长的值和前一时间步的学习表示,并通过sigmoid函数传递它,以选择我们将用作输出的值。我们采用单元状态并应用tanh函数并执行元素操作,该操作仅允许选定的输出。

现在,这是在单个单元格中完成的大量操作。当使用更大的网络时,与RNN相比,训练时间将显着增加。如果想要减少训练时间,还可以使用能够记住长期依赖关系的网络,还可以选择LSTM。它被称为门控循环单元(GRU)。

Gated Recurrent Unit-GRU Network

image
GRU不同于LSTM,只有两个门,一个是update gate和reset gate. Update gate决定了有多少信息可以被传递,而reset gate有多少被传递的信息可以被丢弃。上图中展示了,update gate 函数,采用的是sigmoid函数,我们决定了什么值可以倍传递到后面,h_t表示复位门操作,其中我们将前一时间步和当前时间步的连接值乘以r_t。这会生成我们希望从之前的时间步骤中丢弃的值。

即便GRU计算效率高于LSTM,由于门的减少,它的表现不如LSTM网络。但是,GRU训练更快,并且不需要太多的计算资源。

Bidirectional RNN

image
所有上述网络的一个主要问题是他们从之前的时间步骤学习表示。有时,您可能需要从未来的时间步骤学习表示,以更好地理解上下文并消除歧义。拿下面的例子,“He said, Teddy bears are on sale” and “He said, Teddy Roosevelt was a great President”在上面两句话中,当我们看到“泰迪”这个词和前面两个词“他说”时,我们可能无法理解句子是指总统还是泰迪熊。因此,要解决这种模糊性,我们需要展望未来。这就是双向RNN所实现的目标。

双向RNN中的重复模块可以是传统的RNN,LSTM或GRU。双向RNN的结构和连接如图9所示。有两种类型的连接,一种是在时间上前进,这有助于我们从以前的表示中学习,另一种在时间上向后学习,这有助于我们从未来的表示中学习。

前向传播分两步完成:

我们从左向右移动,从我们计算值的初始时间步开始,直到我们到达最后的时间步
我们从右向左移动,从最后时间步开始,我们计算值,直到达到初始时间步

Conclusion

将双向RNN与LSTM模块相结合可以显着提高性能,当你将它们与注意机制混淆时,可以在机器翻译,情感分析等用例中获得最先进的性能。

展开阅读全文

RNNLSTMGRU

02-22

<p style="font-size:16px;">rn 本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。<br />rn<br />rn基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。<br />rn<br />rn本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。<br />rn<br />rn通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。<br />rn<br />rn本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。<br />rn<br />rn本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。rn</p>rn<p style="font-size:16px;">rn <br />rn</p>rn<p style="font-size:16px;">rn <img src="https://img-bss.csdn.net/201902221256508000.gif" alt="" /><img src="https://img-bss.csdn.net/201902221257045928.gif" alt="" /><img src="https://img-bss.csdn.net/201902221257156312.gif" alt="" /><img src="https://img-bss.csdn.net/201902221257252319.gif" alt="" /> rn</p>

GRU,双向RNN,多层RNN介绍

03-14

<ul style="color:rgba(0,0,0,.560784);font-size:14px;background-color:#FFFFFF;">rn <li>rn <span>Tensorflow2.0介绍:</span> rn </li>rn</ul>rn<p style="color:rgba(0,0,0,.560784);font-size:14px;background-color:#FFFFFF;">rn tensorflow是GOOGLE在2015年底发布的一款深度学习框架,也是目前全世界用得最多,发展最好的深度学习框架。2019年3月8日,GOOGLE发布最新tensorflow2版本。新版本的tensorflow有很多新特征,更快更容易使用更人性化。但是老版的tensorflow程序在新版本中几乎都无法继续使用,所以我们有必要学习新版tensorflow2的新用法。rn</p>rn<ul style="color:rgba(0,0,0,.560784);font-size:14px;background-color:#FFFFFF;">rn <li>rn <span>课程介绍:</span> rn </li>rn</ul>rn<p style="color:rgba(0,0,0,.560784);font-size:14px;background-color:#FFFFFF;">rn 我们的这门课程适合小白学习,也适合有基础的同学学习。课程会从0开始学习,从python环境安装,python入门,numpy,pandas,matplotlib使用,深度学习基础,一直讲到tensorflow基础,进阶,项目实战。不管你是0基础小白,想进入AI行业,还是有一定基础,想学习最新的tensorflow2的使用,都适合我们这门课程。rn</p>rn<ul style="color:rgba(0,0,0,.560784);font-size:14px;background-color:#FFFFFF;">rn <li>rn <span>讲师介绍:</span> rn </li>rn</ul>rn<p style="color:rgba(0,0,0,.560784);font-size:14px;background-color:#FFFFFF;">rn 覃秉丰,物理系毕业转AI行业,想转行同学可以找我聊聊。机器学习、深度学习神经网络领域多年研究开发授课经验,精通算法原理与编程实践;曾完成过多项图像识别、目标识别、语音识别等企业项目,一线实战经验丰富;长期为多家包括世界五百强在内的大型企业总部做人工智能技术内训服务(中国移动、中国银行,华夏银行,中国太平洋,国家电网、中海油等)。上课特点:公式尽量一个一个符号推,代码尽量一行一行讲,希望所有人都能学有所得。rn</p>

没有更多推荐了,返回首页