RNN
用于处理序列信息,这里的序列是指单个个体之间有联系,比如说一句话(词汇之间互有联系),一个视频(有很多相关联的帧)。因为是重复地使用同一个网络,所以也被称为递归网络。
RNN的结构
x:输入
o:输出
s:隐藏层
U,V,M:权重矩阵
RNN的特点
上述的U,V,M是共享的,打个比方,就是处理一个句子,句子不动,而RNN像一个滑窗一样从句头滑到句尾。容易梯度消失或爆炸。CNN 是在空间上共享参数,RNN 是在时间上(顺序上)共享参数。
变式与推导
原理分析代码变式可以参见这篇文章 你还没有看 !!有空记录
https://zybuluo.com/hanbingtao/note/541458
LSTM
解决RNN的问题 引出了LSTM
LSTM的结构
z是计算得到的当前输入内容
zi是选择记忆信息的门控
zf是选择忘记的门控
zo是选择输出的门控
ct是当前阶段单元状态
yt是当前阶段输出
门控都用的是sigmoid函数,在0~1之间;z用的是tanh函数,-1 ~ 1之间。
阶段 | 描述 | 输入 | 输出 |
---|---|---|---|
选择忘记 | 控制上一个状态的ct-1哪些需要留哪些需要忘 | 门控zf /上一个状态的ct-1 | ct-1的有用部分 |
选择记忆 | 选择当前输入的有用信息 | 门控zi/当前输入z | 当前输入的有用信息 隐藏操作 |
输出 | 得到当前状态的输出 | 门控zo/ct | 当前阶段输出yt/ |
ConvLSTM
ConvLSTM核心本质还是和LSTM一样,将上一层的输出作下一层的输入。不同的地方在于加上卷积操作之后,为不仅能够得到时序关系,还能够像卷积层一样提取特征,提取空间特征。这样就能够得到时空特征。并且将状态与状态之间的切换也换成了卷积计算。
关于时空特征的理解:
Temporal characterization occurs when you have a series of images taken at different time. Correlations between the images are often used to monitor the dynamic changes of the object.
Spatial characterization applies when you are analyzing one image. It includes but not limited to the coordinates, intensity, gradient, resolution, to name only a few.
ConvLSTM与LSTM之间的区别
LSTM:
ConvLSTM:
公式来源:: https://arxiv.org/pdf/1506.04214v1.pdf.