当前位置:   article > 正文

使用Tensorflow实现的基于LSTM的预测实例

tensorflow使用lstm人口预测
引言
  • 算法在工程中的应用越来越广泛,tensorflow在工业界大放异彩。笔者的项目也使用了LSTM算法的预测能力,大大降低了运用的成本,提高了运营效率。
  • 为了体验tensorflow的开发模式,笔者使用tensorflow实现了一个基于LSTM算法的预测实例,与大家分享。
LSTM的前世今生
  • 在LSTM之前,我们先介绍另一个如雷贯耳的名词RNN(Recurrent Neural Networks),中文名是递归神经网络。LSTM是对RNN隐含层的改进。RNN最主要的用途是处理序列数据,且该序列的当前输出与前面的输出也有关。比如,要分析一段文本的含义时,当前词汇与上一个词汇是有关系的,并不是孤立存在的,上文对当前的输出产生了影响。因此RNN在NLP(Natural Language Processing)中获得非常成功的应用。
  • LSTM因为《Long short-term memory》这篇论文为世人所熟知,LSTM的出现是为了解决RNN无法有效处理长期记忆(Long Term Dependencies)的问题。
  • 标准RNN在进行长期记忆计算会产生‘梯度消失或者梯度膨胀问题’(原作者描述为“vanishing or exploding gradients”),即RNN的梯度数据会在若干次递归计算后,由于反向多次求导的递归过程中产生的计算误差的叠加,导致梯度消失或者梯度膨胀。粗略的说,‘梯度消失’的表现为很多个小于1的项连乘就很快的逼近零。
  • LSTM是如何做到避免梯度消失,简单的说,LSTM在神经元的状态转移时,不对状态值添加scale参数或矩阵变换。同时,引入‘门函数’,如输入门,输出门,遗忘门,控制输入信息、状态转移,以及输出信息的有选择性地表达。
tensorflow
  • tensorflow是google发布的一个使用数据流图进行数值计算的开源软件库,计算的对象称为张量,即多维数组。已经发布了可用于生产环境的1.0版本, 被工业界广泛用于机器学习和深度学习的研究和算法应用开发。
  • 官方主页:https://www.tensorflow.org/
预测场景
  • LSTM非常适用于基于时序数据的预测,比如预测未来的股票行情,预测未来某个时间段的交通情况,预测未来的房价等。
  • 本文使用房价数据作为训练样本,因为人在对房价进行预测时,基本上都会参考近期房价和历史趋势,对未来的价格作出一个预判。也就是说,历史上的房价数据,是会对未来的房价产生重大影响的,即当前输出受历史输出的影响,则房价的预测符合LSTM的应用优势。
定义LSTM模型
  • 本文使用单层的LSTM模型对数据进行预测,更为复杂的多层LSTM模型也是基于单层LSTM模型进行扩展。定义一个基本的LSTM模型,需要定义如下几个部分:
  1. 1. 定义时间步, 定义每个输入数据与前多少个有序的输入的数据有关联
  2. 2. 定义隐层神经元的数量
  3. 3. 定义每批训练样本数
  4. 4. 定义输入层维度、权重、偏置
  5. 5. 定义输出层维度、权重、偏置
  6. 6. 定义学习率,学习率越小,越容易陷入局部最优结果,学习率越大,相邻两次训练结果间的抖动越大
  7. 7. 定义损失函数
  8. 8. 定义训练次数
  9. 9. 构建训练数据集
  10. 10. 构建测试数据集
获取数据集
  • 在预测房价之前,需要先获取房价的数据,本文的数据来源为某房地产中介平台的交易数据。
  • 如何使用python编写一个爬虫精确爬取数据,详见另一篇文章:
    Python爬虫实战, 这也是为什么使用房价作为实例场景的原因,因为这个数据已经被爬取过了。
基于Tensorflow的LSTM实现
算法效果

房价预测曲线.png

  • 纵坐标数值的单位为 万RMB
结束语
  • 本文实现的demo离实际的工程应用还有差距,仅供体验和参考
  • 算法的应用在某些场景中能够带来令人惊喜的效果,但在一个新的场景或者应用领域中,算法的效果具有很大的不确定性。
  • 算法的基础理论晦涩难懂,二次开发和准确应用的门栏都相对较高,在工程应用过程中,不免会碰到算法持续改进了几个月,却在复杂的业务场景中表现不佳,无法真正上线应用的情况。
  • 由于算法的不确定性,在进行严格排期的工程实施中,要准确回答‘使用算法解决xxx问题,需要几个人日’的问题,的确是个颇为困难的事。
  • 希望越来越多成功的算法应用,能够不断改善人们的体验,解放人们的想象力,创造更加美好的生活。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/978441
推荐阅读
相关标签
  

闽ICP备14008679号