收藏本站

人工智能培训机构,上海涛德,算法工程师,数据科学家高端培训机构-上海涛德

查看: 57|回复: 0

什么是RNN 递归神经网络 ?

[复制链接]

43

主题

0

好友

657

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2018-4-14 21:32:53 |显示全部楼层
什么是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

您需要登录后才可以回帖 登录 | 立即注册

<点击:上海涛德Oracle OCM认证及BI商业智能课程>|人工智能培训-上海涛德 ( 沪ICP备14006824号 )|网站地图   My title page contents

GMT+8, 2018-4-27 03:18 , Processed in 0.217587 second(s), 25 queries , Gzip On.

回顶部