参考教程:西湖大学 赵世钰 - 强化学习的数学原理
- state(状态):agent 在环境中的状态,RL 中最关键的一个量,需要根据实际情况自己确定。所有状态放在一起就是状态空间,S={si}
- action(行动):agent 在每一个状态都可能有一系列可能的行为,所有可能行为构成行为空间,A(si)={ai}
- state transition(状态转换):当 agent 做出一个 action 后,agent 的状态会发生改变,不同的 action 有不同的 state 转换,定义了 agent 和环境交互的行为。
- 确定情况(deterministic):可以直接用矩阵表达,维度是 S×A
- 随机情况(stochastic):用条件概率表达: p(s2∣s1.a1)=0.2,p(si∣s1,a2)=0.8(∀i=2)
- policy(策略):告诉 agent 每个状态下要采取哪个行动。π(a∣s)
- 确定情况:π(a2∣s1)=1,π(ai∣s1)=0(∀i=2) 表示在s1状态下一定会采取a2的行动;
- 随机情况:π(a1∣s1)=0.5,π(a2∣s1)=0.5,π(ai∣s1)=0(∀i=1,2) 表示在s1状态下有对半开的概率采取 a1 或 a2 的行动;
- reward(奖励):agent 采取行动后,给 agent 的一个反馈值,如果是正值则代表鼓励这种行为,如果是负数就代表惩罚这种行为,如果是 0 就代表没有惩罚(一定程度上是鼓励)。通过 reward 告诉 agent 应该怎么做,不该怎么做。**奖励取决于当前状态和行动,而不是下一步的状态。**奖励集合:R(s,a)
- 确定情况:用 table 表示,行表示状态,列表示行动,值表示奖励值
- 随机情况:p(r=−1∣s1,a1)=0.5,p(r=1∣s1,a1)=0.5,表示在 s1 状态下采取 a1 状态,有 0.5 的可能性拿到-1 的奖励,也有 0.5 的可能拿到 1.
- trajectory(轨迹):状态-行动-奖励链。
- return(采样):沿着某条轨迹得到奖励值总和。
- discounted rate(折合因子):γ∈[0,1) 在达到目标之后,策略还在持续进行,会使得轨迹链变得无穷长,该轨迹的 return 也很大,所以要对每一步 policy 拿到的 reward 乘上一个折合因子(<1),使最后的 return 收敛。这样得到的 return 称作 discounted return.
原来的 return:r1=0+0+0+1+1+1+⋯
折合的 return:rdiscounted,1=0+γ×0+γ2×0+γ3×1+γ4×1+γ5×1+⋯
=γ3(1+γ+γ2+⋯)=γ31−γ1 - episode(回合):agent 按照策略与环境交互时,到达终点时 agent 会停止,由此产生的轨迹被称为 episode。episode 一般是有限步的。
- Markov Decision Process(MDP,马尔科夫链)
- 状态集合 S={si},行动集合 A(si)={ai},奖励集合R(s,a)
- 状态转移概率 p(s′∣s,a),奖励概率 p(r∣s,a)
- 策略 π(a∣s)
- 马尔科夫特性:状态转移概率和奖励概率均具有历史无关性。 p(st+1∣at,st,⋯,a0,s0)=p(st+1∣at,st)
St→AtRt+1,St+1
St→AtRt+1,St+1→At+1Rt+2,St+2→At+2⋯
则,折合采样:
Gt=Rt+1+γRt+2+γ2Rt+3+⋯
=Rt+1+γ(Rt+2+γRt+3+⋯)
=Rt+1+γGt+1
- state value(状态值):Gt的期望值,vπ(s)=E[Gt∣St=s],不同的策略会得到不同的轨迹,也就有不同状态值。return是针对单个轨迹的reward和,state value是针对该策略下所有可能轨迹的reward和的平均值。
vπ(s)=E[Gt∣St=s]
=E[Rt+1+γGt+1∣St=s]
=E[Rt+1∣St=s]+γE[Gt+1∣St=s]
其中,
E[Rt+1∣St=s]=Σa[π(a∣s)(Σrp(r∣s,a)r)]
E[Gt+1∣St=s]=Σs′[vπ(s′)(Σap(s′∣s,a)π(a∣s))]
- Bellman(贝尔曼方程):vπ(s)=Σa{π(a∣s)[(Σrp(r∣s,a)r+Σs′vπ(s′)Σap(s′∣s,a))]}
- π(a∣s) 是给定的策略,某个状态下执行某个行动的可能性;
- p(r∣s,a) 和 p(s′∣s,a) 代表动态模型,表示确定状态和行动之后,能够获得的奖励/状态转移概率,需要知道模型是否已知。
根据各项含义,可以继续简化式子: - vπ(s)=rπ(s)+γΣs′pπ(s′∣s)vπ(s′)
- rπ(s)=Σa(π(a∣s)Σr(p(r∣s,a)r)) 表示该策略下每一个状态可能得到的奖励的加权平均,即:即时奖励
- pπ(s′∣s)=Σa(π(a∣s)p(s′∣s,a)) 表示该策略下从当前状态转换到下一个状态的概率,即:状态转移概率
- 写成矩阵向量形式:vπ=rπ+γPπvπ
- vπ=[vπ(s1),vπ(s2),⋯,vπ(sn)]T
- rπ=[rπ(s1),rπ(s2),⋯,rπ(sn)]T
- Pπ∈Rn×n,Pπ,i,j=pπ(sj∣si),即状态转移概率矩阵。
- 在给定一个策略后,需要通过贝尔曼方程求解每一个状态的state value,这个过程叫作policy evaluation.由于求解贝尔曼方程需要求逆矩阵,所以为了防止奇异矩阵,在实际中一般采用迭代法求解,即:vk+1=rπ+γPπvk