lstm结构图_LSTM学习笔记

9534da00f1b0bec570fafad8199dfdb7.png

大纲

  • Long Short Term Memory Network
  • Bi-directtional LSTM
  • Statistical Machine Translation
  • Multimodal learning
  • Seq2Seq Model

Long Short Term Memory Network

在上一篇RNN讲到,RNN存在梯度消失或爆炸问题, 假如我们来设计一个网络来解决这个问题,怎么来设计呢?

思路1:

如果每次计算的梯度都和1很接近,就不会出现梯度的问题

思路2:

让其中的某一些大于1,某一些小于1,这样也能解决问题

LSTM vs RNN 结构图

059a962adfa40e2040bec4cc3831decb.png

lstm整体结构与rnn大体相同,只不过加了一些门单元。

RNN:

LSTM结构祥析

遗忘门(Forget gate):

cd7f7ec1795ca4599685a97891fc3c10.png

可以看到这里的

由输入的
得到,用来控制
中的信息的遗忘程度。
中的每个值都是0-1中的一个数,下界0代表完全遗忘,上界1代表完全不变,表示忘掉的信息的比例

输入门(Input Gate):

04f52de05b74593af70759975d3e4d6b.png

输入门的作用就是往状态信息中添加新东西。同样,由输入的

得到当前的
用以控制新状态信息的更新程度。这里新状态信息
也是通过输入的
计算得出。

计算新状态

cc998c956f5f97d4875b7f2b48e8aac2.png

当前状态

9523aac7cdbda84569af7c5ae8c5c9b7.png

输出门(Output Gate):

a12d706abc44c59790efc9afa339da6c.png

计算

6c1939d8e4e72c0cafb7551ee5daa60b.png

Bi-directtional LSTM

在词向量的领域,我们经常使用Bi-directtional LSTM,它的效果确实要比单向的好。

1cbd8df5322a1790f845654df7f866c4.png

我们想模拟一个语法树,我们如何去改造lstm模型呢?

85876c4765a7d0b73168ff9f04edd36c.png

我们把数据类型做个区分:

  • 简单(年龄,输入...) 逻辑回归...
  • 时序类(
    ) LSTM
  • structed Data (Tree,Graph)

53b351f1c7c3a6736b0d92864b58fb79.png

6f7b6728f22e853904292214f4120d81.png

Statistical Machine Translation

机器翻译传统方法Aligment/IBM Model

端到端的方法论

b347aed0a4444feb199d183896dfde7f.png

这样做最大的好处是不需要知道文本方面的知识

Multimodal learning

下图是一个image-capturing任务的流程图

b7d75dafcbe0ae5606d5755080bc0bf1.png

下图是一个WriteCode任务的流程图

7096c679203e12454c2385812cff2355.png

下图是根据文本生成音乐的流程图

cc632aeaa550002585e04479ddac2f7b.png

其中

的方式可换成其他的方式,这就是Multimodal learning(多模式学习)。

Seq2Seq Model

这个模型在机器翻译系统中应用的很多。

521e2ef0fa24b735e5fb08ee2edfa946.png

.........

这种方法论的好处是我们只需要知道两种语言的训练文本的样本就可以了,不需要知道它们之间任何地对应关系。这个方法论的核心是任何语言表达的含义是一样的(meaning vector),表达的方式不一样。

84f28c726e9e8c2b9fc9ea4041c56f63.png

我们可以通过将meaning space作为桥梁构建两种不同语言之间的翻译系统。

Seq2Seq 流程

今天 天气 很 好

fcdf375f65f4609a74d4d3b511d0fc77.png

Seq2Seq 训练数据

a34f84ed851dc238af40381b76decc27.png

Inference/Decoding

baf07d73e326e3aa09cc8be9ae1e26ae.png

decoding阶段每一步都是取当前最大概率的单词作为下一次的输入,这种叫作Greedy Decoding,存在错误积累的问题。在红框里面取第二个里面取第二大概率的is的话,我们得到的句子更通顺。

为了解决这种问题,有两种方法:

  • Exhaustic Search
  • Beam Search

Exhaustic Search

在某一时刻遍历所有的词库,这样做的时间复杂度为

,时间复杂度比较高,我们可以采用折中的算法BeamSearch

Beam Search

5a6f7548fb9a359ee5db34a761dfad82.png

e325a1fdf5314ceb74bd660e0243a5fa.png

从上图可以看出,每一步选择最好的3个作为下一步的计算。Today's + weather+ is = -2概率最高,我们可以认为截止到这个时间点翻译成Today's weather is效果最好。

① 考虑一下时间复杂度

T:线性

K:平方(上图每次展开9个,取3个)

时间复杂度为

② 上图过程更倾向于短句

解决方法加上length normalization

3cd5a7f103e9f761e9bcf62e721dcdef.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值