强化学习:强化学习简介

强化学习:强化学习简介

一、简介

​   由于工作和研究的需要,不得不接触一部分的强化学习课程。而强化学习系列大部分原理都涉及到相当多的数学原理,啃起来也比较麻烦。我在学习的过程中,也是参考了多方资料,整个系列看下来,深感只有真正动手coding才能理解到强化学习的精髓吧。但碍于时间的限制,我并没有真正的去动手编程,而是粗略的去阅读了别人的源码,这一部分欠缺,等日后有时间了再补上去。

​   常用的资料:

​   《Reinforcement Learning: An Introduction》 author: Richard S.Sutton and Andrew G.Barto

​   UCL Course: https://www.davidsilver.uk/teaching/

​   博客园:https://www.cnblogs.com/pinard/

二、强化学习基本概念

​   强化学习是一种将状态映射到动作,以期望获得最大回报的学习方法。这一句话很拗口,以一个比喻来说,下象棋。设想一下我们正在下象棋,执棋人在这个状态下,根据对棋盘情况的观察,决定用“车”吃掉对面的“炮”,从而得到奖励:对方失去一员大将:“炮”,也就是回报。那么执棋人就学习到了一个潜在的可能的规律:在那个状态之下,如果我用“车”吃掉了对方的“炮”,那么我会收到回报,也就是赢的几率变大了。那么如何用数学形式化的定义这个过程呢?我们可能需要如下的定义:

  1. agent (智能体)。学习的主体,也就是agent需要从环境中去学习。对应于上例中的执棋人。

  2. state (状态)。当前agent所处的环境。对应于上例中棋盘状态,也就是棋子的位置、形势。状态一般用符号 S S S表示,假如 t t t时刻的状态为 s s s,那么可以表示为(注意大小写):
    S t = s S_t=s St=s

  3. policy(策略)。根据状态,agent会如何采取行动,这就是策略。这个怎么理解呢?执棋人根据棋盘的状况,做出判断,可以用“车”吃掉对方的“炮”,但也可以不吃掉对方的“炮”,而是选择利用自己“马”去吃掉对方的“象”。当然,还有很多种其他的动作,执棋人会根据棋盘的情况,做出最有利于自己的选择,例如他感觉吃掉对面的“炮”,那我赢得几率更大。这就是策略,在面对众多的选择的情况下,如何根据状态去选择最优的策略。策略一般用 π \pi π表示。因此,我们可以用数学的方式去定义:他的意思是,在状态 s s s的情况下,agent采取动作 a a a的概率。其实强化学习的目标,就是为了学得这样一个概率分布,让agent知道在某个环境下该采取什么样的动作。
    π ( s , a ) = p ( a ∣ s ) \pi(s,a)=p(a|s) π(s,a)=p(as)

  4. reward (奖励,即时奖励)。从名字可以看出,reward指的是,当agent采取一个动作时,环境给予agent的一个奖励。对应于上例中,执棋人吃掉了对方的“炮”,那么我的奖励就是对方少了一个“炮”,我的威胁更少了。注意,reward是一个短期的、单步的变量,每采取一个动作,都会获得一个奖励。

  5. value (价值)。价值是一个长期的过程,它指的是,agent处在某一个状态,那么它在这个状态,期望获得的总汇报的大小。value是一个比较难以理解的变量,我们还是以棋盘为例:设想一个比较极端的情况,执棋人的几乎所有棋子都比对面吃掉了,只剩下了“将”和“车”,此时记为状态 s s s。那么,此盘棋执棋人大概率已经输掉了,他每执行一个动作,虽然都会得到奖励,但这个奖励很少,因为他已经很难翻盘了。那么在这个状态下,一直到棋盘结束,有很多种走法(执棋人可以被打到输棋,或者制造和棋,甚至翻盘,但大概率输棋),每一种走法都对应一个动作序列,这个动作序列又对应一个reward序列,对这个reward序列进行求和,然后对所有走法取平均(期望),就是value。这个value注定很小,因为执棋人大概率已经输了,所以每一步的reward会很小。用公式可以表达如下:
    G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . V π ( s ) = E π ( G t ∣ S t = s ) \begin{aligned} G_t &=R_{t+1}+\gamma R_{t+2} + \gamma^2 R_{t+3}+...\\ V_{\pi}(s)&=E_{\pi}(G_t|S_t=s) \end{aligned} GtVπ(s)=Rt+1+γRt+2+γ2Rt+3+...=Eπ(GtSt=s)

​     公式解析:第一个变量 G t G_t Gt代表状态 s s s下,某一种走法序列的加权回报总和,因为后期的回报对目前的影响较小,因此需要加权。第二个式子则是所有走法的期望值。
​     为了更加深刻的理解 V π ( s ) V_{\pi}(s) Vπ(s),我们用一个图来表示,其中,空心圈代表状态,实心圈代表动作

状态树

​     如图所示,大小字母代表状态, a i j a_{ij} aij代表动作, R R R代表回报。注意这个图,我们的起始状态是 A A A,在这个状态下,我们会根据策略去选择不同的动作( a 11 , a 12 , a 13 a_{11},a_{12},a_{13} a11,a12,a13),选择不同的动作会转移到的不同的状态。每一个叶子节点都代表终止状态。在某次测试中,假设我们根据策略选择了 a 11 , a 21 a_{11},a_{21} a11,a21,产生了如下的状态变化:
路径

​     我们的状态序列则是( A 、 C 、 I A、C、I ACI) ,从而计算出此条路径的 G t = R 1 + γ R 2 G_t=R_1+\gamma R_2 Gt=R1+γR2。同理,我们可以算出其他叶子节点的G,最后求平均就是我们的value。因此可以总结,某一状态的V,代表的是从此状态出发到达重点的所有可能路径总回报的期望,也就是平均值。有两点值得注意,1. 上图是所有可能的路径,现实生活中一次策略选择只会产生一条路径;2. 一个动作可能会产生两个不同的状态(如上图的B和C),这是有可能的,因为自然界很多事情有随机性,你的一个动作,会产生很多的结果。

  1. p s s , a p_{ss^,}^a pss,a,状态转移矩阵。正如上文所说,一个动作可能会产生不同的状态,因此需要一个变量去表达此现象。 p s s , a p_{ss^,}^a pss,a则代表在状态 s s s下,采取动作 a a a后,转换到状态 s , s^, s,的概率

总结

​     以上就是强化学习用的非常多的概念,需要重点理解的是 V , R , G t , π , p s s , a V,R,G_t,\pi,p_{ss^,}^a V,R,Gt,π,pss,a,理解了这些概念,才能方便以后更加深刻的理解贝尔曼方程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值