楼主: Dear_Li
4209 1

[其他] 量化投资:基于强化学习的GridWorld(代码+思路) [推广有奖]

  • 0关注
  • 14粉丝

等待验证会员

博士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
686 个
通用积分
7.6246
学术水平
12 点
热心指数
16 点
信用等级
2 点
经验
4905 点
帖子
186
精华
0
在线时间
246 小时
注册时间
2018-7-21
最后登录
2019-1-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

四个函数表达式(下文中的行动也可称为决策):


函数一、状态-价值函数:


函数二、行动-价值函数:(虽然这里没有对下式进行展开,但是如果展开的话,就是上式除掉第一个求和符号和及π(a|s))


函数三、最优状态-价值函数:


函数四、最优行动-价值函数:


现在来对以上四个函数表达式做一点补充说明:

  • 其中的p(s'|s,a)是状态转移概率;

  • 其中的r是由状态s到达状态s'获得的回报值;

  • 其中的π(a|s)是指处在状态s时作出a行动的概率;



值得注意的是,我们使用以上明确的函数式来处理强化学习任务的时候,一般是只能处理有限状态的马尔科夫决策过程。接下来我们看一个简单的有限状态的马尔科夫决策过程实例。

这是一个GridWorld问题,如上图所示是一个包含5*5个元胞的网格,在每一个元胞内,agent都有四种行动可以执行,它们分别是“上”、“下”、“左”、“右”。假设agent在每个格子处采取四种行动的概率是相同的,同时未来回报的折扣因子设为0.9,而agent的状态转移以及回报值分为以下四种情况:

  • 如果agent在边缘处,那么如果它此时执行的动作使它溢出网格的话,我们限制它的位置仍然固定不变,但是同时它会得到-1的回报值;

  • 如果agent处在A点,那么它的任意行动都将得到10的回报值,同时下一步的状态移至A'处;

  • 如果agent处在B点,那么它的任意行动都将得到5的回报值,同时下一步的状态移至B'处;

  • 其他情况则会得到0的回报值,状态转移遵从格子的位置变化;


根据以上提示,我们如何计算每个元胞的状态-价值函数(函数一)以及最优状态-价值函数(函数三)呢?


一、计算状态-价值函数

在正式开始写代码之前,我们需要理解状态-价值函数的含义。所谓状态-价值函数,在这里我们不妨理解为agent处在每个格子的时候未来得到的回报值。直观上来分析,我们可以很容易得出以下三条判断:

  • 显然agent处在A和B处的时候状态-价值应该要大一些,为什么呢?因为当agent处在A或B时,下一步无论它采取什么行动,都会得到较大的10或5回报值。

  • 那么,对于其他元胞的状态-价值呢?我们可以这样思考,既然A和B处的状态-价值较大,那么A或B附近处的元胞的状态-价值也肯定比远离A或B处元胞的状态-价值要大。

  • 还有一点就是,既然边缘处很容易得到-1的回报值,那么显然边缘处的元胞要比内部的元胞的状态-价值要小。



除此之外,我们还应该明白,在计算状态-价值函数的时候,我们是不用区分具体行动的,换句话说我们只用按照题意中的均匀概率进行决策即可。那么,每个元胞的状态-价值函数当然是包含了处在该元胞处的所有行动,因此,我们需要在遵从均匀随机决策下对所有行动进行迭代,直到所有元胞的状态-价值收敛为止,这种做法叫做迭代策略评估。


另外一点需要注意的是,在贝尔曼方程中,有一个量P(s'|s,a)是状态转移概率,而在这里这个量的值是1,原因是按照题意,每一个元胞的每一个行动都转移到唯一的下个状态,而不是随机的。


明白了以上的要点,代码写起来就很轻松了,求解状态-价值函数直接按照贝尔曼方程,进行如下迭代即可:


二、计算最优状态-价值函数

所谓最优状态-价值函数其实很好理解,一方面在数学公式上很好理解,直接对a进行迭代并取最大值即可,而且相比状态-价值函数省去了概率π(a|s)的计算;而直观上我们也可以这么想,前面我们计算的状态-价值函数实际上并没有给出当agent处于每个元胞时候下一步怎么走获得价值最大,而只是给出了当agent处于每个元胞的平均价值,即包含了下一步所有可能的行动。

计算最优状态-价值函数就是要找出agent在每个元胞处它下一步该采取什么行动可以保证状态-价值最大。按照贝尔曼最优方程,我们只用对行动a进行迭代即可,并且找出最大的价值,重复迭代,直到收敛为止。


三、实验结果

首先,计算出的状态-价值函数值如下。这个结果与我们最初的直观判断也很一致。



我将以上结果使用灰度图可视化一下,得到以下图,颜色越深处表明状态-价值越大。



同样的,计算出的最优状态-价值函数值如下:



将其可视化如下:



并且,得到的每个元胞的最优行动如下(U、D、L、R分别代表上、下、左、右):


字数有限代码查看原文;
原文链接:http://t.cn/RD2cIvp

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:量化投资 机器学习 GridWorld

沙发
幸运符 发表于 2018-8-7 18:29:32 |只看作者 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 19:53