深度学习这么火,快看如何使用TensorFlow基础函数构建信号回测!

2018 年 3 月 1 日 优矿量化实验室 充满智慧的👉

本文由优矿金融工程团队撰写,未经允许私自转载者必究。

投稿合作邮箱:service.uqer@datayes.com


深度学习这个词“耳闻目染”了很多次了,大家也都跃跃欲试,想在量化研究中用上深度学习。优矿集成了TensorFlow 1.4.1版本,我们终于可以大展身手了。


下手前,我们先大概的了解一下TensorFlow。TensorFlow字面上的意思是张量在流动,那什么是张量,张量又在哪流动呢?Google对TensorFlow的定位其实不仅仅是一个深度学习的库,而是一个基于数据流图的数值计算框架。在数据流图中节点表示操作,边表示在节点间相互联系的多为数组即张量,只要把这个数据流图画好,张量就可以在图上“流动”起来。使用TensorFlow前,先画个图(graph)。除此之外我们还需要了解:

  • 使用Variable表示那些可被训练的变量,维护计算状态;

  • 在会话session中执行图;

  • 使用feed和fetch可以为任意的操作赋值或获取数据。


以上几点我们会在实际代码中一一介绍到。随着近几年深度学习的火热,使得模型变得越来越多,CNN、RNN、LSTM等等一个个都如雷灌耳,它们在图像语音上的效果很好,能否在量化投资上取得成效就看各位的了。本系列只作为一个TensorFlow的使用教程,帮助大家能快速上手,希望大家多多在优矿上使用,榨干我们的服务器资源。本系列预计分下面几贴:

  • 使用TensorFlow基础函数构建简单的神经网络模型进行回测;

  • 使用TensorFlow中的高级API:Estimator、Experiment和Dataset;

  • 使用TensorFlow构建深度学习网络并进行调优。

本文将展示如何用TensorFlow画一个简单LR和多层神经网络模型流程图并进行效果回测。画图前我们得明确输入输出是啥,从多因子模型角度来说我们的输入是一堆因子然后希望得到alpha信号,从机器学习模型的角度来说输入就是一堆特征输出是分类或回归结果。本文中我们的输入是优矿提供的因子,基于我们对这些因子有预测能力的假设,我们目标是通过因子判断下一个调仓周期中股票是涨是跌。具体而言,我们取每月末的每只股票的因子为输入特征,以下个月股票是涨(值为1)是跌(值为0)为输出标签。一般而言我们需要分训练集、测试集。训练集用来训练我们的模型,测试集用来验证我们的模型效果如何,是否过拟合导致模型在测试集上的效果大打折扣。


(完整版请点击文末“阅读原文”获取)


准备完输入输出,我们就要开始画图了。


(完整版请点击文末“阅读原文”获取)


我们说了半天画图,但其实是在堆代码,那我们的图到底长啥样呢?我们将上面定义的图可视化后如下图所示,图中标识了主要的计算节点,边就是流动的张量,和本文开头介绍的一样。



上面我们定义了一个简单的LR模型,下面我们增加网络的层数。


(完整版请点击文末“阅读原文”获取)


训练完模型后,如果模型的效果不错,我们就可以用模型来进行回测。下面我们将保存的模型载入内存,然后用回测框架进行回测。


(完整版请点击文末“阅读原文”获取)


我们用的是15年的数据进行训练,16年的数据进行测试的,因此我们回测区间要避开这两个时间段。因为我们在训练测试时会进行调优,如果在测试集上进行回测就有可能过拟合。我们选取模型预测值最大的前10个来构建我们的组合。

(完整版请点击文末“阅读原文”获取)


同样我们尝试下多层网络的效果,下面代码展示如何载入之前训练的MLP模型。

(完整版请点击文末“阅读原文”获取)


本文粗浅地介绍了如何在优矿上使用TensorFlow,特征、模型、组合构建本身都有很多可以调整。TensorFlow作为一个计算框架还有许多值得研究的地方,例如我们在训练定义LR和MLP的图时是不是有很多重复的工作?其实TensorFlow也将这些重复的工作抽象化,作为一个框架可以方便用户进行模型的定义和训练。下次我们会介绍如何使用TensorFlow中的高级API:Estimator、Experiment和Dataset。另外深度学习模型还有很多参数需要进行调整优化,后面有机会我们还会进行介绍。


---  the end ---



Read More:

    优矿是由通联数据出品,覆盖研究、回测、模拟、实盘交易全流程的量化平台。优矿不仅拥有通联海量的金融数据、动态丰富的策略框架,同时还通过知识库信号库提供持续的知识输出,满足用户在研究过程中高效获取、迅速验证、多维度挖掘、多策略并行的迫切需求,为投资决策提供重要支持。

    扫二维码,立即预约试用!


    ↓↓↓ 点击"阅读原文" 【查看源码】  

    登录查看更多
    0

    相关内容

    Google发布的第二代深度学习系统TensorFlow
    一份循环神经网络RNNs简明教程,37页ppt
    专知会员服务
    168+阅读 · 2020年5月6日
    Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
    专知会员服务
    126+阅读 · 2020年3月15日
    《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
    专知会员服务
    136+阅读 · 2020年3月1日
    TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
    专知会员服务
    68+阅读 · 2020年1月17日
    一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
    【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
    专知会员服务
    20+阅读 · 2019年12月31日
    【书籍】深度学习框架:PyTorch入门与实践(附代码)
    专知会员服务
    160+阅读 · 2019年10月28日
    【年度系列】使用LSTM预测股票市场基于Tensorflow
    量化投资与机器学习
    19+阅读 · 2018年10月16日
    基于 Keras 用深度学习预测时间序列
    R语言中文社区
    23+阅读 · 2018年7月27日
    手把手教你用Python库Keras做预测(附代码)
    数据派THU
    14+阅读 · 2018年5月30日
    一个小例子带你轻松Keras图像分类入门
    云栖社区
    4+阅读 · 2018年1月24日
    深度学习基础之LSTM
    全球人工智能
    26+阅读 · 2017年12月18日
    Tensorflow 文本分类-Python深度学习
    Python程序员
    12+阅读 · 2017年11月22日
    tensorflow系列笔记:流程,概念和代码解析
    北京思腾合力科技有限公司
    30+阅读 · 2017年11月11日
    在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
    北京思腾合力科技有限公司
    4+阅读 · 2017年8月9日
    深度学习实战(二)——基于Keras 的深度学习
    乐享数据DataScientists
    15+阅读 · 2017年7月13日
    3D Face Modeling from Diverse Raw Scan Data
    Arxiv
    5+阅读 · 2019年2月13日
    Arxiv
    3+阅读 · 2018年5月20日
    Arxiv
    5+阅读 · 2018年1月16日
    VIP会员
    相关VIP内容
    一份循环神经网络RNNs简明教程,37页ppt
    专知会员服务
    168+阅读 · 2020年5月6日
    Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
    专知会员服务
    126+阅读 · 2020年3月15日
    《强化学习—使用 Open AI、TensorFlow和Keras实现》174页pdf
    专知会员服务
    136+阅读 · 2020年3月1日
    TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
    专知会员服务
    68+阅读 · 2020年1月17日
    一网打尽!100+深度学习模型TensorFlow与Pytorch代码实现集合
    【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
    专知会员服务
    20+阅读 · 2019年12月31日
    【书籍】深度学习框架:PyTorch入门与实践(附代码)
    专知会员服务
    160+阅读 · 2019年10月28日
    相关资讯
    【年度系列】使用LSTM预测股票市场基于Tensorflow
    量化投资与机器学习
    19+阅读 · 2018年10月16日
    基于 Keras 用深度学习预测时间序列
    R语言中文社区
    23+阅读 · 2018年7月27日
    手把手教你用Python库Keras做预测(附代码)
    数据派THU
    14+阅读 · 2018年5月30日
    一个小例子带你轻松Keras图像分类入门
    云栖社区
    4+阅读 · 2018年1月24日
    深度学习基础之LSTM
    全球人工智能
    26+阅读 · 2017年12月18日
    Tensorflow 文本分类-Python深度学习
    Python程序员
    12+阅读 · 2017年11月22日
    tensorflow系列笔记:流程,概念和代码解析
    北京思腾合力科技有限公司
    30+阅读 · 2017年11月11日
    在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
    北京思腾合力科技有限公司
    4+阅读 · 2017年8月9日
    深度学习实战(二)——基于Keras 的深度学习
    乐享数据DataScientists
    15+阅读 · 2017年7月13日
    Top
    微信扫码咨询专知VIP会员