
大纲
- Long Short Term Memory Network
- Bi-directtional LSTM
- Statistical Machine Translation
- Multimodal learning
- Seq2Seq Model
Long Short Term Memory Network
在上一篇RNN讲到,RNN存在梯度消失或爆炸问题, 假如我们来设计一个网络来解决这个问题,怎么来设计呢?
思路1:
思路2:
LSTM vs RNN 结构图

lstm整体结构与rnn大体相同,只不过加了一些门单元。
RNN:
LSTM结构祥析
遗忘门(Forget gate):

可以看到这里的
输入门(Input Gate):

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

当前状态

输出门(Output Gate):

计算

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

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

我们把数据类型做个区分:
- 简单(年龄,输入...) 逻辑回归...
- 时序类(
) LSTM
- structed Data (Tree,Graph)


Statistical Machine Translation
机器翻译传统方法Aligment/IBM Model
端到端的方法论

这样做最大的好处是不需要知道文本方面的知识
Multimodal learning
下图是一个image-capturing任务的流程图

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

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

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

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

我们可以通过将meaning space作为桥梁构建两种不同语言之间的翻译系统。
Seq2Seq 流程
今天 天气 很 好

Seq2Seq 训练数据

Inference/Decoding

decoding阶段每一步都是取当前最大概率的单词作为下一次的输入,这种叫作Greedy Decoding,存在错误积累的问题。在红框里面取第二个里面取第二大概率的is的话,我们得到的句子更通顺。
为了解决这种问题,有两种方法:
- Exhaustic Search
- Beam Search
Exhaustic Search
在某一时刻遍历所有的词库,这样做的时间复杂度为
Beam Search


从上图可以看出,每一步选择最好的3个作为下一步的计算。Today's + weather+ is = -2概率最高,我们可以认为截止到这个时间点翻译成Today's weather is效果最好。
① 考虑一下时间复杂度
T:线性
K:平方(上图每次展开9个,取3个)
时间复杂度为
② 上图过程更倾向于短句
解决方法加上length normalization
