【RCNN重要背景知识】RNN和LSTM的原理

一、RNN算法

1.1、什么是RNN?

RNN是一种神经网络,类似CNN、DNN等,RNN对具有序列特征的数据(文本、语音等)非常有效,它能挖掘出数据中的时序信息和语义信息。

序列特性:符合时间顺序、逻辑顺序或者其他顺序。

1.2、为什么要发明RNN?

例子:
在这里插入图片描述
一般的神经网络,识别文本信息时不会考虑上下文信息,只是单独的在训练Apple这个单词,哪种意思在train当作出现次数更多,预测得到的Apple信息自然就偏向它。但是在真实语义当中,Apple单词有多种意思,如何根据每句话的具体含义去预测对应的意思,这就需要用到上下文信息(时序特征),于是就有了RNN。

1.3、RNN的结构和原理?

RNN的结构如下图,输入输出层都是全连接层,中间的隐藏层是循环结构,

在这里插入图片描述

1.4、RNN的特性?

  1. 串联的,可以有效处理序列数据。如何处理:每个时刻都会把当前时刻的隐藏层信息保存下来,传给下一时刻用,这就保证了每个时刻前面所有时刻的隐藏层信息。
    注意:这里的说的时刻,不是训练时间啊,是针对序列前后顺序而言的。比如我有一个词向量序列 I Love You,那么Love就是 I 的下一个时刻。通过RNN,我Love就有了I的信息和我本身的信息,而You就有了I、Love的信息以及本身的信息。

  2. 所有特征共享同一套参数,极大的减少参数量。

1.5、前向传播和反向传播?梯度消失问题?

【重温系列】RNN循环神经网络及其梯度消失 手把手公式推导+大白话讲解
在这里插入图片描述
在简单RNN的前向传播过程中,输入的数据循环地与隐藏层里的权重W(都是很小的数)做乘法运算,那么损失函数对较长时间步前的W的梯度就会很小(因为W会累乘),即简单RNN越早的时间步梯度消失的问题越严重。

二、 LSTM算法

2.1、什么是LSTM?

LSTM(Long short-term memory,长短期记忆),是RNN的一种,比RNN高级,现在用RNN基本上都是用LSTM,很少人会使用上节的原版RNN。

2.2、LSTM原理

LSTM是RNN的升级版,更高级。LSTM也可以有效处理序列信息,也可以将每个时刻的隐藏层的值村下来,到下个时刻拿出来用,保证每个时刻都含有上一时刻的信息。不同的是,RNN是把所以信息保存下来,而LSTM是有选择性的保存,它有门控装置,他会有选择性的存储信息。

打个比方:普通RNN就像一个乞丐,路边捡的,别人丢的,什么东西他都想要,什么东西他都不嫌弃,LSTM就像一个贵族,没有身份的东西他不要,他会精心挑选符合自己身份的物品。

直观理解:
在这里插入图片描述
X t X_t Xt是当前阶段我们将要考高数;
C ( t − 1 ) C_(t-1) C(t1)是上一阶段段考完现代后脑海中所有的知识点(现代和其他知识);
h ( t − 1 ) h_(t-1) h(t1)是上一阶段考完现代后的成绩;
C t C_t Ct是这一阶段考完高数后脑海中的所有知识点(高数、现代及其他知识)
h t h_t ht是考完高数的成绩;
前提:我们的脑容量有限,脑海中的知识点总会慢慢遗忘;
目标:希望每个阶段学的每门课最后的分数都可能的高(即 h i h_i hi尽可能高)

f t f_t ft:遗忘门,遗忘掉上一阶段学习后脑中的部分知识 C ( t − 1 ) C_(t-1) C(t1),sigmoid函数后输出0~1,再和 C ( t − 1 ) C_(t-1) C(t1)对应元素相乘,把 C ( t − 1 ) C_(t-1) C(t1)中部分记忆遗忘;
g t g_t gt:当前阶段新学到的知识
i t i_t it:更新门,把新学到的知识中无用的知识过滤掉,再结合上一阶段的知识 C ( t − 1 ) C_(t-1) C(t1),生成这一阶段的学习后脑海中所有的知识 C t C_t Ct
O t O_t Ot:输出门,带着这阶段脑学习后脑海中的所有知识去考试,可能有些知识是无用的,对其进行过滤,再去考试得到当前阶段的成绩 h t h_t ht

总结一下:首先进入当前时刻,先用遗忘门将上一阶段所有的无用记忆清除掉,再学习当前新输入的知识 X t X_t Xt得到当前阶段学到的记忆 g t g_t gt,再通过更新门,删除掉当前阶段学习到的无用知识。再将当前阶段学到的有用记忆和前一阶段脑海中的所有有用知识结合,得到当前阶段脑海中的所有有用记忆。用当前的记忆进行考试,使用输出门对当前记忆进行筛选(考当前这门课并不需要当前所有记忆),再去考试得到当前阶段这门课的成绩 h t h_t ht

2.3、LSTM如何解决梯度消失问题?

【重温经典】大白话讲解LSTM长短期记忆网络 如何缓解梯度消失,手把手公式推导反向传播

这部分公式推导也太难了~~

2.4、双向LSTM

我的手机坏了,我想要____新手机。

比如现在要预测___中的字符,如果只是单项的LSTM,那我只能得到_前面所有字符的信息,所以我是想要买手机呢还是租借手机呢?

但是如果是双向LSTM,不仅可以得到前面所有字符的信息,还能得到后面所有字符的信息,看到新手机,那就知道这里用过是买新手机。

Reference

知乎: 史上最详细循环神经网络讲解(RNN/LSTM/GRU)
bili: 【重温系列】RNN循环神经网络及其梯度消失 手把手公式推导+大白话讲解
bili: 【重温经典】大白话讲解LSTM长短期记忆网络 如何缓解梯度消失,手把手公式推导反向传播

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值