【发布时间】:2016-05-12 21:27:56
【问题描述】:
在给定输入的情况下,我使用Bike Sharing dataset 来预测一天内的租赁数量。我将使用 2011 年的数据进行训练,使用 2012 年的数据进行验证。我成功地建立了一个线性回归模型,但现在我试图弄清楚如何使用循环神经网络来预测时间序列。
数据集有 10 个属性(例如月份、工作日与否、温度、湿度、风速),虽然属性是天(星期日:0、星期一:1 等),但都是数字的。
我假设有一天可以并且可能会取决于前几天(而且我不需要所有 10 个属性),所以我考虑使用 RNN。我知道的不多,但我读过一些东西,也读过this。我想到了这样的结构。
我将拥有10 input neurons、a hidden layer 和1 output neuron。我不知道如何决定隐藏层将有多少个神经元。
我想我需要一个矩阵来连接输入层和隐藏层,一个矩阵来连接隐藏层和输出层,以及一个矩阵来连接相邻时间步中的隐藏层,t-1 到 t,@ 987654328@ 至t+1。总共有 3 个矩阵。
在一个教程中,激活函数是sigmoid,虽然我不确定,如果我使用sigmoid函数,我只会得到0到1之间的输出。我应该使用什么作为激活函数?我的计划是重复这个n 次:
- 对于每个训练数据:
-
前向传播
- 将输入传播到隐藏层,将其添加到先前隐藏层到当前隐藏层的传播中。并将其传递给激活函数。
- 将隐藏层传播到输出。
- 查找错误及其派生,将其存储在列表中
-
反向传播
- 从列表中查找当前层和错误
- 查找当前隐藏层错误
- 商店重量更新
- 通过将权重(矩阵)乘以学习率来更新权重(矩阵)。
-
前向传播
这是正确的方法吗?我想要真正的数值作为输出,而不是 0-1 之间的数字。
【问题讨论】:
-
您是否考虑过为 RNN 使用现成的包,例如Python中的Keras?这可以让您的任务更轻松。
标签: machine-learning neural-network time-series regression recurrent-neural-network