1.RNN导出案例---Neural network needs memory 

李宏毅深度学习笔记04---RNN 循环神经网络01

 

 

加入记忆元素的案例:

李宏毅深度学习笔记04---RNN 循环神经网络01

2.RNN的结构

李宏毅深度学习笔记04---RNN 循环神经网络01

 

当神经网络有了记忆后,由于存储在memory中的值不同,模型的输出也会不同。

李宏毅深度学习笔记04---RNN 循环神经网络01

 

当然,RNN的结构可以是深层的。

李宏毅深度学习笔记04---RNN 循环神经网络01

3.Bidirectional RNN  双向的循环神经网络

李宏毅深度学习笔记04---RNN 循环神经网络01

 

双向RNN的优点:例如填写完形填空时,读了这个句子中挖空前的所有词汇(X1,X2,...Xt-1),也读了挖空后的所有词汇(Xt+1,...Xtn),可以理解为读了整个句子,再去做填空

4.Long Short-term Memory(LSTM)  长短时记忆网络

李宏毅深度学习笔记04---RNN 循环神经网络01

 

 

LSTM执行的具体过程图如下所示:

sigmoid 函数及其图像:

李宏毅深度学习笔记04---RNN 循环神经网络01

下图中,f(zi) 是一个激活函数,通常使用sigmoid函数,取值在0-1之间

g(z)*f(zi) :若f(zi)=0 ,则不输入z,若f(zi)=1,则输入z

李宏毅深度学习笔记04---RNN 循环神经网络01

计算案例分析:

下图中输入第1组(x1,x2,x3)=(3,1,0)

李宏毅深度学习笔记04---RNN 循环神经网络01

下图输入第2组(x1,x2,x3)=(4,1,0)

李宏毅深度学习笔记04---RNN 循环神经网络01

下图输入第3组(x1,x2,x3)=(2,0,0)

李宏毅深度学习笔记04---RNN 循环神经网络01

下图输入第4组(x1,x2,x3)=(1,0,1)

李宏毅深度学习笔记04---RNN 循环神经网络01

下图输入第5组(x1,x2,x3)=(3,-1,0)

此时遗忘门的f(zf)=0,则遗忘门中原来存储的值7会被清洗掉

李宏毅深度学习笔记04---RNN 循环神经网络01

李宏毅深度学习笔记04---RNN 循环神经网络01

总结:其实可以将一个LSTM看成一个神经元neural

李宏毅深度学习笔记04---RNN 循环神经网络01

另一种解释:

下图是对上面计算过程的逻辑归纳图

下图中zf,zi,z,zo均是向量

李宏毅深度学习笔记04---RNN 循环神经网络01表示乘法,李宏毅深度学习笔记04---RNN 循环神经网络01表示加法

李宏毅深度学习笔记04---RNN 循环神经网络01

LSTM结构的连接图:

李宏毅深度学习笔记04---RNN 循环神经网络01

现在说利用RNN,一般都在使用LSTM.

现在集成的开发框架都支持LSTM、GRU等网络结构。

李宏毅深度学习笔记04---RNN 循环神经网络01