您的位置:首页 > 理论基础 > 计算机网络

深度学习之循环神经网络RNN

2019-04-24 17:42 399 查看

一、循环神经网络的多种应用

1、模仿论文(连公式都格式很正确)

2、模仿linux内核代码“写程序”

3、模仿作家风格的作品

4、做机器翻译

5、看图说话

二、循环神经网络的结构

为什么有BP神经网络和CNN,还要有RNN?
传统的神经网络(包括CNN),输入和输出都是相互独立的。例如:图像上的猫和狗是分隔开的。但有些任务,后续的输出是和之前的内容是相关的,如:”我是中国人,我的母语是_____。“RNN引入了”记忆“的概念,循环2字来源于其每个元素都执行相同的任务,但是输出依赖于输入和”记忆“,即本次的神经网络输出不仅与输入的数据有关,还与之前神经网络的输入有关。
将循环神经网络的结构展开,如下图所示:

简单来看,把序列按时间展开。例如依此输入”我 是 中国 “这四个词,来预测下一个词。t-1时刻输入”我“,得到输出ot-1是”是“,st-1记录下来输入的”我“。然后t时刻输入”是“,连同st-1记录下来的”我“,一起得到输出”中国“,st记录下”我 是“,然后t+1时刻输入”中国“,连同st记录下的”我 是“,一起得到输出”人“。
注:
xt是时间t处的输入;
st是时间t处的”记忆“,st=f(Uxt+Wst-1),f可以是tanh等;
ot是时间t处的输出,比如是预测下个词的话,可能是softmax输出的属于每个候选词的概率,ot=softmax(Vst)。
细节问题:
1、可以把隐状态st视作”记忆体“,捕捉了之前时间点上的信息;
2、输出ot由当前及之前所以时间的”记忆“共同计算得到;
3、很可惜,在实际应用中,st并不能捕捉和保留之前所有信息(记忆有限);
4、不同于CNN,这里的RNN其实整个神经网都共享一组参数(U,V,W),极大减小了需要训练和预估的参数量;
5、图中的ot在有些任务下是不存在的,比如文本情感分析,其实只需要最后的output结果就行。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: