目录
在得出策略 π \pi π的状态值函数 和 动作值函数之后,那么该如何求出最优策略?根据环境的 动态特性是否已知分为两种方法:动态规划法 和 蒙特卡洛法。
1. 动态规划(Dynamic Programming, DP)
DP是一种求解最优值得常用方法,此处用于求解系统动态特性 p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s′,r∣s,a)已知情况下的最优策略。
首先我们有一个策略 π \pi π并以此求出最优策略 π ∗ \pi* π∗。
1.1. 策略评估(预测)
策略评估做的事情是:给定策略 π \pi π,求出该策略的价值函数 v π ( s ) v_{\pi}(s) vπ(s)与 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)
事实上根据马尔科夫决策过程中的描述,状态价值函数 v π ( s ) v_{\pi}(s) vπ(s)满足如下递推特性:
v π ( s ) = ∑ a π ( a ∣ s ) × q π ( s , a ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ × v π ( s ′ ) ] (1) v_{\pi}(s)=\sum_{a}\pi(a|s) \times q_{\pi}(s,a) =\sum_{a}\pi(a|s) \sum_{s',r}p(s',r|s,a)[r+\gamma \times v_{\pi}(s')] \tag{1} vπ(s)=a∑π(a∣s)×qπ(s,a)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γ×vπ(s′)](1)
其中 γ < 1 \gamma <1 γ<1
这实际上是一个有着 ∣ S ∣ |S| ∣S∣个未知数的 ∣ S ∣ |S| ∣S∣个方程的方程组,手动求解可能非常复杂,选择迭代策略评估求解。
迭代策略评估
思想是先随机初始化所有变量值,记为 v 0 ( s ) v_0(s) v0(s)。之后用 v 0 ( s ) v_0(s) v0(s)的值按照下式计算 v 1 ( s ) v_1(s) v1(s)的值
v k + 1 ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ × v k ( s ′ ) ] v_{k+1}(s) = \sum_{a}\pi(a|s) \sum_{s',r}p(s',r|s,a)[r+\gamma \times v_{k}(s')] vk+1(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r+γ×vk(s′)]
事实上就是用旧的 v k ( s ) v_k(s) vk(s)计算新的 v k + 1 ( s ) v_{k+1}(s) vk+1(s)。由于策略存在,则 v π ( s ) v_{\pi}(s) vπ(s)一定存在,可以证明 v ∞ ( s ) → v π ( s ) v_∞(s)→v_{\pi}(s) v∞(s)→vπ(s)。在实际编程中可以使用 max s ∣ v k + 1 ( s ) − v k ( s ) ∣ < ϵ \max_{s}|v_{k+1}(s)-v_k(s)|<\epsilon maxs∣vk+1(s)−vk(s)∣<ϵ判断是否终止。
得出 v π ( s ) v_{\pi}(s) vπ(s)之后就可以根据 ( 1 ) (1) (1)算出 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)了。
1.2. 策略改进(控制)
在得到策略 π \pi π的值函数之后,就需要对该策略进行改进以获得更优的策略,然后再对更优的策略求更优,如此迭代反复最终找到最优策略。
什么是更优的策略?
状态价值函数更大的策略就是更优的策略,即
如果 ∀ s ∈ S , v π ′ ( s ) ≥ v π ( s ) \forall s \in S, v_{\pi'}(s) ≥v_{\pi}(s) ∀s∈S,vπ′(s)≥vπ(s)成立且至少存在一个状态 s s s满足严格不等 v π ′ ( s ) > v π ( s ) v_{\pi'}(s) >v_{\pi}(s) vπ′(s)>vπ(s),则认为策略 π ′ \pi' π′较 π \pi π更优。
如何获得更优的策略?
寻找比当前策略 π \pi π更优策略 π ′ \pi' π′的思路是:先调整一个状态,对于状态 s s s,满足
π ′ ( s ) = arg max a q π ( s , a ) (2) \pi'(s)=\argmax_aq_{\pi}(s,a) \tag{2} π′(s)=aargmaxqπ(s,a)(2)
即保证状态 s s s下选择的动作 一定是所有可选动作中 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)最大的那个。
其实就是修改概率分布,这是因为
v π ( s ) = ∑ a π ( a ∣ s ) × q π ( s , a ) ≤ max a q π ( s , a ) = max a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ × v k ( s ′ ) ] = v π ′ ( s ) v_{\pi}(s)=\sum_{a}\pi(a|s) \times q_{\pi}(s,a)≤\max_aq_{\pi}(s,a)=\max_a\sum_{s',r}p(s',r|s,a)[r+\gamma \times v_{k}(s')]=v_{\pi'}(s) vπ(s)=a∑π(a∣s)×qπ(s,a)≤amaxqπ(s,a)=a

最低0.47元/天 解锁文章
1937





