论文解读:Model-based Deep Reinforcement Learning for Dynamic Portfolio Optimization
大家好,我是知识就是力量,致力于分享我将知识用于变现的思考。
这是我基于Web3的第一篇分享。随着时代的发展,我逐渐从传统的平台(知乎),向Web3平台转移,但分享知识的初衷是不变的。
今天介绍的这篇论文是基于深度强化学习去做投资组合优化的论文。论文中采用了Model-Based RL,想必大家是比较感兴趣的。这篇文章的主要创新点在于,设计了几个帮助强化学习的模型:
预测模块(IPM,Infused Prediction Module)
基于生成对抗的数据增广模块(DAM,Data Augmentation Module)
行为学习模块(BCM,Behavior Cloning Module)
总的来说把量化和RL领域的几个Trick进行了大杂烩,然后这些东西都与DDPG结合起来,看起来还是很有道理的(没有道理我们就不会解读了)。
对于资产组合管理问题的建模,本文没有特别说折扣因子是否为0。在与一些Model-Free的论文作者讨论中,有大神认为交易问题中,完全观察的假设(折扣因子为0)是不对的,这个我才疏学浅,不敢妄下断言。但是我个人觉得交易和打FPS游戏有异曲同工之妙,在任意时刻其实都不能看到整个世界,所以更类似于PO-MDP(Partial Observed MDP),然后就开始挑战Bellman方程的有效性了……这实在是我等工程师无法涉足的领域,还请理论大神们赐教。
但是即使理论不牢靠,我们也已经见识到RL在游戏领域的强大威力了。所以我们也许可以暂时把理论问题放在一旁,先讨论比较具体的问题(说到底深度技术本身就是一个实验先行的领域)。总之强化交易系统可以看作如下图的架构:

其实就是一个环境(MSE部分),加上数据处理模块(DH),加上交易的Agent(AE)。我们可以看到IPM、DAM和BCM都是外挂在Agent上的,因此这个架构其实是可以作为一个通用架构去推广。具体来讲Agent的架构如下图所示:

先拿掉IPM、DAM、BCM,我们看到的就是非常经典的Actor-Critic+Replay Memory架构。我们来详细解释一下新模型的用处:
IPM和特征提取器(FE)一样读取原始的价格信息,输出再与特征连结起来,也就是把价格预测作为外挂特征提取器了。IPM是用非线性玻尔兹曼机(NDyBM)或者WaveNet实现的。
BCM,顾名思义是动作拷贝,这是RL里面比较经典的技术了。个人认为BC是比较类似于有监督学习的,那么这里的监督信号,就是使得当天利润最大化的调仓比例(可以通过读取下一天的价格,求解优化问题算出来)。当天利润最大化的调仓比例,和策略网络给出的调仓比例之间,存在Loss,就可以计算梯度。Policy Gradient和有监督Gradient通过一个比例进行调整,就可以保证策略更新不会过度偏离当天利润最优解(好像有点PPO的意思?)。BCM只对策略网络有影响,对于估值是没有影响的。
DAM,就是用RGAN(Recurrent GAN)去生成时间序列,解决历史数据较少的问题(实验做的小时线,还少吗?)。
实验部分,是在美股小时线上做的,考虑了0.2%的交易佣金和0.5%的滑点,条件还是比较苛刻了。模型看到的状态是当前归一化价格矩阵+上一时刻的资产权重。我们先来看看结果:

具体分析,IPM可以提高收益,但是有过拟合的可能性,增加风险。IPM+DAM可以降低风险但是收益也同时降低了,所以再加上BCM又可以把收益补回来。总之就是以毒攻毒抵消所有不利因素剩下全是好的这个样子(有点像段誉、令狐冲这类龙傲天的成长套路)。最后文章指出这个框架不仅可以用于DDPG这类Off-Policy的算法,也可以用于PPO这类On-Policy的。
其实个人觉得所谓Model-Based,应该是对价格走势建模这些吧。DAM、BCM是做的数据增广、Loss正则化这类的改进,唯有IPM算是Model-Based部分,但是直接预测价格显得过于简单粗暴了。对于噪声很大的金融序列来说,Feature Engineering还有很大的潜力可挖,当然这就和RL关系不大了。
(PS,题图这个买卖信号图感觉好强大,高抛低吸步步为营,为什么我就训练不出来?!)
(PS1,文章附录有很多信息,值得一看)

