强化学习基础(二):基于动态规划的强化学习

最优价值函数

在强化学习中,通常是选取使得价值最大的动作执行,这种解法称为最优价值函数(Optimal Value Function),得到的解不再是期望价值函数,而是理论最大价值函数。即

v(s)=maxπvπ(s)q(s,a)=maxπqπ(s,a)\begin{aligned} v^*(s) &=\max_\pi v_\pi(s)\\ q^*(s,a)&=\max_\pi q_\pi(s,a) \end{aligned}

最优价值贝尔曼等式

v(s)=maxπ(π(as)(Rsa+γsSPssav(s)))v^*(s)=\max_\pi \left(\pi(a|s)(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v^*(s'))\right)

策略迭代

如何选择最优策略?一种可行的方法就是根据我们之前基于任意一个给定策略评估得到的状态价值来及时调整我们的动作策略,这个方法我们叫做策略迭代 (Policy Iteration)。

如何调整呢?最简单的方法就是贪婪法。考虑一种如下的贪婪策略:个体在某个状态下选择的行为是其能够到达后续所有可能的状态中状态价值最大的那个状态

随机初始化策略,初始化价值为0,重复以下过程直到收敛:

  1. 价值估计(Evaluate)(计算量很大)

vi(s)=(Rsa+γsSPssavi1(s))πi(s)=av_i(s)=\left(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v_{i-1}(s')\right)_{\pi_i(s)=a}

  1. 策略改进(Improve)

qi(s,a)=Rsa+γsSPssavi(s)πi+1(s)=argmaxaAqi(s,a)\begin{aligned} q_i(s,a) &= R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v_i(s')\\ \pi_{i+1}(s)&=\arg\max_{a\in A} q_i(s,a) \end{aligned}

这里的πi(s)=a\pi_i(s)=a​是基于确定的策略(纯策略),故不再写成概率形式。

当到达最优的时候,一个状态的价值就等于在当前状态下最大的那个动作价值。

最优价值贝尔曼等式为

v(s)=maxaA(Rsa+γsSPssav(s))q(s,a)=Rsa+γsSPssamaxaAq(s,a)\begin{aligned} v^*(s)&=\max_{a\in A}(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v^*(s'))\\ q^*(s,a)&= R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a \max_{a\in A} q^*(s',a') \end{aligned}

价值迭代

如果不等到状态价值收敛才调整策略,而是随着状态价值的迭代及时调整策略(贪心),这样可以大大减少迭代次数。此时我们的状态价值的更新方法也和策略迭代不同。

初始化价值为0,贝尔曼等式迭代公式如下:

vi(s)=maxaA(Rsa+γsSPssavi1(s))v_i(s)=\max_{a\in A}\left(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v_{i-1}(s')\right)

然后直接计算最优策略(或者根本不用计算,等价值收敛之后再计算)

πi(s)=argmaxaA(Rsa+γsSPssavi(s))\pi_i(s)=\arg\max_{a\in A}\left(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v_{i}(s')\right)

最优价值贝尔曼等式为

v(s)=maxaA(Rsa+γsSPssav(s))\begin{aligned} v^*(s)&=\max_{a\in A}(R_s^a+\gamma \sum_{s'\in S}P_{ss'}^a v^*(s'))\\ \end{aligned}