本文适合有一定基础的同学翻阅,内容比较精炼,主要是用于复习。新手推荐:https://www.youtube.com/user/wsszju/videos
最简单的RNN
结构还是很简单的,左边是真实的RNN模型,右边是根据时序展开后的,便于理解,A是tanh函数:
simple RNN 与LSTM的对比:
LSTM最重要的设计是传输带,将过去的信息直接传入下一时刻,以避免梯度消失。
同时含有很多Gate:Forget Gate,Input Gate,Output Gate。
下图中,四个红框分别是Forget Gate,Input Gate,New values, Output Gate,其中New Values是tanh函数激活,其他为Sigmoid函数激活,所以一共有四个参数矩阵:
下面是使用keras实现一个简单的电影评论分类器,其中的LSTM也可换作RNN。设置LSTM只输出最后一个状态向量H,所以return_sequences=False,
关于参数量,四组参数,每组参数量相同,以New values为例,其w的size=shape(h) * [shape(h) + shape(x)] + shape(bias), 该例子中则是32 * [32+32]+32 = 2080: