分类
外匯交易平臺

利用强化学习创建自动交易机器人

大家可能还记得 AlphaGo 成功击败世界顶级象棋选手李世石的新闻。下象棋有太多太多组合的下法,而机器也无法记住所有的组合。在每个回合中,它只是为每种情况选择了最佳动作。 这种方法就是Q-learning,以及其衍生算法SARSA和DQN背后的核心概念。这里的“Q”代表的是质量,因为机器需要学会在每种情况下执行最“定性”的操作,并且所有情况都会被记忆(马尔可夫过程)。

Reinforcement Learning Toolbox

借助该工具箱,您可以使用深度神经网络或查找表来表示策略和价值函数,并使用 MATLAB ® 或 Simulink 创建环境模型,通过与环境交互来训练策略和函数。您可以评估该工具箱中提供的单智能体或多智能体强化学习算法,也可以开发自己的算法。您可以使用超参数设置进行试验,监控训练进度,并通过 App 以交互方式或编程方式仿真经过训练的智能体。为了提高训练性能,可以在多个 CPU、GPU、计算机集群和云上并行运行仿真(需要 Parallel Computing Toolbox™ 和 MATLAB Parallel Server™)。

通过 ONNX™ 模型格式,可以从 TensorFlow™ Keras 和 PyTorch 等深度学习框架导入已有策略(需要 Deep Learning Toolbox™)。您可以生成优化的 C、C++ 和 CUDA ® 代码,以便将经过训练的策略部署到微控制器和 GPU。该工具箱包括参考示例,可帮助您快速入门。

强化学习智能体

在 MATLAB 和 Simulink 中创建和配置强化学习智能体来训练策略。可以使用内置的强化学习算法,也可以开发自定义算法。

强化学习算法

使用深度 Q 网络 (DQN)、深度确定性策略梯度 (DDPG)、近端策略优化 (PPO) 和其他内置算法创建智能体。使用模板开发自定义智能体,以用于训练策略。

直播 | 基于深度增强学习的量化交易机器人:从AlphaGo到FinRL的演变过程-爱代码爱编程

深度强化学习(DRL)被公认为量化投资中的有效方法,量化交易的初学者有兴趣获得上手操作的经验。训练实用的DRL交易agent,决定交易仓位,交易价格和交易数量,可能面临很陡的学习曲线,也可能需要很有挑战性的开发,调参和测试。本期#领读计划#,特邀 AI4Finance合伙人 Bruce Yang,为大家介绍一个名为FinRL的库,帮助初学者基于DRL开发交易策略。FinRL基于完整性、易上手和可重复三个原则为初学者获得实战经验铺平道路。用户可以根据交易场景例如股票交易、资产配置、高频交易或者比特币交易从FinRL中选取环境配置,然后调取最先进的DRL算法进行模型训练和模拟交易。FinRL提供端到端的解决方案。

202102 第十期 #领读计划# 活动流程

1,分享话题:基于深度增强学习的量化交易机器人:从AlphaGo到FinRL的演变过程

2,领读人:Bruce Yang,美国哥伦比亚大学 数据科学方向 利用强化学习创建自动交易机器人 master毕业,6年数据科学工作经验,曾在华尔街投行就职,现任AI4Finance合伙人。

3,时间:2月28日(周日) 北京时间 20:00

4,地点:腾讯会议 (可在直播时开麦语音交流),哔哩哔哩直播间(转播)。

知识星球成员

非知识星球成员

非知识星球会员可观看B站转播。关注【运筹OR帷幄】公众号,后台回复 “领读计划” 获取直播链接。

哔哩哔哩(转播链接):

https://live.bilibili.com/21459168

5,参考文链接:(后台回复“202102”可获得本期分享材料pdf版)

6,分享提纲:

-介绍AlphaGo → AlphaGo Zero → AlphaZero → MuZero的演变,以及近期在生物工程上取得的重大成就

7,活动须知周日(2月28日)20点00分前会在知识星球内发帖提醒,大家可以调试网络环境进入语音室,并做自我介绍。领读人先讲解领读材料或对领读话题发表自己见解(20-30分钟),后续就话题或更general的topic自由交流(开放麦克权限)

#领读计划#往期活动

知识星球另一重磅活动

#OR会客厅#往期内容

『运筹OR帷幄数据&算法社区』知识星球开展的 #OR会客厅#,每月一次(与#领读计划#交替)邀请业界、学界大咖,亦或是“平易近人”的学长学姐,与大家分享 学习或职业经历|留学申请经验|考研考博经验|发表Paper经验 ,组织大家一起“复刻”嘉宾的人生轨迹。

与【运筹OR帷幄】其他线上直播系列的最大区别:(尽量)不聊学术,(尽量)不谈技术,只谈个人经历和人生经验,开麦语音交流!

【机器学习系列】强化学习 & 集成学习

强化学习 百度百科中的解释为“描述和解决智能体(Agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题”,其本质是为了实现自动决策。 强化学习4大要素:Agent、Environment、Action、Reward

主要应用于: – 自动驾驶汽车
– 扫地机器人 – 游戏 – 自动交易 利用强化学习创建自动交易机器人 – 企业资源管理

为方便大家理解4要素的概念,我们来举个马里奥的例子。 首先马里奥不是由我们操控,而是通过强化学习的模型自动进行游戏。
这里马里奥就是Agent,游戏中的各种障碍物、下水道、怪物就是马里奥所处的环境(Environment),而马里奥需要通过跳跃不断躲避障碍并到达终点,所以这里的跳跃就是行动(Action)。那么这里Reward是什么呢?当马里奥成功躲避障碍时给他加1分,躲避障碍物失败而触碰到怪物时给他减1分,以此类推当他操作得当时加分,操作不当时减分。最终的目标是通过最大得分完成游戏,即获得最大回报(Reward)。

其实强化学习所解决的问题与数据无关,为什么这么说呢? 以自动驾驶为例,即使我们了解世界上所有的道路规则,也没有办法教会汽车自动驾驶。无论我们收集了多少数据,我们仍然无法预见所有可能的情况。这就是为什么强化学习的目标是最小化错误,而不是预测所有的移动。
在环境中生存是强化学习的核心理念。就好比在教育小孩子一样,当他做对了就给他奖励,当他做错了就给他惩罚。

这里又分为两种不同的训练方法,一种是基于模型的训练,另一种是无模型训练。 1. 基于模型意味着汽车需要记住地图。这是一个非常过时的方法,因为这辆自动驾驶汽车不可能记住整个星球。 2. 在无模型学习中,汽车不会记住每一个动作,而是试图评估环境并合理地做出行动,同时获得最大的奖励。 利用强化学习创建自动交易机器人

大家可能还记得 AlphaGo 成功击败世界顶级象棋选手李世石的新闻。下象棋有太多太多组合的下法,而机器也无法记住所有的组合。在每个回合中,它只是为每种情况选择了最佳动作。 这种方法就是Q-learning,以及其衍生算法SARSA和DQN背后的核心概念。这里的“Q”代表的是质量,因为机器需要学会在每种情况下执行最“定性”的操作,并且所有情况都会被记忆(马尔可夫过程)。

就像这样,机器可以在虚拟环境中测试数十亿个情况,记住哪些解决方案带来了更大的回报。但是,它如何区分以前看到的情况和全新的情况呢?如果一辆自动驾驶汽车在过马路时信号灯变绿了,那么,这是否就意味着现在可以行驶?如果有救护车冲过附近的街道怎么办? 对普通人来说,强化学习看起来像是真正的人工智能。因为它让你觉得,这是机器在现实生活中自己做出了决定!而不是人为的干预。 近几年强化学习被大肆宣传,并且它以非常惊人的速度在发展,并与神经网络不断交叉结合使用.

集成学习 百度百科中的解释为,集成学习(ensemble 利用强化学习创建自动交易机器人 learning)是通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)。

主要应用于: – 适用于所有传统机器学习方法(效果更佳) 利用强化学习创建自动交易机器人
– 搜索系统 – 计算机视觉 – 物体检测

常见算法:随机森林,梯度提升等
现如今集成学习和神经网络作为机器学习领域提升模型准确度的非常有效的方法,广泛用于生产。 相比神经网络的概念铺天盖地,集成学习中的Bagging、Boosting、Stacking等概念却很少被人提及。集成学习背后的想法其实很简单,就是利用一些相对效率比较低下的算法,使他们相互纠正彼此的错误,就好比“少数服从多数”,使得系统整体的模型质量高于任何单个算法的结果。

3种集成学习方法
1. Stacking
Stacking是通过一个元分类器或者元回归器来整合多个分类模型或回归模型的集成学习技术。基础模型利用整个训练集做训练,元模型将基础模型的特征作为特征进行训练。 简单来讲就是 几个并行模型的输出作为输入传递给最后一个,做出最终决定。就好比你在约一个女孩子吃饭,那个女孩子不知道自己该不该出来和你吃饭,于是她就找好几个闺蜜询问是否应该与你见面,以便自己做出最终决定。 这里强调“不同”这个词。在相同的数据上并行相同的算法是没有意义的。 而具体选择何种算法,完全取决于个人。 但是,对于最终决策模型,回归通常是一个不错的选择。 通常情况下Stacking在实践中不太受欢迎,因为另外两种方法提供了更好的准确性。

2. Bagging Bagging是在原始数据的不同数据子集上,使用相同的算法进行训练。最后寻求平均值。 当然随机子集中的数据可能会有重复。例如,从“1-2-3”这样的集合中我们可以得到像“2-2-3”,“1-2-2”,“3-1-2”等子集。我们在这种新数据集中,运用相同的算法,然后通过简单的投票方式预测最终答案。


3. Boosting Boosting指的是通过算法集合将弱学习器转换为强学习器。boosting的主要原则是训练一系列的弱学习器,所谓弱学习器是指仅比随机猜测好一点点的模型,例如较小的决策树,训练的方式是利用加权的数据。 简单来讲,Boosting算法按顺序逐个训练。随后的每一个学习器都将其大部分注意力集中在前一个错误预测的数据点上。 一直重复,直到符合你的要求。 与Bagging相同,Boosting也会使用数据集合的子集,但这次它们不是随机生成的。 然后在每个子集中,我们采用先前算法未能处理的部分数据。因此,新的算法会修复上一个算法的错误。

利用强化学习创建自动交易机器人

image1_v2-f4e6890059f34c12e1222fbed69c8595

机器人和工业自动化

image2-646dd57cfdd862da8bb3a948439f9bc0

  • 你正在使用模拟器,因为系统或过程对于通过试错来训练机器来说太复杂(或者物理上过于危险);
  • 你正在处理大状态空间;
  • 你正寻求通过优化运营效率和提供决策支持来增强人类分析师和领域专家的能力。

数据科学和机器学习

教育和培训

保健和医学

文字,语音和对话系统

传媒和广告

与任何新科技一样,运用强化学习的关键在于了解其优缺点,然后找到简单的应用场景来尝试。我们应该抵制AI的炒作。相反,我们应该地把强化学习看成是有用的机器学习技术的一种,即便它是一种最适合于特定类别的问题的技术。 我们刚刚开始在企业应用中看到强化学习的身影。伴随着对算法的不断研究,许多软件工具(库、模拟器、分布式计算框架,如Ray、SaaS)开始出现。 不过可以肯定的是,这些工具很少是针对行业应用所感兴趣的用户的。但是,已经有几家初创公司将强化学习纳入其产品。所以,在你知道之它们的存在之前,你可能很快就会从强化学习和相关技术的发展中受益。