CS231N Lecture10: RNN

过去的模型都是一对一的。 一对多应用于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就是要计算一个函数:

计算递归关系


Vanilla 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没有关系。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容