一、实验说明
文献参考:http://www.dataguru.cn/article-11339-1.html(lstm详细介绍)
https://blog.csdn.net/u011974639/article/details/77856388#?tdsourcetag=s_pcqq_aiomsg(TensorFlow及lstm代码参考)
附:本文数据不便放出,需要做实验可以自己在excel中编辑数据,数据在“二、开发准备”中有样本参考。
1.1实验内容
通过现有的数据,建立数学模型,预测出未来一个月的汇率变化趋势。本文采用美元对人民币的汇率数据,时间是1990年1月1日到2018月8月21日。利用Tensorflow搭建模型并完成预测,数学模型用Lstm(长短期记忆)人工神经网络,Lstm是RNN(循环神经网络)的一种变形,是在RNN的基础上施加了若干个门来控制,使其在长时间步的传递过程中减少信息失效的可能。
1.2实验知识点
1.2.1本次实验中将学习和实践以下知识点:
- Python基本知识
- Python基础库如numpy,panda,matplotlib
- TensorFlow模块的使用
- Lstm神经网络
1.2.2Lstm神经网络
要理解Lstm,首先需要了解循环神经网络(RNN),循环神经网络可以将信息持久化。
这个相对于原始的神经网络,就是加了一个环,也就是X是输入,h为输出,A为隐藏层,如果将环展开:
循环神经网络的一个核心思想是将以前的信息连接到当前的任务中来,但是,如果前面的信息与当前信息距离增大,RNN对于连接这些信息显得无能为力。而Lstm是一种特殊的RNN,能学习长期依赖关系。一般的RNN,其模块非常简单,只有一个tanh层。
Lstm也是这种结构,但其模块的结构不同,如下所示。
Lstm的核心是元胞状态,Lstm通过门的结构来控制元胞状态添加或者删除信息,门是一种选择性让信息通过的方法,也就是Lstm不同于RNN的地方。Lstm也有多种版本,但核心部分都是一样的,本文中不再详细展开讨论Lstm的每个部分。
1.3实验环境
- 运行环境window7
- 开发环境python3.6
- 调试环境jupyter notebook
1.4适合人群
- 具有python基础知识、神经网络基础知识
- TensorFlow学习
- Lstm神经网络学习
二、开发准备
安装Anaconda,Anaconda包