详细讲解RNN+LSTM+Tree_LSTM(Tree-Long Short Term Memory)基于树状长短期记忆网络

14天阅读挑战赛

详细讲解RNN+LSTM+Tree_LSTM(Tree-Long Short Term Memory)基于树状长短期记忆网络

一、RNN

要讲解Tree_LSTM,这必须得从RNN开始说起,那要讲解循环神经网络RNN,我们得先看看简单神经网络长个什么样子,如下图所示
在这里插入图片描述
简单神经网络是这样的,输入层x进入隐藏层s,在经过输出产生最后的结果y。通过调整权重Win和Wout就可以达到学习的效果。
通常情况下,深度神经网络都是水平方向延申的,例如卷积神经网络CNN,隐层数量很多,但是由于没有考虑到单个隐层在时间上、时序上的变化,这在识别不同图片的应用中可能对结果没有影响,但要将其放在识别文字的应用中,没有办法结合上下文语义,就不太适用了。
RNN的定义是:一种以序列数据做为输入来进行建模的深度学习模型。
RNN关注隐层的每个神经元在时间维度上的不断成长和变化,如下图,网络结构没有发生变化,没有添加新的神经元,但是沿着时间轴的重复,建立了时序上的关联,这里的层级拓展并非神经元数量的增加,而是标识隐层在不同时刻的状态,并在隐层之间建立关联。
在这里插入图片描述

如果用Ws表示层级间的权重矩阵,那么RNN通常会假定不同的层级(时刻)共享一个Ws,从而达到减少训练参数的效果。

在神经元模型中,隐藏层输出公式的矩阵表达 : S = f ( UX + b )
对于RNN : St = f (UXt + WSt-1 + b ) b是偏置项,多了一项WSt-1,这样建立起隐层在不同时刻的迭代关系。
最终的 Ot = g(VSt) 这里的g()【sigmoid】和f()【tanh】都是激活函数
换而言之,就是让神经网络具有了某种记忆的能力。

当然,你也可能会看到以下这样的RNN图,其实意思都一样,只不过表示方式不同。在这里插入图片描述
在这里插入图片描述
那么通过以上描述,应该对RNN稍微有一些了解了,接下来说说RNN的缺陷。
虽然RNN在时序上建立起了联系,有一定的记忆性,当根据研究表明,当词项长度超过500时,RNN的识别效果就会变得很差
同时,由于RNN在所有隐层共享同一组W权值矩阵,梯度在反向传播过程中,数值不是越来越小(若干零点几的小数相乘最终趋于0),就是越来越大(若干大于1的数相乘最终趋于很大的数),从而导致梯度消失或者梯度爆炸,这是RNN的缺点。

二、LSTM 长短期记忆网络

和RNN相比,LSTM在RNN的基础上添加了一条新的时间链,记录long-term memory,用c表示,同时增加了两条链之间的关联关系。
在这里插入图片描述
将原本的平面图形旋转成3D图形,再次观察其特点。
以计算t时刻为例,计算隐层状态St时,除了输入和前一时刻,还要包含当前时刻的Ct
在这里插入图片描述
我们将LSTM模型关联结构放大,将St和Ct的一条线拆分成三条,其中包含了两条更加细致的操作f1和f2
f1相当于一块橡皮,根据上一时刻的记忆St-1和当前输入Xt,决定要删除和修改哪些记录(公式中,矩阵元素相乘时会抹掉0元素,也就相当于选择性遗忘了部分记忆)被称之为遗忘门
f2相当于一支铅笔,根据上一时刻的记忆St-1和当前输入Xt,决定添加哪些记录,将上一时刻和此刻发生的进行梳理和归纳被称之为输入门

那么最终的Ct = f1 * Ct-1 + f2
计算得到的Ct除了会继续向下传递,还会被用来更新当前短期记忆St,最后计算输出yt输出门,同时保持短期记忆链St和长期记忆链Ct,并且相互更新。
这就是LSTM的本质原理啦!!!
在这里插入图片描述
我们在资料中看到的这样的图,其实和上面的描述一样,只不过表示方式不同。
在这里插入图片描述
遗忘门
在这里插入图片描述
σ其实就是sigmoid函数,将整体映射到0~1之间,这样我们可以规定一个值(例如0.5)大于0.5可以通过,小于不能通过。
输入门
在这里插入图片描述
在这里插入图片描述
输出门
在这里插入图片描述
那么,掌握了遗忘门、输入门和输出门之后,我们对LSTM就基本了解了。
接下来我们聊聊LSTM的缺点
上面说到,RNN在词项超过500时,识别效果会较差,而在RNN基础上改进的LSTM,经过实践证明,当词项长度超过700时,效果也并不理想。
同时无法学习到树状结构层次上的特征。

那么针对LSTM,后来有很多学者提出了改进版本,例如Bi-LSTM(双向长短期记忆网络),那么在一定程序上降低了梯度消失和梯度爆炸的程序,但还是无法解决长序列问题。
如何有效的学习语法语境是否和句子结构的关系??

三、Tree-LSTM 基于树状长短期记忆网络

有学者提出通过构建短语结构语法树来描述如何自顶向下的生成一个句子,反过来,句子也可以用短语结构语法来递归分解。如下图
在这里插入图片描述
那么如果我们通过原本的RNN或者LSTM模型仅仅从顺序上去学习信息就无法学习到这种树状结构层次上的特征;另外,对于句子间不仅仅存在层级关系,还存在依存关系。
依存语法理论认为:词与词之间存在主从关系,这是一种二元不等价关系,在句子中,若一个词修饰另外一个词,则称修饰词为从属词(dependent),被修饰词为支配词(head),两者之间的语法关系称为依存关系(dependency relation)。
在这里插入图片描述

在这里插入图片描述
参考这篇文献 《Improved Semantic Representations From Tree-Structured Long Short-Term Memory》
链式LSTM网络
链式LSTM网络
在这里插入图片描述
具有任意分支结点的树形LSTM网络
空白框表示LSTM的一个单元,文本序列为{x1,x2,x3,x4,x5,x6}
x做为输入序列,y是每个x输入后经过LSTM的一个时间片段的预测输出(y4的产生依赖于x4的输入;y5的产生依赖于x5的输入;y6的产生依赖于x6的输入;y2的产生依赖于x2的输入;y3的产生依赖于y4y5y6的输入;y1的产生依赖于y2x1y3的输入;)
那么如何计算呢?
我们先找到y2y4y5y6的产生依赖于x2,x4,x5,x6都已经存在,那么就可以通过x2,x4,x5,x6分别通过自己的隐层,得到对应的y2y4y5y6;类似的y3也能够产生;最终计算出y1

作者针对上述句子间关系对应的两种类型:层级关系和依存关系,提出了Tree-LSTM对应的两种类型
在这里插入图片描述
图中为作者提出的树状长短期记忆网络结构,与标准LSTM单元一样,每个Tree-LSTM单元包含输入和输出门ij和oj,一个记忆单元cj和隐藏状态hj。标准LSTM单元和Tree-LSTM单元之间的区别在于门控向量和记忆单元更新依赖于所有与之相关子单元状态。此外,TreeLSTM单元不是单一的遗忘门,而是为每个子结点k包含一个遗忘门fjk。这允许Tree-LSTM单元有选择地从子结点中获取信息。

(一)Child-Sum Tree-LSTMs (Dependency Tree-LSTMs)

顾名思义,适用于子节点个数不定或者子节点乱序的树结构。该模型是将子节点的隐藏层都求和然后再去更新父节点的隐藏层
在这里插入图片描述
对于Child-Sum Tree-LSTMs结构,由于它的单元更新依赖于之前与之相关的所有子单元,所以我们要对子单元隐藏层的输出进行求和,做为当前输入的一部分。同样对于遗忘门的输出值,由于每一个子单元都有一个遗忘门,所以要对子单元的遗忘门输出值进行求和。

(二)N-ary Tree - LSTMs(Constituency Tree-LSTMs)

适用于每个子单元的个数最多是N ,且子单元之间有序。
在这里插入图片描述
对于N-ary Tree-LSTMs结构,由于每个子单元的个数最多是N ,所以在计算当前时刻的输出时,需要将N个子单元的输出值进行1-N求和做为当前输出的一部分。

以上就是关于Tree-LSTM的个人见解!!!

  • 14
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
基于RNN_LSTM_GAN混合预测是一种结合了循环神经网络RNN)、长短期记忆LSTM)和生成对抗网络(GAN)的预测模型。 RNN是一种能够处理序列数据的神经网络。通过RNN的循环结构,它可以在处理每个序列的同时记住之前已处理的序列信息。而LSTM则是RNN的一种改进版本,通过引入记忆单元和门控机制,解决了传统RNN在长序列处理时容易出现梯度消失或爆炸的问题。 GAN是由生成器和判别器组成的对抗训练网络。生成器负责生成与真实数据相似的假数据,而判别器则负责判断输入数据是真实数据还是生成器生成的假数据。通过不断优化生成器和判别器,GAN可以生成更加逼真的假数据。 基于RNN_LSTM_GAN混合预测的过程如下:首先,使用RNN_LSTM模型对历史序列数据进行训练和预测,以便对当前的序列数据进行预测。然后,将LSTM模型的输出作为GAN的输入,通过生成器生成一些假数据。接着,将真实数据和生成的假数据混合在一起,再次使用RNN_LSTM模型进行预测。最后,根据判别器对混合数据的判别结果,调整RNN_LSTM模型的参数和反馈,优化整个预测过程。 通过基于RNN_LSTM_GAN的混合预测模型,可以更好地利用序列数据的时间依赖性和复杂的非线性特征,提高预测的准确性和泛化能力。同时,GAN的引入可以增加样本的多样性,帮助模型更好地捕捉数据的分布特点,提升预测的质量和稳定性。 总之,基于RNN_LSTM_GAN混合预测是一种有效的预测方法,通过结合不同的神经网络模型和训练策略,能够更好地处理序列数据的预测问题,拓展数据的生成和预测能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敷衍zgf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值