本文选自《交易技术前沿》第二十六期 (2017年03月)。
楼昊,车延辙,任丽颖,韩兴
上海金融期货信息技术有限公司
摘要:强化学习(Reinforcement Learning)是近年来机器学习和智能控制领域的主要方法之一。强化学习关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积期望回报。相比其他机器学习方法,强化学习更接近生物学习的本质,因此有望获得更高的智能,这一点在棋类游戏中已经得到体现。
本文将对强化学习在股指预测中的应用进行初步探索。通过强化学习算法,使得智能体可以自适应地跟随当前行情环境进行主动学习开平仓等动作,以适应行情的演变和发展。
关键词:强化学习、智能体、股指预测、主动学习
机器学习算法大致可以分为有监督学习、无监督学习、弱监督学习。强化学习属于弱监督学习范畴。假设我们要构建一个下国际象棋的机器人,这种情况下我们无法使用监督学习。首先,通过遍历所有棋步序列来确定当前棋步对最终胜负产生的影响是不现实的,代价过于昂贵。其次,每个棋步好坏判断不是孤立的,要依赖于对手的选择和局势的变化,一系列棋步组成的序列决定了最后是否能够赢得比赛。即无法把当前棋步直接与最终的胜负标签进行映射。下棋过程唯一的反馈是在最后赢得或是输掉棋局时才产生的。这种情况我们可以采用强化学习算法,通过不断的探索和试错学习,强化学习可以主动学习得到某种下棋的策略,并在每个棋局(状态)下选择采取最有可能获胜的棋步(动作)。目前这种算法已经在棋类游戏中得到了广泛应用,如战胜人类围棋高手的AlphaGo便采用了强化学习算法。
相比其他学习方法,强化学习更接近生物学习的本质,因此有望获得更高的智能。下面这张图简化建模了人与环境的交互过程。在每个时间点t,大脑都会根据当前所处的状态st从可以选择的动作集合A中选择一个动作at执行,而任务的目标就是通过与环境状态的不断交互,自适应选择调整当前状态下的执行动作,以期获取尽可能多的平均累积回报(reward)。每个时间片,大脑根据当前的观察来确定下一步的动作。每次的观察就作为大脑所处的状态state,因此,状态State和动作Action存在映射关系,也就是一个state可以对应一个action,或者对应不同动作的概率。那么state到action的映射就称之为一个策略Policy,一般用π表示。学习训练的过程就是找到最优的策略π*,从而使得累积回报(reward)的期望最大。
强化学习不像有监督学习的分类或者回归问题,有特定的标记样本。由于没有直接的指导信息,智能体要以不断与环境进行交互,通过试错的方式来获得最佳策略,即try and fail的特性。此外,强化学习的指导信息很少,而且往往是在事后(如上述,下棋需在最后一个状态才能分出胜负)才给出的,即常常有延迟回报的特点。
强化学习为机器学习算法在量化策略中的应用提供了一种不同的思路和范式。不同于常见的有监督学习算法如SVM、神经网络等可以直接给出预测的涨跌值或者涨跌分类,强化学习关心的是在当前市场行情、当前自身持仓等信息状态下应该采取的动作(简单的单品种动作集可以是做多、做空、保持不变,复杂的动作集可以是对某一品种或者某些品种进行开平买卖等),以期最大化预先设定的长期回报(如最大化收益率、最大化夏普比等)。下面将对强化学习进行建模并探讨求解最优策略的常见方法。
传统的任务在环境模型已知的情况下,常用马尔科夫决策过程来建模描述。马尔科夫决策一个马尔可夫决策过程由一个四元组构成M = <A,S,R,P>,如下图:
A:表示动作集(actions),有at∈A,at表示第t步执行的的动作。
P:表示状态转移概率。Psa表示的是在当前状态s∈S下,经过a∈A作用后,转移到其他状态的概率分布。在状态s下执行动作a,转移到s'的概率可以表示为p(s'|s,a)。
R:表示回报函数(reward function)。在状态s下执行动作a转移到了下个状态s',获得的立即回报可记为r(s, a, s')。如果对应的下个状态s'是唯一的,那么回报也可以记为r(s,a)。
一个典型的MDP 动态过程如下:某个智能体(agent)的初始状态为s0,然后从 A 中挑选一个动作a0执行,执行后,agent 按ps0a0概率随机转移到了下一个s1状态。然后再执行下一个动作a1,转移到了s2,接下来再执行a2…,我们可以用下面的序列表示该过程。
假设上述过程中agent是依据策略π来决定在当前状态s下应该执行的动作a,即π(s)= a,我们得到如下状态值函数V(state value function)来表示agent在当前状态s下未来依循策略π执行后续动作的长期平均影响。
动态规划法求解最优策略,可分为策略估计(policy evaluation)和策略改进(policy improvement)两步
在某策略π下,如果π(s)对应的动作a有多种可能,每种可能的概率记为π(a|s),则状态值函数表示如下:
对当前策略π进行策略估计之后,为了寻找更好的策略,需要进行策略改进。根据贝尔曼最优性方程,可以得到策略改进定理(policy improvement theorem): 和 是两个确定的策略,如果对所有状态s∈S有Qπ(s, (s))≥Vπ(s),那么策略 必然比策略 更好,或者至少一样好。其中的不等式亦等价于Vπ'(s)≥Vπ(s)。
通过策略改进定理,可以遍历所有状态和所有可能的动作a,并采用贪心算法来获得新策略 。即对所有的s∈S, 采用下式更新策略:
通过不断迭代策略评估、策略改进过程,可以得到最优策略π*,整个算法如下:
上述策略迭代算法包含了多个策略估计的过程,而策略估计则需要遍历描所有的状态若干次,计算效率比较低。值迭代算法可以在保证算法收敛的情况下,减少计算量。它每次迭代只扫描每个状态一次,对所有的s∈S按照下列公式更新:
许多环境模型已知(状态转移概率等参数已知)的强化学习模型用上述动态规划的技巧来求解。动态规划的优点在于它有很好的数学上的解释,但是动态规划要求一个完全已知的环境模型,这在现实中是很难做到的。另外,当状态数量较大的时候,动态规划法的效率也将是一个问题(如在围棋中状态集大小是非常巨大的,遍历所有可能的状态不太现实)。
由于大部分任务下环境模型是未知的,很难获得状态转移矩阵等参数,即上述算法中p(s'|s,a)等参数难以确定,特别对于金融时序分析,本身带有非稳态特性,使得策略评估(状态值函数V、状态动作值函数Q)无法直接计算。为了评估某策略π下某状态s的值函数V(s),可以通过蒙托卡罗模拟进行。估计Vπ(s)的一个明显方法是对于所有到达过该状态的回报取平均值,如下图方式:
SARSA算法在更新动作值函数时遵循的策略和选择执行的动作时遵循的策略是相同的,我们称为On-Policy。而Q-learning是另一个较常用的强化学习求解最优策略的算法,其使用如下公式更新状态动作值函数:
Q-learning算法最大的不同在于更新Q值的时候,直接使用了最大的Q(st+1,a)值,与当前执行的策略,即选取的当前动作at时采用的策略无关,我们称为Off-Policy。算法流程如下:
至此,我们可以在离散状态空间中使用强化学习算法在线规划求解最优的策略,然而现实中很多系统的状态是用连续变量刻画的,即状态是连续的,状态数是无穷的。我们使用连续函数V(s;k)来拟合(approximate)真实的状态值函数,其中k是函数参数,函数可以是简单的线性模型,也可以是复杂的神经网络。那么评估值函数就变成寻找最优的参数k,使得拟合的连续函数V(s;k)最接近未知的值函数V(s),即
我们实验中采用线性函数来拟合,如下
其中n是状态向量维度,i(•)是原始观测数据的变换函数。如此,Q-learning中连续状态的值函数更新方式(找到最优的参数k)变为:
其中a为学习率。
通过上述基础知识的介绍,可以知道一个强化学习模型,需要明确状态描述、动作集合、回报函数等基础元素。下面结合股指行情,设计一个可行的基于强化学习的股指“预测”系统。
使用过去L(实验中取L=5)个交易日的sharpe ratio作为当前立即回报,即
如前所述,对于连续状态,我们需要一个连续函数来近似拟合值函数,本实验采用如下状态动作值函数来拟合真实的值函数:
Q-learning算法有一个exploration的过程,以找到更好的最优解。此处采用ε-greedy策略进行exploration的过程。
我们使用2010/11/01~2016/11/01的HS300股指日数据进行回测,考虑手续费,未考虑滑点。测试结果如下图所示。红色的线是策略收益(点数),蓝色的线是大盘走势。初始时候,由于有个参数学习的过程,表现一般,到后来可以快速对行情作出反应,适应行情演变,一定程度上表现了强化学习的潜力。
本文主要对强化学习进行介绍,并通过简单的回测、分析,对其在行情预测方面进行初步探索,以确定该算法是否适用于金融行情分析。通过实验可以发现,在一定程度上强化学习通过不断实时自适应学习,可以较好地对行情作出反应,表现出较有前景的潜力。未来,我们将对强化学习进行进一步的研究,深入了解其内涵与本质,改进其存在的问题,结合金融业务,重新设计状态表示、连续函数模型等,以期取得更好的结果。此外,强化学习与深度学习结合而成的深度强化学习,已在围棋等领域表现出了强大的能力,亦将作为我们未来探索的方向。
[1]Barto A.G., Sutton R.S. (1998), Reinforcement Learning: An Introduction. Adaptive Computation and Machine Learning. The MIT Press
[2]F Bertoluzzo, M Corazza. (2012), Reinforcement Learning for automatic financial trading: Introduction and some applications. Ssrn Electronic Journal
[3]James Cumming, Dr. Dalal Alrajeh (2015), An Investigation into the Use of Reinforcement Learning Techniques within the Algorithmic Trading Domain.
[4]Gold C. (2003), FX trading via recurrent Reinforcement Learning, Proceedings of the IEEE International Conference on Computational Intelligence in Financial Engineering.
[5]D Silver, A Huang, CJ Maddison etc. (2016), Mastering the game of Go with deep neural networks and tree search, Nature.
文章转自微信公众号:上交所技术服务
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论