RNN简介
RNN(循环神经网络)是深度神经网络中,应用最广泛的两种神经网络架构之一。并且,作为一种时序结构的神经网络,RNN经常用于时序相关的问题中,且在NLP中应用广泛。还有一种RNN称为递归神经网络,虽然名字类似,但是却是不一样的架构。
RNN图示
x t x_t xt是输入层数据, s t s_t st是隐含层数据, o t o_t ot是输出层数据,我们令:每一个 y t y_t yt是t时刻对应的真实输出, y t h a t y^{hat}_t ythat是对 o t o_t ot进行softmax计算之后得到的估计值。 U U U是输入层到隐含层的权重, W W W是上一时刻隐含层到当前时刻隐含层的权重, V V V是隐含层到输出层的权重。
正向传播
由上图易知: a t = b + W ∗ s t − 1 + U ∗ x t a_t=b+W*s_{t-1}+U*x_t at=b+W∗st−1+U∗xt s t = t a n h ( a t ) s_t=tanh(a_t) st=tanh(at) o t = c + U ∗ s t o_t=c+U*s_t ot=c+U∗st y t h a