1. 什么是在线MC强化学习
1.1 简介
在线强化学习(on-policy MC RL),是指:智能体在策略评估时为获取完整轨迹所采用的采样策略 π s a m p l e ( a ∣ s ) \pi_{sample}(a|s) πsample(a∣s),与策略控制时要改进的策略 π ( a ∣ s ) \pi(a|s) π(a∣s)都是同一个策略,即: π = π s a m p l e \pi=\pi_{sample} π=πsample。
简而言之:所谓在线,就是在对一个初始策略评估的同时,利用 ϵ − \epsilon- ϵ−贪心算法对它进行及时改进。
1.2 在线MC强化学习算法
输入 : 环境对象 E ,具有如下方法: r e s e t :返回初始状态 s t e p :输入为行为 a ,输出为 [ s , s ′ , r , t e r m i n a t e d ] , 其中 s 为当前状态, s ′ 为下一个状态, r 为当前状态下执行行为 a 获得的立即回报, t e r m i n a t e d 为 t r u e ,表示 s ′ 为终止状态,为 f a l s e , 表示 s ′ 为非终止状态。 状态空间 S = [ s 1 , s 2 , ⋯ , s n s ] 行为空间 A = [ a 1 , a 2 , ⋯ , a n a ] 行为值函数 Q = 0 : n s × n a 矩阵, Q ( i , j ) 表示 Q ( s i , a j ) π = 贪心策略 , π [ i , k ] 表示 π ( a k ∣ s i ) 处理过程 : 变量 k = 0 w h i l e ( k < m ) { 利用 E 的方法,基于策略 π ,产生一条完整轨迹 : [ ( s k , 0 , a k , 0 , r k , 1 ) , ( s k , 1 , a k , 1 , r k , 2 ) , ⋯ , ( s k , n T , a k , n T , r k , n T + 1 ) ] i = 0 w h i l e ( i < n T ) { 找到 ( s k , i , a k , i ) 在 Q 中的状态行为索引号 ( j , m ) G = ∑ n = i n T − 1 γ i − n r k , n Q [ j , m ] ← Q [ j , m ] + α ( G − Q [ j , m ] ) i ← i + 1 } j = 0 w h i l e ( j < n s ) { 求 Q [ j , : ] 的最大值索引号 m π [ j , m ] ← 1 − ε + ε n a ∀ n ≠ m , π [ j , n ] = ε n a j ← j + 1 } k ← k + 1 } 输出 π \begin{align*} &\bold{输入}:\\ &\qquad 环境对象E,具有如下方法:\\ &\qquad\qquad reset:返回初始状态\\ &\qquad\qquad step:输入为行为a,输出为[s,s',r,terminated],\\ &\qquad\qquad\quad 其中s为当前状态,s'为下一个状态,\\ &\qquad\qquad\quad r为当前状态下执行行为a获得的立即回报,\\ &\qquad\qquad\quad terminated为true,表示s'为终止状态,为false,\\ &\qquad\qquad\quad 表示s'为非终止状态。\\ &\qquad 状态空间S=[s_1,s_2,\cdots,s_{ns}]\\ &\qquad 行为空间A=[a_1,a_2,\cdots,a_{na}]\\ &\qquad 行为值函数Q=0:ns\times na 矩阵,Q(i,j)表示Q(s_i,a_j)\\ &\qquad \pi=贪心策略,\pi[i,k]表示\pi(a_k|s_i)\\ &\bold{处理过程}:\\ &变量k=0\\ &while(k<m)\{\\ &\qquad 利用E的方法,基于策略\pi,产生一条完整轨迹:\\ &\qquad \quad [(s_{k,0},a_{k,0},r_{k,1}),(s_{k,1},a_{k,1},r_{k,2}),\cdots,(s_{k,n_T},a_{k,n_T},r_{k,n_T+1})]\\ &\qquad i=0\\ &\qquad while(i<n_T)\{\\ &\qquad\qquad 找到(s_{k,i},a_{k,i})在Q中的状态行为索引号(j,m)\\ &\qquad\qquad G=\sum_{n=i}^{n_T-1}\gamma^{i-n}r_{k,n}\\ &\qquad\qquad Q[j,m]\leftarrow Q[j,m]+\alpha(G-Q[j,m])\\ &\qquad\qquad i\leftarrow i+1\\ &\qquad\}\\ &\qquad j=0\\ &\qquad while(j<ns)\{\\ &\qquad\qquad 求Q[j,:]的最大值索引号m\\ &\qquad\qquad \pi[j,m]\leftarrow 1-\varepsilon+\frac{\varepsilon}{na}\\ &\qquad\qquad \forall n\ne m,\pi[j,n]=\frac{\varepsilon}{na}\\ &\qquad\qquad j\leftarrow j+1\\ &\qquad\}\\ &\qquad k\leftarrow k+1\\ &\}\\ &输出\pi \end{align*} 输入:环境对象E,具有如下方法:reset:返回初始状态step:输入为行为a,输出为[s,s′,r,terminated],其中s为当前状态,s′为下一个状态,r为当前状态下执行行为a获得的立即回报,terminated为true,表示s′为终止状态,为false,表示s′为非终止状态。状态空间S=[s1,s2,⋯,sns]行为空间A=[a1,a2,⋯,ana]行为值函数Q=0:ns×na矩阵,Q(i,j)表示Q(si,aj)π=贪心策略,π[i,k]表示π(ak∣si)处理过程:变量k=0while(k<m){利用E的方法,基于策略π,产生一条完整轨迹:[(sk,0,ak,0,rk,1),(sk,1,ak,1,rk,2),⋯,(sk,nT,ak,nT,rk,nT+1)]i=0while(i<nT){找到(sk,i,ak,i)在Q中的状态行为索引号(j,m)G=n=i∑nT−1γi−nrk,nQ[j,m]←Q[j,m]+α(G−Q[j,m])i←i+1}j=0while(j<ns){求Q[j,:]的最大值索引号mπ[j,m]←1−ε+naε∀n=m,π[j,n]=naεj←j+1}k←k+1}输出π
2. 什么是离线MC强化学习
所在离线强化学习(off-policy MC RL),是指:智能体在策略评估时为获取完整轨迹所采用的采样策略 π s a m p l e ( a ∣ s ) \pi_{sample}(a|s) πsample(a∣s),与策略控制时要改进的策略 π ( a ∣ s ) \pi(a|s) π(a∣s)不是同一个策略,即: π ≠ π s a m p l e \pi\ne\pi_{sample} π=πsample。
3. 在线MC强化学习有何缺点
- 所学到的策略可能不适合作为最终的策略使用。
- 为什么?
- 因为它引入的 ϵ − \epsilon- ϵ−贪心算法虽然确保了完整轨迹覆盖状态的多样性,但却以牺牲较快找到最优策略为代价,它总是小心翼翼,认为最优行为有可能存在于依赖经验确定的最优行为之外;
- 它没有考虑这一常识:随着轨迹覆盖了更多的状态和行为,随着这些状态行为对出现次数的增多,依赖完全贪心算法所确定的最优行为应该越来越具有获得更高累积回报期望的把握
- 如果智能体已经有关于如何更快更好地获得完整轨迹采样的先验策略,而这样的策略能够帮助自己更快地优化最终所要采取的策略,就没有必要在策略评估和策略控制中采用同一策略了。
- 为什么?
由于以上缺点,人们已经发展出了离线强化学习算法,它可以进一步细分为
- 重要性采样MC强化学习算法
- 加权重要性采样MC强化学习算法