lstm算法的研究及其在交通预测上的应用(附件)【字数:7885】
摘 要自1943年M-P神经元诞生标志着机器学习的正式出现以来,机器学习技术一直不断在研究和改进,深度学习的出现迎来了新一波的机器学习热潮,其中的算法有卷积神经网络、深度置信网络、长短记忆神经网络等。其中LSTM网络,由于其隐层单元之间的连接性,使其具备时序的特点,因此在电力预测、股票预测等场景中取得了不俗的成绩。为此本文将LSTM算法应用于交通预测中,以期望能够较好的预测交通流量,方便人们的出行。本文首先介绍了课题的研究现状和未来发展,而后介绍了LSTM的特点,然后分析了该算法的基本原理和步骤,说明了开发环境,最后基于Tensorflow框架,利用Python编程技术实现了LSTM算法,并进行了交通流量预测,实验过程进行了参数调试和对比以提高整体的正确率,以期待其能为缓解城市出行压力,减轻道路拥堵状况做出一定程度的贡献。
目 录
第一章 引语 1
1.1发展历史 1
1.2研究背景 1
1.3研究目的 2
1.4论文安排 3
第二章 开发环境介绍 4
2.1Ubuntu Kylin 4
2.1.1Ubuntu Kylin简介 4
2.1.2Ubuntu Kylin安装 4
2.2Anaconda 4
2.2.1Anaconda简介 4
2.2.2Anaconda安装 4
2.3TensorFlow 4
2.3.1什么是Tensorflow 4
2.3.2TensorFlow特性 5
2.3.3Tensorflow安装 5
第三章 LSTM算法介绍与分析 6
3.1LSTM简介 6
3.2 LSTM算法原理和步骤 8
3.2.1门结构 8
3.2.2遗忘门 8
3.2.3输入门 8
3.2.4输出门 9
3.3 LSTM算法步骤 9
第四章 LSTM算法的实现与实验对比 11
4.1代码实现 11
4.2实验环境和实验数据 12
4.2.1实验环境 12 *好棒文|www.hbsrm.com +Q: #351916072#
4.2.2实验数据 12
4.3对比实验 13
4.3.1隐藏层数对实验的影响 13
4.3.2学习率对实验的影响 14
4.3.3批次大小对实验的影响 15
4.3.4样本数对实验的影响 16
4.4实验总结 17
结束语 19
致 谢 20
参考文献 21
第一章 引语
1.1发展历史
神经网络诞生于1943年,最初的模型为MP神经元,通过借鉴人类的神经元构造,即通过模拟神经递质在神经元之间的传输,将神经元受刺激启动的这一方式利用来进行阈值的实现,用输入数据来替代感受刺激的过程。其存在无法自主进行参数调节的缺陷,只能手动调节来尽可能接近预期结果。
随后于1956出现了感知机,使得参数可以随着输入的数据而进行改变,定义lost function,通过梯度下降更新权重,参数与数据进行拟合,在当时引起了极大的反响。普遍认为这是实现人工智能的方式,在1969人们通过实验发现,感知机无法学习XOR(异或运算),神经网络迎来了第一次衰退。
1986年出现连接主义(连接主义,将大量简单网络拼接,构成一个智能网络,类似蚂蚁算法),神经网络迎来第二次兴盛,在此期间分布式表示进一步对其优化,告别了以往的一个神经元代表一种事物,提出特征这一概念,用代表特征的神经元组合表示某一事物,大大降低了连接数量,这一思想一直沿用至今。
同年的反向传播算法也成为目前为止所有神经网络的学习方法。由于当时计算机能力较弱,无法进行运算,所以很快便再次衰退。
2006年深度信念网通过每层分别训练解决了神经网络难以收敛的难题,2007年将这种预训练的方式用于卷积神经网络,第一次在手写体识别上超过了机器学习,自那之后将多层预训练的神经网络称之为深度学习。
深度学习中深度并无固定定义,语音识别中四层即可为深度而图像识别中二十层也较为常见。基于深度学习的方法.通过对数据多层建模获得数据的特征和分布式表示, 避免繁琐的人工特征抽取, 具有良好的泛化能力[1]目前主流的深度学习算法有DBN(Deep Belief Nets),CNN(Convolutional Neural Networks),RNN(Recurrent Neural Networks)[2],LSTM(Long ShortTerm Memory)[3][4],Resnet。本文所用的LSTM对于解决时序问题有独到之处,对于NLP(自然语言处理)更是成果显著。
1.2研究背景
自从BP网络诞生到1991年BPTT算法出现,训练网络使得其能够拥有记忆是非常困难的,并且需要花费大量的时间用于学习调整整个网络[5]。BPTT虽对其进行了改良,却依旧出现了梯度爆炸以及梯度消失。具体表现为梯度震荡以及多层结构学习困难。
1997年Hochreater提出了LSTM网络结构,由一组连接的子网组成,称为存储器块。这些模块可以被认为是计算机存储器芯片的一个演化。每个模块包含一个或多个自连接存储单元和三个乘法单元即隐藏层( Each block contains one or more selfconnected memory cells and three multiplicative units[6])。2001年Felix Gers进一步改进了LSTM的网络结构,增加了forget gate和peephole[7]。Alex Graves 2006年提出了LSTM的CTC(Connectionist temporal classification)训练准则[8]。
LSTM基于RNN,对于序列模型,具有很好的处理。RNN传统网络能够支持,1v1,1vN,Nv1,NvN等多种模式的数据输入,LSTM在保留这些优势的同时引入了选择性遗忘或者记忆,对于复杂的的时序模型更能起到优秀的作用。目前LSTM常用于电力预测有文章提出如下的方法,首先将原始电力负荷数据进行清洗转换, 然后在张量流深度学习框架下构建基于长短期记忆人工神经网络的预测回归模型, 最后利用该模型进行回归预测, 得到下一时间窗口的负荷变化[9],股票预测方面针对股票时序预测问题,在传统深度学习方法和ARIMA方法的基础上提出了对应的LSTM模型及结合小波降噪的DBARIMA模型,并对其应用情况做进一步分析与优化,使之能够更好的发掘股票数据的变化规律[10],NLP,翻译,手写体识别,中文词性标注中有论文提出了一种基于CNN和LSTM的混合模型来进行中文词性标注的方法, 混合模型利用CNN滑动窗口和权值共享[11]来获得局部上下文信息, 从而生成词语表示特征并作为下一层的输入, LSTM的时序性非常适合标注这种序列任务[12], 将两者结合起来, 充分利用两者的充分利用两者的各自优势, 中文词性标注的性能得到了显著的提升[13],其中双向LSTM更是运用于字幕翻译情感分析利用LSTM进行前后推算, 加强文本中前后句子的关联性,引入情感极性模型以解决情感分类中的极性转移问题[14],以及邮件自动答复。
目 录
第一章 引语 1
1.1发展历史 1
1.2研究背景 1
1.3研究目的 2
1.4论文安排 3
第二章 开发环境介绍 4
2.1Ubuntu Kylin 4
2.1.1Ubuntu Kylin简介 4
2.1.2Ubuntu Kylin安装 4
2.2Anaconda 4
2.2.1Anaconda简介 4
2.2.2Anaconda安装 4
2.3TensorFlow 4
2.3.1什么是Tensorflow 4
2.3.2TensorFlow特性 5
2.3.3Tensorflow安装 5
第三章 LSTM算法介绍与分析 6
3.1LSTM简介 6
3.2 LSTM算法原理和步骤 8
3.2.1门结构 8
3.2.2遗忘门 8
3.2.3输入门 8
3.2.4输出门 9
3.3 LSTM算法步骤 9
第四章 LSTM算法的实现与实验对比 11
4.1代码实现 11
4.2实验环境和实验数据 12
4.2.1实验环境 12 *好棒文|www.hbsrm.com +Q: #351916072#
4.2.2实验数据 12
4.3对比实验 13
4.3.1隐藏层数对实验的影响 13
4.3.2学习率对实验的影响 14
4.3.3批次大小对实验的影响 15
4.3.4样本数对实验的影响 16
4.4实验总结 17
结束语 19
致 谢 20
参考文献 21
第一章 引语
1.1发展历史
神经网络诞生于1943年,最初的模型为MP神经元,通过借鉴人类的神经元构造,即通过模拟神经递质在神经元之间的传输,将神经元受刺激启动的这一方式利用来进行阈值的实现,用输入数据来替代感受刺激的过程。其存在无法自主进行参数调节的缺陷,只能手动调节来尽可能接近预期结果。
随后于1956出现了感知机,使得参数可以随着输入的数据而进行改变,定义lost function,通过梯度下降更新权重,参数与数据进行拟合,在当时引起了极大的反响。普遍认为这是实现人工智能的方式,在1969人们通过实验发现,感知机无法学习XOR(异或运算),神经网络迎来了第一次衰退。
1986年出现连接主义(连接主义,将大量简单网络拼接,构成一个智能网络,类似蚂蚁算法),神经网络迎来第二次兴盛,在此期间分布式表示进一步对其优化,告别了以往的一个神经元代表一种事物,提出特征这一概念,用代表特征的神经元组合表示某一事物,大大降低了连接数量,这一思想一直沿用至今。
同年的反向传播算法也成为目前为止所有神经网络的学习方法。由于当时计算机能力较弱,无法进行运算,所以很快便再次衰退。
2006年深度信念网通过每层分别训练解决了神经网络难以收敛的难题,2007年将这种预训练的方式用于卷积神经网络,第一次在手写体识别上超过了机器学习,自那之后将多层预训练的神经网络称之为深度学习。
深度学习中深度并无固定定义,语音识别中四层即可为深度而图像识别中二十层也较为常见。基于深度学习的方法.通过对数据多层建模获得数据的特征和分布式表示, 避免繁琐的人工特征抽取, 具有良好的泛化能力[1]目前主流的深度学习算法有DBN(Deep Belief Nets),CNN(Convolutional Neural Networks),RNN(Recurrent Neural Networks)[2],LSTM(Long ShortTerm Memory)[3][4],Resnet。本文所用的LSTM对于解决时序问题有独到之处,对于NLP(自然语言处理)更是成果显著。
1.2研究背景
自从BP网络诞生到1991年BPTT算法出现,训练网络使得其能够拥有记忆是非常困难的,并且需要花费大量的时间用于学习调整整个网络[5]。BPTT虽对其进行了改良,却依旧出现了梯度爆炸以及梯度消失。具体表现为梯度震荡以及多层结构学习困难。
1997年Hochreater提出了LSTM网络结构,由一组连接的子网组成,称为存储器块。这些模块可以被认为是计算机存储器芯片的一个演化。每个模块包含一个或多个自连接存储单元和三个乘法单元即隐藏层( Each block contains one or more selfconnected memory cells and three multiplicative units[6])。2001年Felix Gers进一步改进了LSTM的网络结构,增加了forget gate和peephole[7]。Alex Graves 2006年提出了LSTM的CTC(Connectionist temporal classification)训练准则[8]。
LSTM基于RNN,对于序列模型,具有很好的处理。RNN传统网络能够支持,1v1,1vN,Nv1,NvN等多种模式的数据输入,LSTM在保留这些优势的同时引入了选择性遗忘或者记忆,对于复杂的的时序模型更能起到优秀的作用。目前LSTM常用于电力预测有文章提出如下的方法,首先将原始电力负荷数据进行清洗转换, 然后在张量流深度学习框架下构建基于长短期记忆人工神经网络的预测回归模型, 最后利用该模型进行回归预测, 得到下一时间窗口的负荷变化[9],股票预测方面针对股票时序预测问题,在传统深度学习方法和ARIMA方法的基础上提出了对应的LSTM模型及结合小波降噪的DBARIMA模型,并对其应用情况做进一步分析与优化,使之能够更好的发掘股票数据的变化规律[10],NLP,翻译,手写体识别,中文词性标注中有论文提出了一种基于CNN和LSTM的混合模型来进行中文词性标注的方法, 混合模型利用CNN滑动窗口和权值共享[11]来获得局部上下文信息, 从而生成词语表示特征并作为下一层的输入, LSTM的时序性非常适合标注这种序列任务[12], 将两者结合起来, 充分利用两者的充分利用两者的各自优势, 中文词性标注的性能得到了显著的提升[13],其中双向LSTM更是运用于字幕翻译情感分析利用LSTM进行前后推算, 加强文本中前后句子的关联性,引入情感极性模型以解决情感分类中的极性转移问题[14],以及邮件自动答复。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/33.html