社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【春节学AI炒股】深度学习引入信号处理技术,轻松分析股票等各种序列数据

新智元 • 7 年前 • 1071 次点击  






  新智元推荐  

作者:齐国君

编辑:克雷格


【新智元导读】把深度学习的最新方法用来做股价预测可不可行?一个探讨路径之一是如何深入把经典的信号处理技术引入到深度学习技术中,用来分析各种序列数据(sequence data),比如股票价格、金融信号等,乃至更为一般的物理、经济、社会等活动的动态信号,抽象出有价值的模式,进而对其进行预测和分析。



傅立叶变换能用来炒股发财?


事实上,几年前就有公司或者基金把深度学习的最新方法用来做股价预测,用来在股市上一搏了。


比如就有国内的研究人员用LSTM这种递归神经网络来预测风云莫测的中国股市 。


一些朋友也在私下里告诉过笔者,某美国的交易机构就用LSTM来做自动化高频交易,在大规模资金的帮助下,实现了日进斗金;当然,实际使用时要克服很多工程问题,比如要选取合适的输入信号、实现和交易所的高速事实通讯等。这些都不在本文探讨之类。


所以,想读完本文就可以成为亿万富翁的朋友可以散了:)


我们这里用炒股做个引子,真正想介绍的是如何深入把经典的信号处理技术引入到深度学习技术中,用来分析各种序列数据(sequence data),比如股票价格、金融信号等,乃至更为一般的物理、经济、社会等活动的动态信号,抽象出有价值的模式,进而对其进行预测和分析。


如果大家对技术细节感兴趣,可以参考我们在ICML和 KDD上发表的论文。(注:本文末尾)


长期还是短期投资?


我们以资本市场的投资为例,来引出为什么要用傅里叶变换的方法对不同周期的价格信号进行分析。


所有人在进入股市前,都首先要做出一个根本的投资策略:究竟投资有潜力的股票、进而获得长期回报,还是打打短线,赚一票就走路?显然,对于不同的策略,用来预测的信号也是不一样的。


对长期投资者来说,短期的价格波动不应该对其预测的长期股价产生太大影响,这类投资者更应该关注的是股价在更大周期上的波动;用更专业的术语来说就是低频率、长周期的股价信号应该对预测长期股价更有价值。


对短期投资者、特别对高频交易的投资者来说,他们更关心的是短期的价格波动,进而以小步快跑的方式获得累积的收益。也就是说,这类打短线的投资者更对高频地、短周期的股价波动敏感。


从状态记忆(State Memory)到多频率状态记忆(State-Frequency Memory)


炒股的例子告诉我们,对特定的应用,不同频率上的信号所起到的作用是不一样的。这类问题在很多工程应用中都有所体现。


比如对特定物体进行跟踪。作为一个经典的预测问题,物体跟踪通过特定的观察量(比如雷达、激光雷达等)对某个物体实际的位置进行持续的预测。这个时候,找到符合物体运动周期的特征,并用这些特定频率上的特征对运动进行分析就非常重要。


同样地,在分析、预测社会活动时,这种特定周期或频率的特征模式往往也是非常常见的。比如,在分析交通流量时,上下班周期、在一个星期内不同天的周期等,对交通流量的分析预测都会起到非常关键的作用。找到并针对性地量化分析这些周期对预测未来趋势的影响,往往是分析序列数据的关键。


这些都启发我们:在对信号进行预测时,需要对不同频率的信号区别对待,针对特定的任务加以合理应用。



而经典的LSTM仅仅对时间信号的状态向量做为记忆元(Memory Cell)进行建模,而忽略了另一个重要维度频率。而我们将状态(state)-频率(frequency)联合起来,形成一个状态-频率矩阵(State-Frequency Matrix,SFM) 而非仅仅用一个向量来表示状态。


矩阵中的每个元素,用它的行来索引不同状态:每个状态在物理意义上可以理解成代表某个引发信号波动的因子。另一方面,用SFM的列来检索不同的频率,代表不同因子对不同频率的影响。


有了SFM做为记忆元,我们就可以像一般LSTM里那样定义输入门、输出门、遗忘门和控制信息的流向。特别地,如果我们对高频、短周期信号(比如短期高频的交易时)更关心,对应SFM矩阵的高频部分的信息流就会被输入门、输出门选定出来对信号序列进行建模。反之,如果我们对低频的、长周期信号(比如长期投资时)更有兴趣,那么我们就可以让模型聚焦在用SFM中的低频部分进行分析。


具体SFM矩阵中高、低频分量的选择,将由针对特定问题所定义的目标函数,通过训练的方法来自动完成。比如,我们可以选择优化高频交易下的预测准确率或者收益,这时SFM中高频部分会起到更大的作用,从而被选中。


自适应的定义频率


另外一个重要的问题是,我们往往在事先无法确定那个频率上的分量更重要,这是我们可以通过允许模型以自适应的方式来确定这些频率。具体来说,我们可以把这些频率分量ω定义为输入、输出的函数来机器学习的方法来确定合适的频率。 

同时意味着,随时具体某个任务外界环境的变化,比如出现某个特定金融事件,使得市场发生较平常更激烈动荡时,我们希望SFM的高频对应着更高的频率,来适应市场的变化。


这种自适应的调节分析频率的能力,有利于我们对那些非平稳(non-stationary)的序列数据进行建模、分析。


下面图中可以看到在对某个时间序列建模时,频率自适应模型A-SFM是如何随时间不断地调整其覆盖的频率段的。

更多的结果和详细的介绍,大家可以参看我们的论文。


Hao Hu§, Guo-Jun Qi*. State-Frequency Memory Recurrent Neural Networks, in Proceedings of International Conference on Machine Learning (ICML 2017), Sydney, Australia, August 6-11, 2017. [pdf]


Liheng Zhang§, Charu Aggarwal, Guo-Jun Qi*, Stock Price Prediction via Discovering Multi-Frequency Trading Patterns, in Proceedings of ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD 2017), Halifax, Nova Scotia, Canada, August 13-17, 2017 [pdf]


源代码:

希望自己动手尝试的朋友们,可以直接去github下载源码了。

https://github.com/hhkunming/State-Frequency-Memory-Recurrent-Neural-Networks

https://github.com/z331565360/State-Frequency-Memory-stock-prediction




【2018新智元AI技术峰会重磅开启,599元早鸟票抢票中!


2017年,作为人工智能领域最具影响力的产业服务平台——新智元成功举办了「新智元开源·生态技术峰会」和「2017AIWORLD 世界人工智能大会」。凭借超高活动人气及行业影响力,获得2017年度活动行“年度最具影响力主办方”奖项。


其中「2017 AI WORLD 世界人工智能大会」创人工智能领域活动先河,参会人次超5000;开场视频在腾讯视频点播量超100万;新华网图文直播超1200万。


2018年的3月29日,新智元再汇AI之力,共筑产业跃迁之路。在北京举办2018年中国AI开年盛典——2018新智元AI技术峰会,本次峰会以“产业·跃迁”为主题,特邀诺贝尔奖评委、德国人工智能研究中心创始人兼CEO Wolfgang Wahlster 亲临现场,与谷歌、微软、亚马逊、BAT、科大讯飞、京东和华为等企业重量级嘉宾,共同研讨技术变革,助力领域融合发展。


新智元诚挚邀请关心人工智能行业发展的各界人士 3 月 29 日亲临峰会现场,共同参与这一跨领域的思维碰撞。


关于大会更多信息,请关注新智元微信公众号或访问活动行页面(点击阅读原文):http://www.huodongxing.com/event/8426451122400


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/2PzyDqJx6K
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/7205
 
1071 次点击