如何在没有模型 (即p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) p(r|s,a),p(s'|s,a) p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) 等均未知) 的情况下进行估计 通过 Monte Carlo estimation. 其核心思想是: 若有一系列(i . i . d i.i.d i . i . d )样本采样,得到一个样本序列x 1 , x 2 , … , x N {x_1,x_2,\dots,x_N} x 1 , x 2 , … , x N 那么对于随机变量X X X 的估计可以为:
E [ x ] ≈ x ˉ = 1 N ∑ j = 1 N x j E[x]\approx \bar{x} = \frac{1}{N}\sum_{j=1}^Nx_j E [ x ] ≈ x ˉ = N 1 j = 1 ∑ N x j
该方法成立的数学依据是 大数定理 (Law of Large Numbers) 样本必须是独立同分布(iid, independent and identically distributed)
为什么考虑 mean estimation. 因为无论是 state value 还是 action value 其原始定义都是从期望 出发的。
v π ( s ) = E [ G t ∣ S t = s ] ; q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] v_\pi(s)=E[G_t|S_t=s]; \quad q_\pi(s,a)=E[G_t|S_t=s,A_t=a] v π ( s ) = E [ G t ∣ S t = s ] ; q π ( s , a ) = E [ G t ∣ S t = s , A t = a ]
最简单的示例算法,用于解释 MC 的原理,但现实场景中不太经常使用,效率过低。
核心思想 :如何将 Policy iteration algorithm 转换为 model-free 的情况。
Policy iteration 算法的核心是 先根据当前策略计算出各个状态的 state value, 再将 state value 转换为 action value,更新策略的步骤就是选择此时 action value 最大的 action.
{ P o l i c y e v a l u a t i o n : v π k = r π k + γ P π k v π k P o l i c y i m p r o v e m e n t : π k + 1 = arg max π ( r π + γ P π v π k ) \begin{cases} Policy\space evaluation:\space v_{\pi_k}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k} \\ Policy\space improvement:\space \pi_{k+1}=\argmax_\pi (r_\pi+\gamma P_\pi v_{\pi_k}) \end{cases} { P o l i cy e v a l u a t i o n : v π k = r π k + γ P π k v π k P o l i cy im p ro v e m e n t : π k + 1 = arg max π ( r π + γ P π v π k )
显然其核心关键就是在 PE 中 通过迭代算法求解 Bellman equation 的 state value后:
对于 model-based 的情况 , 因为 p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) p(r|s,a),p(s'|s,a) p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) 已知,我们可以很轻松的求出各个情况下的q ( s , a ) q(s,a) q ( s , a ) ,从而选择每个状态下最大的 action value 即可。
q π k ( s , a ) = ∑ r p ( r ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( s ) q_{\pi_k}(s,a)=\sum_r p(r|s,a) + \gamma \sum_{s'}p(s'|s,a)v_{\pi_k}(s) q π k ( s , a ) = r ∑ p ( r ∣ s , a ) + γ s ′ ∑ p ( s ′ ∣ s , a ) v π k ( s )
对于 model-free 的情况 ,此时 p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) p(r|s,a),p(s'|s,a) p ( r ∣ s , a ) , p ( s ′ ∣ s , a ) 未知,我们不能通过之前的方法来求出q ( s , a ) q(s,a) q ( s , a ) ,需要从 action value 的定义出发,即:
q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_{\pi_k}(s,a)=E[G_t|S_t=s,A_t=a] q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ]
从此可以发现,我们可以通过前面所引入的 mean estimation 方法,来进行求解 q ( s , a ) q(s,a) q ( s , a ) .
从指定的 ( s , a ) (s,a) ( s , a ) 出发,根据策略 π k \pi_k π k , 我们可以生成一个 episode. 这个 episode 的 return 为 g ( s , a ) g(s,a) g ( s , a ) . 显然,g ( s , a ) g(s,a) g ( s , a ) 就是前面 G t G_t G t 的一个 sample. 假设我们有了一系列 从状态 s 出发, 采取动作 a 的 episodes, 即 g ( j ) ( s , a ) g^{(j)}(s,a) g ( j ) ( s , a ) . 那么我们可以对 q π k ( s , a ) q_{\pi_k}(s,a) q π k ( s , a ) 进行估计,即q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ] ≈ 1 N ∑ i = 1 N g ( i ) ( s , a ) . q_{\pi_k}(s,a)=E[G_t|S_t=s,A_t=a]\approx \frac{1}{N}\sum_{i=1}^N g^{(i)}(s,a). q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ] ≈ N 1 i = 1 ∑ N g ( i ) ( s , a ) .
与 Policy iteration algorithm 步骤类似 首先初始化一个随机的策略π 0 \pi_0 π 0 ,然后进行迭代,对于 k th k\th k th 迭代,有:
Step 1: Policy evaluation. 求在策略π k \pi_k π k 下所有的 action value, q ( s , a ) q(s,a) q ( s , a ) . 具体求解方法,如 1.2 节所述,只不过我们此时需要遍历所有的 action-state pair. 为什么不去求 state value,因为最终策略更新的核心仍然是 action value, 即使先估计了 state value, 我们仍需要估计 action value.
Step 2: Policy improvement. 这是来求解 π k + 1 ( s ) = arg max π ∑ a π ( a ∣ s ) q π k ( s , a ) , f o r a l l s ∈ S \pi_{k+1}(s)=\argmax_{\pi}\sum_a\pi(a|s)q_{\pi_k}(s,a),\quad for\space all \space s\in S π k + 1 ( s ) = arg max π ∑ a π ( a ∣ s ) q π k ( s , a ) , f or a ll s ∈ S 这个仍然与之前一致,采用 greedy policy,即对于每个状态,我们选取其 action value 最大的 action.π k + 1 ( a k ∗ ∣ s ) = 1 \pi_{k+1}(a^*_k|s)=1 π k + 1 ( a k ∗ ∣ s ) = 1 ,其中a k ∗ = arg max a q π k ( s , a ) a^*_k=\argmax_a q_{\pi_k}(s,a) a k ∗ = arg max a q π k ( s , a )
20240811233346 MC Exploring Starts 是针对 MC Basic 的一些改进,即对于数据(experience)更加高效利用。
Visit : every time a state-action pair appears in the episode, it is called a visit of that state-action pair.
考虑一个 episode, 跟随策略π \pi π ,
s 1 → a 2 s 2 → a 4 s 1 → a 2 s 2 → a 3 s 5 → a 1 … s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_4} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \dots s 1 a 2 s 2 a 4 s 1 a 2 s 2 a 3 s 5 a 1 …
对于 MC-Basic, 这一条 episode 仅用作估计 state-action pair (s 1 , a 2 s_1,a_2 s 1 , a 2 ) 的 action value q ( s 1 , a 2 ) q(s_1,a_2) q ( s 1 , a 2 ) ,但存在一定的浪费, 对于一个 episode, 可以拆分为多个 episode, 从而进行多次利用.
s 1 → a 2 s 2 → a 4 s 1 → a 2 s 2 → a 3 s 5 → a 1 … [ o r i g i n a l e p i s o d e ] s 2 → a 4 s 1 → a 2 s 2 → a 3 s 5 → a 1 … [ e p i s o d e s t a r t i n g f r o m ( s 2 , a 4 ) ] s 1 → a 2 s 2 → a 3 s 5 → a 1 … [ e p i s o d e s t a r t i n g f r o m ( s 1 , a 2 ) ] s 2 → a 3 s 5 → a 1 … [ e p i s o d e s t a r t i n g f r o m ( s 2 , a 3 ) ] s 5 → a 1 … [ e p i s o d e s t a r t i n g f r o m ( s 5 , a 1 ) ] \begin{array}{rl} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_4} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \dots & \quad [original\space episode] \\ s_2 \xrightarrow{a_4} s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \dots & \quad [episode\space starting \space from \space (s_2,a_4)] \\ s_1 \xrightarrow{a_2} s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \dots & \quad [episode\space starting \space from \space (s_1,a_2)] \\ s_2 \xrightarrow{a_3} s_5 \xrightarrow{a_1} \dots & \quad [episode\space starting \space from \space (s_2,a_3)] \\ s_5 \xrightarrow{a_1} \dots & \quad [episode\space starting \space from \space (s_5,a_1)] \end{array} s 1 a 2 s 2 a 4 s 1 a 2 s 2 a 3 s 5 a 1 … s 2 a 4 s 1 a 2 s 2 a 3 s 5 a 1 … s 1 a 2 s 2 a 3 s 5 a 1 … s 2 a 3 s 5 a 1 … s 5 a 1 … [ or i g ina l e p i so d e ] [ e p i so d e s t a r t in g f ro m ( s 2 , a 4 )] [ e p i so d e s t a r t in g f ro m ( s 1 , a 2 )] [ e p i so d e s t a r t in g f ro m ( s 2 , a 3 )] [ e p i so d e s t a r t in g f ro m ( s 5 , a 1 )]
这样,我们不仅可以用来估计q ( s 1 , a 2 ) q(s_1,a_2) q ( s 1 , a 2 ) , 还可以估计q ( s 2 , a 4 ) , q ( s 2 , a 3 ) … q(s_2,a_4),\space q(s_2,a_3)\dots q ( s 2 , a 4 ) , q ( s 2 , a 3 ) …
Data-efficient methods:
first-visit method 记录在 episode 中第一次出现的 state-action pair, 如果该 state-action pair 再次出现, 不记录 action value 估计中. every-visit method 对于每个 state-action pair, 都记录 action value 估计中. 什么时候更新策略 也是一个影响效率的因素。
方法1:如 MC Based 一样,在收集到了足够多的 从给定的 state-action pair 出发的 episodes 后, 通过 mean estimation 估计了q ( s , a ) q(s,a) q ( s , a ) 后, 才进行更新。 缺点,等候时间过长,只有当所有 episodes 均收集完,才能进行 策略更新。
方法2:直接 uses the return of a single episode to approximate the action value. 这类算法统称为:Generalized policy iteration (GPI) . 它会在 Policy-evaluation 和 policy-improvement 中不断切换,即不需要完全精确地求出 action value,就直接去更新策略。
20240812004534 Exploring 表示对于每一个 action-state pair ( s , a ) (s,a) ( s , a ) , 都需要有多个 episodes, 这样才能去估计相应的q π ( s , a ) q_{\pi}(s,a) q π ( s , a ) . 如果存在一个 action value 未能访问,就不能确保所选择的 action 是最优的。Starts 表示对于对应 action-state pair ( s , a ) (s,a) ( s , a ) 的 episodes,每次都是从对应的状态 s 出发,选择对应的动作 a 进行的采样。 如果从其他状态出发,得到的 episode,如果经过了 (s,a),那么这称为 visit , 但目前无法保证 visit 一定可以遍历所给定的 (s,a).据目前而言,Exploring Starts 是一个必要条件.
将 Exploring Starts 条件转换掉,通过采取 Soft Policies 的方法。
A policy is called soft if the probability to take any action is positive . 显然 soft policy 是 stochastic 的,并且如果按照这样一个策略,在 episode 足够长的情况下,我们可以确保其可以遍历所有的 state-action pair.
在这里,我们采用的是 ϵ \epsilon ϵ -greedy policies, 其属于 soft policies.
π ( a ∣ s ) = { 1 − ϵ ∣ A ( s ) ∣ ( ∣ A ( s ) ∣ − 1 ) , f o r t h e g r e e d y a c t i o n , ϵ ∣ A ( s ) ∣ , f o r t h e o t h e r ∣ A ( s ) ∣ − 1 a c t i o n , \pi(a|s)= \begin{cases} 1-\frac{\epsilon}{|\mathcal{A}(s)|}(|\mathcal{A}(s)|-1),& for \space the \space greedy \space action, \\ \frac{\epsilon}{|\mathcal{A}(s)|},& for \space the \space other \space |\mathcal{A}(s)|-1 \space action, \end{cases} π ( a ∣ s ) = { 1 − ∣ A ( s ) ∣ ϵ ( ∣ A ( s ) ∣ − 1 ) , ∣ A ( s ) ∣ ϵ , f or t h e g ree d y a c t i o n , f or t h e o t h er ∣ A ( s ) ∣ − 1 a c t i o n ,
其中 ϵ ∈ [ 0 , 1 ] \epsilon\in [0,1] ϵ ∈ [ 0 , 1 ] 且 ∣ A ( s ) ∣ |\mathcal{A}(s)| ∣ A ( s ) ∣ 为状态 s 的动作数量.ϵ \epsilon ϵ -greedy policy 可以平衡 exploitation 和 exploration. 显然ϵ = 0 \epsilon=0 ϵ = 0 , policy 就是 greedy 的; 如果ϵ = 1 \epsilon=1 ϵ = 1 , 此时就是随机策略,其探索性就很强.
对于 MC Basic 以及 MC Exploring 中的 policy improvement 中,找的是在所有可能策略中的最优策略,因此是一个确定的贪心策略。
20240812011140 20240812010538