上海涛德顾问学院

深度学习技术培训系列:什么的RNN递归神经网络-作者涛德学院 ... ...

摘要: 什么是RNN? 我们之前学过的BP神经网络,都是前向传递的。这种神经网络一个输入对应一个结果,但是有时候,我们的输入是连续的,或者叫序列的输入。也就是我们希望输输出的结果又能加上新入做为新的输入再次预测,如 ...

什么是RNN 递归神经网络 ?

作者:涛德原创

我们之前学过的BP神经网络,都是前向传递的。这种神经网络一个输入对应一个结果,但是有时候,我们的输入是连续的,或者叫序列的输入。也就是我们希望输输出的结果又能加上新入做为新的输入再次预测,如此循环。于是就有了新的网络结构RNN,循环神经网络recurrent neural network。更多人把它翻译为递归神经网络recursive neural network

如果要加以区分 recurrent往往是指时间递归,而recursive是指网络结构递归神经网络。在一定程度上可以认为Recurrent 神经网络是Recursive 神经网络的一种变体。因此叫递归神经网络更为通用一点。

 

 

 

 

 

初始的RNN结构:

 

上图中右边图形是左边的展开

RNN允许信息的持久化,假设网络中有一隐层是递归神经单元h,那么在假设不同的时间对于

t=0,  1,     2,     3…… t-1,      t         t+1 ,

h有不同的输出:

h0, h2,   h3 , ……   h_t-1,       h_t ,         h_t+1.

同时在不同的时间用户还有输:

X0,   X1,   X2    ……   X_t-1 ,      X_t,          X_t+1

也就是如果当前时间为t对当前的状态,输入到h_t的数据既包含t时刻的输入X_t,也包含t-1时间h_t-1的输出。对于同一个RNN来说,其隐层网络结构是固定的共享一套权值参数。

换句话话说,RNN是把同一个网络多次复制,并将信息传递到下一个网络。


RNN的内部处理机制:

 

RNN内部的数据运算类似下面的代码处理:

# 当前计算更新隐藏层

current_h = np.tanh(np.dot(W_hh, pre_h) + np.dot(W_xh, x))

# 计算输出

next_h = np.dot(W_hy, current_h)

# 下一次计算

pre_h=next_h


联系

上海涛德顾问学院 ( 沪ICP备14006824号 )  

GMT+8, 2018-12-11 11:11 , Processed in 0.135539 second(s), 14 queries , Gzip On.

Top Data World

回顶部