1.对循环神经网络原理和程序有了更全面的理解,对之前不懂的地方花了时间去学习补充,从数据如何输入到网络,再如何计算,到得出预测结果有了更好的把握。这样以后对模型的改进和优化都会更方便。
2.理解了keras中units是输出维度的意义后,神经网络的参数个数也就会计算了,我觉得只是将10个数一组输入网络可能不需要100的输出维度,也许只需要30就有很好的效果,我马上去做了简化模型的实验,将units也就是输出维度设小,预测结果表明减少参数后预测精度虽然不及之前但是也相差不多,而且训练速度更快,也没有之前的毛刺现象。接着我还做了多输入LSTM的实验,将多维数据输入到一个神经网络去预测多维输出,结果表明预测效果还是比较理想的,之后还需要更多的实验去验证和调优。
3.Stateful LSTM:也就是有状态的LSTM,在处理过一个batch的训练数据后,其内部状态(记忆)会被作为下一个batch的训练数据的初始状态,就是前后数据是有关联的,我觉得我们的摇荡数据也是这样的。之前的训练方法是将数据划为10个数据一组加1个标签,然后打乱顺序去训练模型。stateful lstm是按数据顺序训练模型,并将上一个batch的状态传递给下一个batch,这样感觉更合理一些,我也去用程序实现了它做了实验,结果表明这种方法对刚开始的数据预测的不准,之后就比较准了,但是总体上没有之前的方法效果好,这也是一种新的探索吧,也许以后会用得上。
4.摇荡项目工程进展:实现了多线程,离线预测和在线学习可以同时开始进行了,之后再加入切换机制大框架就搭好了,当然这其中也有很多的细节问题需要解决。