RNN 简介

来源:互联网 发布:翼龙贷 招聘网络 编辑:程序博客网 时间:2024/06/04 18:23

1. 简介

RNN, Recurrent Neural Network, 循环神经网络.
与普通前馈网络最大的区别是, 网络节点在t时刻的输出不仅依赖于t时刻的输入, 还依赖前一时刻的输出与状态. 即

ht,ct=f(ht1,ct1,xt)

h 为cell 输出, c 为cell 状态.

2. time_step

因为t, t-1 这个时序关系, 它要求训练数据也是有时序的, 时序的长度为 time_step . 把 RNN 中输入与输出的超参数列举见下:

  • input_time_step
    输入数据的序列长度.
    如拿最近3个时刻的样本与去预测, 序列长度就是3.
  • input_size
    输入特征的维度.
  • output_time_step
    时序关系传递到 rnn 网络的输出, 也就有了output_time_step.
    如拿当前若干个时刻与去预测未来2个时刻的输出, 这个序列长度就是2.
  • output_size
    输出的维度, 回归问题就是1.

3. 应用举例

3.1 sin x 时序预测

预测 sin(x) 序列, 设 input_time_step =3, output_time_step=1, 就是拿最近3个时刻的输入去预测下个时刻的输出.
此问题中 input_size 与 output_size 都是1.

训练集就是 X=(x1,x2,x3), 输出label =x4.
Q:如何得到训练集呢?
拿产生好的 sin (x) 序列, 比如 1000 个点, 用滑动窗口, 不断地得到 X 与 lable.

3.2 股票最高价预测

仍旧以 input_time_step =3, output_time_step=1 举例.
用当前三天的股价情况去预测下一天的最高价.
用到的特征会多一点, 如 开盘价, 收盘价, 成交量, 换手率 等. 这样的话 input_size=4.

3.3 翻译问题

4. tensorflow 处理input与output

可以参见[1].

参考

原创粉丝点击