过去的模型都是一对一的。 一对多应用于image captioning。
many-to-one模型,应用于情感分类。
many-to-many模型,机器翻译。
many-to-many模型,video classification on frame level。
1. Sequential processing of non-sequence data
使用一系列"glimpses"进行图像分类,我的理解是对于每个数字,从一个点开始做一条连续的曲线组成这个数字,而glimpses用于捕捉各个时间点上的信息。
RNN就是要计算一个函数:
Encoder-Decoder:
Character-level Language Model:
生成文本的过程:根据h去预测下一个字符,接着该字符作为输入。
Backpropagation through time:
截断反向传播:
生成图片标题:
有一个起始的token,例如<START>,给生成隐藏状态的公式增加v的计算。增加第三个权重矩阵。然后将生成的y0作为输入继续计算。直道sample到结束符号<END>。有监督的训练。但是效果不是特别理想
增加Attention:
每次生成的是两个分布,一个是基于图片位置的分布,一个是基于词典的分布。
RNN的其他变形:
Vanilla RNN的梯度:
首先会流向tanh门,接着到权重矩阵。然而在时间纬度上的梯度传递会有问题:
使用gradient clipping来解决梯度爆炸。对于梯度消失,则需要修改RNN的结构---LSTM。
LSTM:
梯度传递:
cell状态的梯度传递只和f(forget gate)相关,而和W没有关系。