GAN,没错,生成对抗网络也可以被用于时间序列预测
点击上方“程序员大白”,选择“星标”公众号
重磅干货,第一时间送达
来自 | 知乎 作者|夏明朗
链接 | https://zhuanlan.zhihu.com/p/121771459
一 背景简介
GAN,generative adversarial networks,中文名生成对抗网络,由大名鼎鼎的Ian Goodfellow(花书的作者之一)于2014年提出,可以算是深度学习模型近些年发展过程中重要的模型之一。既然说到这里,顺便贴一张深度学习模型的重要进展梳理图,GAN能从众多工作中脱颖而出,一定是具有自己的独到之处。
不了解GAN的小伙伴,可以去B站看台大李宏毅老师的GAN讲解
李宏毅2020深度学习(完整版)国语
视频链接:https://www.bilibili.com/video/BV1JE411g7XF?p=61
接着说咱的老本行,时间序列预测常用的模型包括传统的ARMA,ARIMA模型,各种数据驱动模型(各种各样的机器学习模型,包括但不限于线性回归,支持向量机,随机森林和各种结构的神经网络模型等等),近些年来随着深度学习的发展,卷积神经网络(CNN),循环神经网网络(RNN,以LSTM应用最广)等模型被广泛应用于时间序列的预测。但是运用GAN实现时间序列预测的,很少见,下面我们就一起来看一篇2019年发表于IEEE Access的文章。
Probabilistic Forecasting of Sensory Data with Generative Adversarial Networks - ForGAN
文章地址:https://arxiv.org/abs/1903.12549
鉴于大家可能都因疫情原因困在家中科研,文章在arXiv上也有预印版,我比较了一下,预印版和IEEE Access上发表的差别不大,如果大家想要发表版本但下载文献又不方便,请私信留邮箱就好。
下面进入文章的主要内容。
二 正文
题目:
摘要:
摘要是文章核心点的浓缩,我们这里挑重要的说。动机:传统的预测模型使用均值回归的方法进行预测,而这类模型的特点是不能反映出真实数据中的波动。核心创新:提出一种基于GAN模型的单步的概率预测模型,起名叫ForGAN,其核心是使用了conditional GAN(条件生成对抗模型)。仿真实验:用Lorenz数据集,Mackey-Glass数据集和A5M数据集(一个交通流数据集)验证了所提算法的有效性。
说实话,我在读文章的时候并没有领悟到文中提到的均值回归预测(mean regression forecasting)和概率预测(probabilistic forecasting)的精髓,也就对ForGAN的优点和意义的理解存在些许偏差,这里叫不敢妄加评论了。但这不妨碍介绍GAN模型用于时间序列预测的过程。下面直接介绍文章的干货部分。
文中所提出的ForGAN实质上就是一种conditional GAN(条件GAN),那么其进行时间序列预测的过程如下:
生成器的输入包含两部分:
时间序列片段(X0,....,Xt)和长度为N的噪声,输出的便是单步预测值Xt+1_prediction
鉴别器的输入为时间序列片段(X0,....,Xt)和单步预测的标签Xt+1(这是真实观测数据)
生成器和鉴别器不停地对抗,实质上是让Xt+1_prediction不停接近真实值Xt+1的过程,从而实现了时间序列的预测。
三 总结
这是我第一次看到用条件GAN模型实现时间序列预测的模型,其实思路并不复杂,就是利用条件GAN的对抗模式,将预测值Xt+1_prediction不断逼近真实值Xt+1_real的过程。当然该模型完全可以实现多步预测,只需要将生成器的输出和判别器的标签换成(Xt+1,Xt+2,...,Xt+h)即可(h表示预测的步长)。
文中对ForGAN的动机和优点没有打动我,实验部分也没有说服我,在此我就不一一描述了。利用GAN进行时间序列预测,或许有蹭热点的嫌疑,但是作者的的确确提供了一个新的视角与思路,有兴趣的小伙伴不妨在经典条件GAN的基础上试一试,或许会有新的发现。
推荐阅读
关于程序员大白
程序员大白是一群哈工大,东北大学,西湖大学和上海交通大学的硕士博士运营维护的号,大家乐于分享高质量文章,喜欢总结知识,欢迎关注[程序员大白],大家一起学习进步!