资源 | 基于OpenAI Gym的股票市场交易环境
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
选自Github
机器之心编译
参与:李泽南
机器学习在股票市场中的应用一直是个吸引人的研究方向,前不久瑞士金融数据顾问的《如何用 Python 和机器学习炒股赚钱?》引起了很多人的关注。目前,在 GitHub 上已经出现了基于 OpenAI Gym 的股票市场交易环境,该项目使用 Keras,支持 Theano 与 TensorFlow,可以帮助开发者导入各类股票市场的交易数据,构建自己的长线交易模型。希望它能为你的研究提供帮助。
项目地址:https://github.com/kh-kim/stock_market_reinforcement_learning
概述
本项目使用 OpenAI Gym 为股票交易市场的模拟提供了一个通用环境。训练数据为每天的收盘价,收集自 Google Finance,当然,你也可以导入其他自己希望使用的数据。另外,它还包含 Andrej Karpathy 曾经提到过的简单 Deep Q-learning 和策略梯度算法。
Andrej Karpathy 的博文《Deep Reinforcement Learning: Pong from Pixels》:http://karpathy.github.io/2016/05/31/rl/
该环境的开发者表示,这个项目不仅是为了帮助人们在股票交易市场中找寻最好的强化学习解决方案,更是通用和开放环境的一部分。
环境需求
- Python2.7 或更高版本
- Numpy
- HDF5
- Keras 和其基础(Theano 和 TensorFlow 皆可)
- OpenAI Gym
使用
注意:用于训练的示例数据来自韩国股票市场,如果你想训练本国股票市场的交易数据,请自行下载并导入。
在满足以上开发环境后,你就可以在此之上训练自己的算法、Deep Q-leanring 和策略梯度算法了。
训练 Deep Q-leanring:
训练策略梯度算法:
例如,你可以这样做:
目前,该项目中的神经网络架构略显简单,如果你试图学习每个股票的数据,模型会欠拟合。它只适合 10-100 支股票数年内的数据。作者欢迎其他贡献者提供更好的模型。
下图是 KOSPI 市值前十的股票近四年内的数据,使用了策略梯度算法。
下一步计划
- 测试环境、检查过拟合
- 阐述 PG 的训练接口
参考文献
[1] Playing Atari with Deep Reinforcement Learning:https://arxiv.org/abs/1312.5602
[2] Deep Reinforcement Learning: Pong from Pixels:http://karpathy.github.io/2016/05/31/rl/
[3] KEras Reinforcement Learning gYM agents, KeRLym:https://github.com/osh/kerlym
[4] Keras plays catch, a single file Reinforcement Learning example:http://edersantana.github.io/articles/keras_rl/
本文为机器之心编译,转载请联系本公众号获得授权。
沃尔玛跨境电商平台规则 沃尔玛跨境电商平台运营技巧
沃尔玛跨境电商平台,沃尔玛跨境电商平台好做吗,沃尔玛跨境电商平台一件代发可靠吗,沃尔玛跨境电商运营技巧-
三零站长QQ
-
广告合作QQ
-
网赚交流群
- 文章5579
- 分类11
- 标签593
- 留言52283
- 链接
- 浏览2765805
- 今日10
- 本周28
- 运行2676 天
- 更新2023-2-16
进大厂全靠自学,微软&头条实习生现身说法:我是这样自学深度学习的
去微软公司需要什么学历,进微软要学什么专业,去微软工作好吗,想去微软工作大学学什么专业转载于 量子位
跟着网络资料自学、刷MOOC是许多人学深度学习的方式,但深度学习相关资源众多,应该从哪儿开始学呢?
富有自学经验的GitHub用户Sanny Kim贡献出了一份深度学习自学指南。
她自学成才,有Udacity、deeplearning.ai、Coursera的一大堆课程认证,甚至连大学都是上的以自学、MOOC著称的Minerva大学,自学卓有成效,曾经在微软做实习软件工程师,现在则是字节跳动(头条)AI实验室的机器学习实习生。
下面,就让我们来看看这份自学指南都包含什么内容吧。由于资料课程非常多,建议大家存下来慢慢看。
作为深度学习从业者,最重要的基础,一是代码,二是数学。
代码的选择毋庸置疑,一定要学Python,毕竟这是当今深度学习界最火的语言,没有之一。
而数学一样重要,虽然数学常常难倒英雄汉,不过如果你只是想把深度学习拿来在你的领域试用的话,暂时不需要搞明白太多数学基础,
但是,Sanny Kim建议,熟知数学理论基础,使用深度学习框架会更易懂,因此需要一定的微积分、线性代数和统计学基础,
Python可以选择下面的课程:
MIT 6.0001课程https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA
CodeCademyhttps://www.codecademy.com/learn/learn-python
如何像计算机科学家一样思考http://interactivepython.org/runestone/static/thinkcspy/index.html备用链接:https://runestone.academy
哈佛CS50https://www.edx.org/course/cs50s-introduction-to-computer-science
哈佛CS50课程里Python讲得比较少,如果你喜欢阅读,可交互的在线书《如何像计算机科学家一样思考》会更适合你。
微积分方面有几个必须搞懂的概念:微分,链式法则和偏导数。
数学基础好、想要快速学习微积分的同学请戳:
MIT 18.01 单变量微积分https://www.youtube.com/watch?v=jbIQW0gkgxo&t=1s
数学不太好的同学请戳:
伦纳德教授的微积分1https://www.youtube.com/watch?v=fYyARMqiaag&list=PLF797E961509B4EB5
已经学过需要复习一下,或者几乎放弃治疗、只想简单了解一下的同学请戳:
可汗学院微积分1https://www.khanacademy.org/math/calculus-1
补充材料:
3Blue1Brown 微积分的本质https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr
线代方面有几个必须搞懂的概念:向量,矩阵,矩阵运算,包括加减乘除逆运算。
还是一样,想认认真真搞懂线代的同学请戳:
MIT 18.06 线性代数https://www.youtube.com/watch?v=ZK3O402wf1c&list=PLE7DDD91010BC51F8
走马观花的同学请戳:
可汗学院线性代数https://www.khanacademy.org/math/linear-algebra
戳这个来了解更多实际的写代码方法:
Rachel Thomas的计算线性代数https://www.youtube.com/watch?v=8iGzBMboA0I&index=1&list=PLtmWHNX-gukIc92m1K0P6bIOnZb-mg0hY
补充材料:
斯坦福CS229线性代数复习资料http://cs229.stanford.edu/p/cs229-linalg.pdf
3Blue1Brown 线性代数的本质https://www.youtube.com/watch?v=kjBOesZCoqc&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
概率统计方面有几个必须搞懂的概念:平均值,标准差,分布,采样,贝叶斯定理。
哈佛统计110https://www.youtube.com/watch?v=KbB0FjPg0mw&list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo
可汗学院概率统计https://www.khanacademy.org/math/statistics-probability
Brandon Foltz统计学101https://www.youtube.com/user/BCFoltz/videos
补充材料:
斯坦福CS229概率统计复习资料http://cs229.stanford.edu/p/cs229-prob.pdf
列了这么多数学课,你要是觉得上面这三门课学起来太累,可以只看和深度学习、机器学习相关的部分,那么安利你学习下面这两份材料:
深度学习需要的矩阵微积分作者:Terence Parr,Jeremy Howardhttps://arxiv.org/abs/1802.01528不想看pdf的手机用户可戳:https://explained.ai/matrix-calculus/index.html
MIT 18.065 数据分析、信号处理和机器学习中的矩阵方法(2018)作者:Gilbert Stranghttps://www.youtube.com/playlist?list=PLUl4u3cNGP63oMNUHXqIUcrkS2PivhN3k
当然,因为数学嘛,毕竟是门大杀器,要是实在学不下去,可以先开始学下面的深度学习部分,看到哪儿原理不懂了,再回来翻资料理解一下。
现在,恭喜你学会了Python,还搞懂了一部分数学理论知识,终于可以开始学正儿八经的深度学习了。
深度学习入门非常重要的两套课程,分别是
吴恩达的deeplearning.aihttps://www.coursera.org/specializations/deep-learning
Jeremy Howard和Rachel Thomas的fast.aihttp://course.fast.ai/
这两份资料在深度学习MOOC领域几乎无人不知无人不晓了,吴恩达的课程重视理论解释,fast.ai更侧重编码,Sanny Kim是这样学这两套课程的:
1、先看deeplearning.ai的1、2、4、5;2、在看fast.ai的第一部分;3、看deeplearning.ai的3;4、(可选)做deeplearning.ai的作业;5、把上面的1~4复习一遍。
fast.ai从第二部分开始相对比较难,建议后面再学。另外,想充分利用fast.ai,最好有一块GPU,没有的话就去薅Google羊毛,学习使用Colab(反正将来一定会用到的)。
攻略:学fast.ai,用Colabhttps://towardsdatascience.com/fast-ai-lesson-1-on-google-colab-free-gpu-d2af89f53604
最后,给读书党安利:
神经网络与深度学习作者:Michael Nielsenhttp://neuralnetworksanddeeplearning.com/
不能光靠MOOC学深度学习,下面这些视频课程也要学习了解一下:
3Blue1Brown的神经网络https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi
Computerphile的神经网络https://www.youtube.com/playlist?list=PLzH6n4zXuckoezZuZPnXXbvN-9jMFV0qh
Brandon Rohrer的神经网络https://www.youtube.com/watch?v=ILsA4nyG7I0
Python实用机器学习教程https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v
刷博客也是自学的重要途径,这里一些经典博客可以作为学习资料:
在处理可视化和动量方面做得非常好的Distill.pubhttps://distill.pub/
Andrej Karpathy的老博客http://karpathy.github.io/
深度强化学习https://simoninithomas.github.io/Deep_reinforcement_learning_Course/
Towards Data Sciencehttps://towardsdatascience.com/
Jupyter笔记本:
Jupyter入门https://www.youtube.com/watch?v=HW29067qVWk
DataCamp Jupyter教程https://www.datacamp.com/community/tutorials/tutorial-jupyter-notebook?utm
Jupyter的坑,请注意避开https://docs.google.com/presentation/d/1n2RlMdmv1p25Xy5thJUhkKGvjtV-dkAIsUXP-AL4ffI/preview?slide=id.g3b600ce1e2_0_0
NumPy:
斯坦福CS231 Numpy教程http://cs231n.github.io/python-numpy-tutorial/
DataCamp Numpy
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。