版权声明:本文为博主原创文章,转载请注明原文出处!
写作时间:2019-03-02 12:46:15
本文部分图片素材来自互联网,如有侵权,请联系作者删除!
最简单的RNN回归模型入门(PyTorch版)
RNN入门介绍
至于RNN的能做什么,擅长什么,这里不赘述。如果不清楚,请先维基一下,那里比我说得更加清楚。
我们首先来来看一张经典的RNN模型示意图!
图分左右两边:左边给出的RNN是一个抽象的循环结构,右边是左边RNN展开以后的形式。先来看右边的结构,从下往上依次是序列数据的输入X(图中的绿色结构,可以是时间序列,也可以是文本序列等等)。对于t时刻的x经过一个线性变换(U是变换的权重),然后与t-1时刻经过线性变换V的h相加,再经过一个 非线性激活(一般使用tanh或者relu函数)以后,形成一个t时刻的中间状态h,然后再经过一个线性变换(W)输出o ,最后再经过一个非线性激活(可以是sigmoid函数或者softmax等函数)形成最后的输出y。
上面的文字描述,可以形式化表示为下面的公式:
a t = V h t − 1 + U x t + b h t = t a n h ( a t ) o t = W h t + c y t = s i g m o i d ( o t ) a^t = Vh^{t-1} + Ux^t + b \\ h^t=tanh(a^t) \\ o^t=Wh^t + c\\ y^t=sigmoid(o^t) at=V