CS231n李飞飞计算机视觉 循环神经网络

本文介绍了循环神经网络(RNN)及其变体LSTM在计算机视觉中的应用,如图像标注。RNN能处理序列数据,而LSTM通过其特殊的门控机制避免了梯度消失问题,提升了模型性能。LSTM包含输入、遗忘和输出门,以更精细的方式控制信息流动。总结中提到,RNN简单但可能存在梯度问题,而LSTM通过加法操作改善了这一状况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环神经网络

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

 RNN可以有很多种结构,包括一对一的Vanilla网络,一对多的图像字幕,多对一的情感分类(处理一定数量的按顺序排列的词,然后试着把句子里的词,按正面和负面情感分类),多对多的机器翻译(将一个序列翻译成另一个序列)、视频分类。

RNN例子

RN有其自己内部的状态,但是在每个时间点接收内容,然后结合函数来修改自己的状态,也就是说影响RNN状态的因素不止有自己的状态还有接受内容。

可以将RNN的状态表达成这样一个函数:

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

W_{hh}是对h_{t-1}的权重,W_{xh}是对x_{t}的权重。

图像标注

考虑一个图像标注的网络

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

将图像放入CNN中,得到v,然后利用第二个公式计算出h(这里W_{ih}表示图像信息进入RNN的第一步的情况。)

y_0是序列的第一个单词的分布情况,假设根据y_0,发现最可能出现的词语是“稻草”。

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

然后将“帽子”对应的向量放入RNN的底部,依次循环直到得到一个结束标志。最终RNN价格这张图片描述成草帽。

y向量的维数等于单词表的数目加一,这是因为考虑到了结束标志。

LSTM

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

其中i表示input,f表示forget,o表示output,f,i,o的值是0~1,g的值是-1~1

C_t表示细胞状态,C_t的更新依赖f(忘记门)和i(输入门)两个变量,首先C_{t-1}与f逐元素相乘,舍弃C_{t-1}的部分信息,f中为1的元素对应的C_{t-1}信息得以完全保留,为0的元素对应的C_{t-1}信息会被丢弃。然后,i与g逐元素相乘,表示细胞状态受输入i的影响。两者加和得到新的目标状态。

C_t再来影响h_t,计算o(输出门)与C_t的点积,然后得到h_t

计算过程如下:

对比LSTM和RNN

  1. RNN全部的隐藏状态影响下一状态。而LSTM只选择部分隐藏状态影响下一状态。
  2. RNN可能会发生梯度消失的情况,而LSTM因为有加法的原因回均匀地分配梯度,不会产生梯度消失的问题。

总结

  1. RNN设计灵魂
  2. RNN简单但效果不够好
  3. LSTM的加法会使梯度流加速
  4. RNN梯度的反向传播会造成梯度爆炸或梯度消失,梯度爆炸问题可以通过梯度裁剪来解决,梯度消失问题就通过增加额外的加法解决(类似LSTM)

参考:https://www.cnblogs.com/coldyan/p/8385021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值