RNN(Recurrent Neural Network)循环神经网络
1.循环的理解
循环,反复并持续。从某一个地点出发,经过一定时间又回到这个地点,然后反复进行,这就是循环的含义。只有存在了环路或回路这样的路径,媒介(或数据)才能在相同的地点之间循环,随着数据的循环,信息不断被更新。
RNN的特征就在于拥有这样一个回路,可以使数据不断循环。通过数据的循环,RNN一边记住过去的数据,一边更新到最新的数据。
2.RNN的结构
拥有环路的RNN层
如上图所示,时刻t的输入是xt,表示{x1,x2,x3,x4....xn}会依次输入到RNN,对应着,每个时刻的输出ht, 输出序列为{h1,h2,h3,h4....hn}
将上图按时间序列展开,即得到如下
可以看出每个时刻的RNN层的输入有两个,传递给该层的本时刻输入xt,和上一时刻的输出ht-1,所以可以认为RNN的每层都继承了上一时刻的状态,即将信息保留了下来。
用公式表达输出ht为:
目前看到,RNN中有两个权重,Wh和Wx,Wx为用于将输入转化为输出的权重,Wh为将上一时刻输出转化为当前输出的权重。然后一般用tanh函数变换两个输出和做为本时刻最终输出。