有了算法,当然要实现。第一个问题就是选择编程语言,考虑到后面有大规模的数据,可能要用多线程甚至集群来运行。
刚好实验室有一台40核80线程2T内存的大型服务器,其实多线程估计就能解决实验。(实验要用大规模数据证实效果,实际应用数据量不大,实时性优化只是锦上添花)
服务器是Linux的,所以选择一门能在Linux上多线程的语言就好,matlab的数学处理非常完善,可惜我了解不足,我去看看支持多线程不?
Map-Reduce肯定是大数据处理的首选,可惜我也没用过。这篇可以先弄个Map-Reduce的Hello World!
查了资料,matlab有一个并行计算工具箱,是不是还可以像深度学习一样干脆用GPU计算。既然matlab支持并行计算,就暂定matlab实现,遇到跳不过去的坎再说
几个基本函数已经定义好了,需要逐个实现。本来面向对象简单清晰的代码,放到matlab里好乱啊。虽然matlab提供了面向对象功能,但是看语法也知道实现的效率肯定不高,由于后面实验涉及性能对比及实时性优化。我还是老老实实看看怎么用面向过程简单清晰的表达出来吧。
一边计划一边修正,刚刚找到了用MLP模型BP算法做预测的文章,想先试试,算法如下
1.采集数据,预处理,按步长处理数据。
2.输入模型做训练,
3.用训练结果做预测
4.统计预测结果。
网络上应该有完整的BP算法代码,做的简单修改就能跑,我去试试。
跑通了博客中的实例,非常简单。
后补:bp算法解决多层前馈神经网络参数训练问题,属于机器学习算法。使用机器学习方法上面的算法就需要修正了。
参考:
http://blog.youkuaiyun.com/hijack00/article/details/52227592
https://www.zhihu.com/question/37184061
http://blog.youkuaiyun.com/liyanzhong/article/details/53610176
http://blog.youkuaiyun.com/sinat_23137713/article/details/51136127
http://blog.sina.com.cn/s/blog_64b046c70101cko4.html
http://blog.youkuaiyun.com/hqh45/article/details/42965481
http://blog.sina.com.cn/s/blog_5c9288aa0101gsu2.html