深度学习RNN笔记整理

RNN

RNN概述

1、基础的RNN网络结构。
2、反向传播。
3、word2Vec理论 以及 代码。
4、双向RNN.
5、LSTM

为什么又BP神经网络、CNN,还需要RNN

BP神经网络和CNN的输入输出都是相互独立的,在实际应用中有些场景之间的内容是有关联的,例如文本之间的前后关联
RNN引入’记忆’的概念,递归指其每一个元素都执行相同的任务,但是输出依赖于输入和记忆

何为递归神经网络

RNN是一种对序列数据建模的神经网络,目的就是处理序列数据
RNN的本质(循环)
先初始化记忆单元S0
两个权重Ws和Wx,一个是针对状态的,一个是针对输入的
*S0 * Ws + X0 * Wx 之后跟**函数更新S1
*S1是相当于带着’X0’的信息传递到下一时刻
图中只展示了相邻的神经元之间的联系.实际上任意两个神经元都是相互影响的
Vanilla↓,带有时间步的概念

深度学习RNN笔记整理
RNN的正向传播
深度学习RNN笔记整理
RNN的反向传播
基本原理和BP算法是一样的
(1)前向计算每个神经元的输出值
(2)反向计算每个神经元的误差值
(3)计算每个权重的梯度值→梯度下降法更新权重
深度学习RNN笔记整理
RNN更容易梯度爆炸和梯度消散
每次循环都要用到Ws、Wx连乘所以更容易梯度消散or爆炸
Tanh本身也有一点软消散问题
深度学习RNN笔记整理

双向RNN_BiRNN_解决梯度消散问题

假设党建图的输出不仅仅和之前的序列有关,而且还与之后的序列有关
深度学习RNN笔记整理
双向RNN包含两个RNN,一个从左往右,一个从右往左
两个RNN的参数都是相互独立的
最后把两个RNN的输出进行拼接,作为整体的输出

深度学习RNN笔记整理