深度学习通熟易懂RNN | RNN与RNN的变种结构(4.6)| 上

最近在恶补深度学习基础知识,以下为根据公众号“ 阿力阿哩哩”的《寄己训练寄己|自编码器》而总结的内容。可以结合作者在哔哩大学的视频。
在这里插入图片描述

4.6 RNN与RNN的变种结构

这一节,笔者将给大家介绍深度学习的RNN循环神经网络(Recurrent Neural Networks)与RNN结构变种LSTM长短期记忆网络(Long-Short Term Memory Networks)和GRU门控循环单元(Gated Recurrent Neural Network)。

4.6.1 RNN与全连接神经网络的区别

同样地,我们首先来对比简单的全连接神经网络和RNN的结构有啥异同,如图4.40和图4.3所示,我们会发现RNN比全连接神经网络多了参数h0,因此RNN的神经元公式会比全连接神经网络的神经元多一项(f为激励函数),如图4.37所示。至于训练过程,和全连接神经网络并没有区别,都是是基于梯度下降的方法去不断缩小预测值与真实值之间差值的过程。

在这里插入图片描述

在这里插入图片描述
上面只是演示了简单的RNN结构,它的隐藏层h与输出y相同,我们常用的RNN结构当然不会这么简单,因此我们对上面的RNN结构进一步的拓展,如图 4.38所示。这是一个经典的多输入单输出的结构。

在这里插入图片描述

此时输出层的神经元公式为

在这里插入图片描述
由结构和公式可知,整一个RNN结构共享1组(U, W, b),这是RNN结构最重要的特性,且每一个隐藏层神经元h的计算公式是由当前输入X与上一个隐藏层神经元的输出组成。

这里为了方便起见,笔者只是画了序列长度为3的RNN结构,大家可以按照这样的结构,可以将整个RNN结构无限扩大,最后接一个分类输出层或者回归输出层即可。

4.6.2 RNN循环神经网络的优势

到这里,RNN循环神经网络的原理也就讲完了,那么相比于全连接神经网络和CNN卷积神经网络,RNN的优势又在哪呢?

我们可以看到上面的RNN结构,输入是可以多个且有序的,它可以模拟人类阅读的顺序去读取文本或者别的序列化数据,且通过隐藏层神经元的编码,上一个隐藏层神经元的信息可以传递到下一个隐藏层神经元,因而形成一定的记忆能力,能够更好地理解序列化数据。

4.6.3 其他RNN循环神经网络结构

上面这个RNN结构最经典的用途是文本(序列)分类。当然了,RNN不止这种结构,大家可以按照自己的想法去设计输入和输出,从而完成相应的任务,接下来笔者就给大家介绍几种常见的RNN结构与其用途。

1. 单输入多输出的RNN结构

这种结构通常应用于输入一个图像,输出描述该图像的文本。如图 4.39和图 4.40所示。

在这里插入图片描述在这里插入图片描述
2. 多输入多输出的RNN结构

由于输入与输出等长,这种结构的用途就比较狭窄,仅限于输入与输出等长的序列数据如诗词文等,作诗机器人就是这么诞生的,如图 4.41所示。

在这里插入图片描述

3. 输入输出不等长的多输入多输出的RNN结构(Seq2Seq模型)

在4.4节我们已经提及了自编码器的概念,自编码器的原理可以简单理解为输入等于输出的神经网络模型如图 4.42所示。

在这里插入图片描述

这次的主角当然不是全连接神经网络,我们只是利用RNN和自编码器的原理构造一个翻译机器人,同样的,这个自编码器(翻译机器人)的输入也等于输出,只不过输入与输出用不同的语言去表示罢了,如图 4.43和图 4.44所示。当然了,这个结构也可以用来完成文章摘要提取或者语音转换文字等任务。这种RNN模型业界称为Seq2Seq模型。
在这里插入图片描述
在这里插入图片描述

4. 注意力机制下的Seq2Seq模型

上面我们提到了Seq2Seq模型可以完成机器翻译等任务,但我们从它的结构可以看出,解码器decoder的输入都是译码器encoder的同一个输出,也就是说不过输入的语句是什么,编码器encoder都会将它转换成同一个中间语义h’。

而我们知道的是每一句话都有其侧重点,那翻译当然也应该注意其侧重点,不应该是每一个词在一个句子中都具有同等地位,这样翻译出来的句子肯定效果不佳。

所以,有人为此提出了注意力机制(Attention Mechanism),让我们在使用Seq2Seq的过程中,加入注意力机制,聚焦重点,提升模型效果。下面笔者以机器翻译为例子,让大家对注意力机制有更加直观的认识。

如图 4.45所示,注意力机制下的Seq2Seq模型的输入与输出是等长的,和前面笔者介绍的多输入多输出的RNN结构一样,只是输入变了,输入不是直接的序列输入,而是经过编码器encoder转换的中间语义C,而这些输入C也各不相同,每一个C都是由权重w和译码器的隐藏层输出h加权组成,如图 4.46所示。

在这里插入图片描述
在这里插入图片描述

在解码器decoder部分,中间语义C1,C2,C3之间的权值表征是不同的,这也就是我们所说的注意力机制。换言之,随着训练过程的进行,重点一直在变化,而这些变化则由上图的权重w去表示,当训练停止时,权重值也就确定下来了,此时的权重值是最拟合当前训练数据的。比如C1的重点在‘中’这个字,那么中间语义可以表示为C1=0.6h_1 + 0.2h_2 + 0.1h_3 + 0.1h_4 (权值可以看成概率,所有权值值加起来为1)。因此中间语义的转换公式如式(4.42)所示。

在这里插入图片描述
其中n为输入序列的长度

此时,我们唯一要解决的是,如何去求中间语义C的权值w表征。这就涉及到注意力模型的另一部分(编码器Encoder),如图 4.47所示。F函数和softmax函数,大家可以理解为我们要计算当前的hi与全部h(包括hi)之间的差别,从而计算出在i时刻下,每一个h对应的权值(即概率)。换言之,大家可以将下图看成分类问题,与hi越相近的,输出的概率也就越大。

在这里插入图片描述
到这里,几种常见的RNN结构也就介绍完了,它们的训练过程与之前讲的多输入单输出的RNN结构训练过程并没有太多的区别,也是基于梯度下降原则去不断缩小真实值与预测值之间的差值,只不过有些结构的输出值多了一点罢了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值