循环神经网络
循环神经网络:Recurrent Nerual Network,简称RNN。

RNN可以有很多种结构,包括一对一的Vanilla网络,一对多的图像字幕,多对一的情感分类(处理一定数量的按顺序排列的词,然后试着把句子里的词,按正面和负面情感分类),多对多的机器翻译(将一个序列翻译成另一个序列)、视频分类。
RNN例子
RN有其自己内部的状态,但是在每个时间点接收内容,然后结合函数来修改自己的状态,也就是说影响RNN状态的因素不止有自己的状态还有接受内容。
可以将RNN的状态表达成这样一个函数:

其中表示RNN在t时刻的状态,
表示在t时刻RNN收到的内容。
表示参数为w的函数。

是对
的权重,
是对
的权重。
图像标注
考虑一个图像标注的网络

网络分为两部分,CNN和RNN,CNN用来处理图像,RNN用来负责建立序列模型。

将图像放入CNN中,得到v,然后利用第二个公式计算出h(这里表示图像信息进入RNN的第一步的情况。)
而是序列的第一个单词的分布情况,假设根据
,发现最可能出现的词语是“稻草”。

然后将“稻草”对应的向量放入RNN的底部,得到序列中第二个单词的描述“帽子‘”,

然后将“帽子”对应的向量放入RNN的底部,依次循环直到得到一个结束标志。最终RNN价格这张图片描述成草帽。
y向量的维数等于单词表的数目加一,这是因为考虑到了结束标志。
LSTM

RNN只有一个隐藏状态h,而LSTM包含多个隐藏状态h,c。

其中i表示input,f表示forget,o表示output,f,i,o的值是0~1,g的值是-1~1
表示细胞状态,
的更新依赖f(忘记门)和i(输入门)两个变量,首先
与f逐元素相乘,舍弃
的部分信息,f中为1的元素对应的
信息得以完全保留,为0的元素对应的
信息会被丢弃。然后,i与g逐元素相乘,表示细胞状态受输入i的影响。两者加和得到新的目标状态。
而再来影响
,计算o(输出门)与
的点积,然后得到
。
计算过程如下:


对比LSTM和RNN

- RNN全部的隐藏状态影响下一状态。而LSTM只选择部分隐藏状态影响下一状态。
- RNN可能会发生梯度消失的情况,而LSTM因为有加法的原因回均匀地分配梯度,不会产生梯度消失的问题。
总结
- RNN设计灵魂
- RNN简单但效果不够好
- LSTM的加法会使梯度流加速
- RNN梯度的反向传播会造成梯度爆炸或梯度消失,梯度爆炸问题可以通过梯度裁剪来解决,梯度消失问题就通过增加额外的加法解决(类似LSTM)
本文介绍了循环神经网络(RNN)及其变体LSTM在计算机视觉中的应用,如图像标注。RNN能处理序列数据,而LSTM通过其特殊的门控机制避免了梯度消失问题,提升了模型性能。LSTM包含输入、遗忘和输出门,以更精细的方式控制信息流动。总结中提到,RNN简单但可能存在梯度问题,而LSTM通过加法操作改善了这一状况。

1395

被折叠的 条评论
为什么被折叠?



