本专栏重点介绍强化学习技术的数学原理,并且 采用Pytorch框架对常见的强化学习算法、案例进行实现 ,帮助读者理解并快速上手开发。同时,辅以各种机器学习、数据处理技术,扩充人工智能的底层知识。
????详情: 《Pytorch深度强化学习》
在 Pytorch深度强化学习1-4:策略改进定理与贝尔曼最优方程详细推导 中,我们介绍了贝尔曼最优方程
{ V γ ∗ ( s ) = max a ∈ A ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ ∗ ( s ′ ) ] Q γ ∗ ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ max a ′ ∈ A Q γ ∗ ( s ′ , a ′ ) ] { \begin{cases} V_{\gamma}^{*}\left( s \right) =\underset{a\in A}{\max}\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma V_{\gamma}^{*}\left( s' \right) \right]\\ Q_{\gamma}^{*}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \underset{a'\in A}{\max}Q_{\gamma}^{*}\left( s',a' \right) \right]\\\end{cases}} ⎩ ⎨ ⎧ V γ ∗ ( s ) = a ∈ A max ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ V γ ∗ ( s ′ ) ] Q γ ∗ ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ a ′ ∈ A max Q γ ∗ ( s ′ , a ′ ) ]
然而,在现实的强化学习任务中,转移概率、奖赏函数甚至环境中存在哪些状态往往很难得知,因此有模型强化学习在实际应用中不可行。本节借助有模型学习的思想推广到更一般的 免模型学习(model-free learning) 中,即假设转移概率和环境状态未知,奖赏也仅是根据经验或需求设计
蒙特卡洛强化学习 是免模型学习中的一种,其核心思想是使用蒙特卡洛方法来估计各个状态-动作对的值函数。通过对大量的样本进行采样,并根据它们的累积奖励来评估状态-动作对的价值,智能体可以逐步学习到最优策略。
在有模型学习中,采用的是贝尔曼算子迭代进行策略评估,即
Q γ π ( s , a ) = ∑ s ′ ∈ S P s → s ′ a [ R s → s ′ a + γ ∑ a ′ ∈ A π ( s ′ , a ′ ) Q γ π ( s ′ , a ′ ) ] Q_{\gamma}^{\pi}\left( s,a \right) =\sum_{s'\in S}{P_{s\rightarrow s'}^{a}}\left[ R_{s\rightarrow s'}^{a}+\gamma \sum_{a'\in A}{\pi \left( s',a' \right) Q_{\gamma}^{\pi}\left( s',a' \right)} \right] Q γ π ( s , a ) = s ′ ∈ S ∑ P s → s ′ a [ R s → s ′ a + γ a ′ ∈ A ∑ π ( s ′ , a ′ ) Q γ π ( s ′ , a ′ ) ]
考虑到动力学特性 P s → s ′ a P_{s\rightarrow s'}^{a} P s → s ′ a 和状态集合 S S S 未知,因此上式无法计算。回归到定义
Q γ π ( s , a ) = E [ R t ] ∣ s t = s , a t = a Q_{\gamma}^{\pi}\left( s,a \right) =\mathbb{E} \left[ R_t \right] \mid_{s_t=s,a_t=a}^{} Q γ π ( s , a ) = E [ R t ] ∣ s t = s , a t = a
可以用蒙特卡洛采样来近似逼近回报期望,即
Q γ π ( s , a ) ≈ 1 n ∑ i = 1 n R t , i Q_{\gamma}^{\pi}\left( s,a \right) \approx \frac{1}{n}\sum_{i=1}^n{R_{t,i}} Q γ π ( s , a ) ≈ n 1 i = 1 ∑ n R t , i
其中回报 R t , i = ∑ j = t + 1 ∞ γ j − t r j , i R_{t,i}=\sum\nolimits_{j=t+1}^{\infty}{\gamma ^{j-t}r_{j,i}} R t , i = ∑ j = t + 1 ∞ γ j − t r j , i ,问题转换为如何采样这些回报。蒙特卡洛强化学习提出如下的采样方法:
称有序数对 ( s t , a t , r t + 1 ) \left( s_t,a_t,r_{t+1} \right) ( s t , a t , r t + 1 ) 为一个步骤,重复过程中产生的序列
< s 0 , a 0 , r 1 , s 1 , a 1 , r 2 , ⋯ , s T − 1 , a T − 1 , r T , s T > \left< s_0,a_0,r_1,s_1,a_1,r_2,\cdots ,s_{T-1},a_{T-1},r_T,s_T \right> ⟨ s 0 , a 0 , r 1 , s 1 , a 1 , r 2 , ⋯ , s T − 1 , a T − 1 , r T , s T ⟩
称为 经验轨迹 或 幕(episode) 。由于策略 π \pi π 是概率分布,因此即使不同幕都达到了给定的终态,中间执行轨迹可能存在差异,但任意两个幕之间独立同分布于 π \pi π 。
蒙特卡洛强化学习中用来生成采样幕的策略称为 行动策略(behavior policy) ,记为 b b b ;实际应用的待评估、待改进的策略称为 目标策略(target policy) ,记为 π \pi π 。当 π = b \pi=b π = b 时称为 同轨策略方法(on-policy) ,否则称为 离轨策略方法(off-policy) 。必须指出,用于采样的策略必须是软性策略,即对 ∀ s ∈ S , a ∈ A ( s ) , b ( a ∣ s ) > 0 \forall s\in S,a\in A\left( s \right) ,b\left( a|s \right) >0 ∀ s ∈ S , a ∈ A ( s ) , b ( a ∣ s ) > 0 ,若采样策略是确定性策略,则必然导致部分状态-动作对永远不会出现在幕中,造成样本缺失与误差
引入单步强化学习的 ϵ \epsilon ϵ -贪心思想,这部分请参考 Pytorch深度强化学习1-2:详解K摇臂赌博机模型和ϵ-贪心算法 ,设
π = b ( a ∣ s ) = { a ∗ = a r g max a ∈ A Q π ( s , a ) , 概率 1 − ϵ + ϵ ∣ A ( s ) ∣ A ( s ) / a ∗ , 概率 ϵ ∣ A ( s ) ∣ \pi =b\left( a|s \right) =\begin{cases} a^*=\mathrm{arg}\max _{a\in A}Q^{\pi}\left( s,a \right) , \text{概率}1-\epsilon +\frac{\epsilon}{|A\left( s \right) |}\\ A\left( s \right) / a^*\,\, , \text{概率}\frac{\epsilon}{|A\left( s \right) |}\\\end{cases} π = b ( a ∣ s ) = { a ∗ = arg max a ∈ A Q π ( s , a ) , 概率 1 − ϵ + ∣ A ( s ) ∣ ϵ A ( s ) / a ∗ , 概率 ∣ A ( s ) ∣ ϵ
则算法流程如表所示
同轨策略中虽然保证了采样的随机性,但导致了以下问题
因此引入离轨策略,将行动策略和目标策略分而治之。
将基于策略 π \pi π 的回报期望展开为回报与其概率分布加权的形式
Q π ( s , a ) = E π [ R ] ∣ s t = s , a t = a = ∑ R ⋅ P ( r t + 1 , s t + 1 , ⋯ , s T − 1 , a T − 1 , s T ∣ s t = s , a t = a ) \begin{aligned}Q^{\pi}\left( s,a \right) &=\mathbb{E} _{\pi}\left[ R \right] \mid_{s_t=s,a_t=a}^{}\\&=\sum{R\cdot P\left( r_{t+1},s_{t+1},\cdots ,s_{T-1},a_{T-1},s_T|s_t=s,a_t=a \right)}\end{aligned} Q π ( s , a ) = E π [ R ] ∣ s t = s , a t = a = ∑ R ⋅ P ( r t + 1 , s t + 1 , ⋯ , s T − 1 , a T − 1 , s T ∣ s t = s , a t = a )
其中概率分布为从当前步骤到幕结束所有元素的联合分布。
根据马尔科夫性,下一个时刻的状态只取决于当前状态,则
Q π ( s , a ) = ∑ R ⋅ P ( r t + 1 , s t + 1 ∣ s t = s , a t = a ) π ( a t + 1 ∣ s t + 1 ) P ( r t + 2 , s t + 2 ∣ s t + 1 , a t + 1 ) ⋯ = ∑ R ∏ i = t + 1 T − 1 π ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) = ∑ ∏ i = t + 1 T − 1 π ( a i ∣ s i ) b ( a i ∣ s i ) [ R ∏ i = t + 1 T − 1 b ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) ] = ∑ ( ρ t + 1 : T − 1 R ) ∏ i = t + 1 T − 1 b ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) = E b [ ρ t + 1 : T − 1 R ] ∣ s t = s , a t = a \begin{aligned}Q^{\pi}\left( s,a \right) &=\sum{R\cdot P\left( r_{t+1},s_{t+1}|s_t=s,a_t=a \right) \pi \left( a_{t+1}|s_{t+1} \right) P\left( r_{t+2},s_{t+2}|s_{t+1},a_{t+1} \right)}\cdots \\&=\sum{R\prod_{i=t+1}^{T-1}{\pi \left( a_i|s_i \right)}P\left( r_i,s_i|s_{i-1},a_{i-1} \right) P\left( s_T|s_{T-1},a_{T-1} \right)}\\&=\sum{\prod_{i=t+1}^{T-1}{\frac{\pi \left( a_i|s_i \right)}{b\left( a_i|s_i \right)}}\left[ R\prod_{i=t+1}^{T-1}{b\left( a_i|s_i \right) P\left( r_i,s_i|s_{i-1},a_{i-1} \right) P\left( s_T|s_{T-1},a_{T-1} \right)} \right]}\\&=\sum{\left( \rho _{t+1:T-1}R \right)}\prod_{i=t+1}^{T-1}{b\left( a_i|s_i \right) P\left( r_i,s_i|s_{i-1},a_{i-1} \right) P\left( s_T|s_{T-1},a_{T-1} \right)}\\&=\mathbb{E} _b\left[ \rho _{t+1:T-1}R \right] \mid_{s_t=s,a_t=a}^{}\end{aligned} Q π ( s , a ) = ∑ R ⋅ P ( r t + 1 , s t + 1 ∣ s t = s , a t = a ) π ( a t + 1 ∣ s t + 1 ) P ( r t + 2 , s t + 2 ∣ s t + 1 , a t + 1 ) ⋯ = ∑ R i = t + 1 ∏ T − 1 π ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) = ∑ i = t + 1 ∏ T − 1 b ( a i ∣ s i ) π ( a i ∣ s i ) [ R i = t + 1 ∏ T − 1 b ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) ] = ∑ ( ρ t + 1 : T − 1 R ) i = t + 1 ∏ T − 1 b ( a i ∣ s i ) P ( r i , s i ∣ s i − 1 , a i − 1 ) P ( s T ∣ s T − 1 , a T − 1 ) = E b [ ρ t + 1 : T − 1 R ] ∣ s t = s , a t = a
其中 ρ t + 1 : T − 1 = ∏ i = t + 1 T − 1 π ( a i ∣ s i ) / b ( a i ∣ s i ) \rho _{t+1:T-1}=\prod\nolimits_{i=t+1}^{T-1}{ { {\pi \left( a_i|s_i \right)}/{b\left( a_i|s_i \right)}}} ρ t + 1 : T − 1 = ∏ i = t + 1 T − 1 π ( a i ∣ s i ) / b ( a i ∣ s i ) 为 重要性因子 ,关联了行动策略与目标策略。不妨取行动策略 b b b 为目标策略 π \pi π 的 ϵ \epsilon ϵ 贪心形式进行采样,而目标策略仍保持确定性策略,具体算法流程如表所示。
???? 更多精彩专栏 :