强化学习-数学理论
一、蒙特卡洛方法理论(Monte Carlo, MC)
上一篇博客介绍的是model-base的方法,本篇博客开始介绍model-free的方法,model-free的核心思想是基于数据来估计出一个模型。
如何在没有模型的情况下去进行估计,有一个重要的思想:Monte Carlo estimation
。下面以抛硬币的例子为大家讲解该思想。
假设我们正在进行抛硬币游戏,将其结果用 X X X来表示,结果是正面时 X = 1 X=1 X=1;结果是反面时 X = − 1 X=-1 X=−1,我们的目的是去求解 E [ X ] \mathbb E[X] E[X],有如下两种方法:
方法一:model-base
假设我们知道有一个概率模型, p ( X = 1 ) = 0.5 , p ( X = − 1 ) = 0.5 p(X=1)=0.5, p(X=-1)=0.5 p(X=1)=0.5,p(X=−1)=0.5,那么 E [ X ] = Σ x x p ( x ) = 1 × 0.5 + ( − 1 ) × 0.5 = 0 \mathbb E[X] = \underset{x}\Sigma xp(x)=1\times0.5 + (-1)\times0.5=0 E[X]=xΣxp(x)=1×0.5+(−1)×0.5=0,然而事实上我们可能没有办法获取这么精确的概率模型。
方法二:model-free(Monte Carlo estimation
)
投掷硬币很多次(做多次试验)得到很多采样结果,把所有的采样结果求平均。具体如下:假如做了N次实验,这N次实验的结果是${x_1,x_2,x_3,…,x_N}$,把结果相加再除于N得到 x ‾ \overline{\text{x}} x,当N足够大时 x ‾ \overline{\text{x}} x 近似等于 E [ X ] \mathbb E[X] E[X],等式为: E [ X ] ≈ x ‾ = 1 N Σ N j = 1 x j \mathbb E[X]\approx\overline{\text{x}}=\frac{1}{N}\underset{j=1}{\overset{N}\Sigma}x_j E[X]≈x=N1j=1ΣNxj。这个思想就是Monte Carlo estimation
。
Monte Carlo estimation
思想的数学理论支撑如下图所示,相关证明这里不再给出,感兴趣的朋友可以查阅相关参考资料。
二、MC Basic
2.1 算法拆解
上一篇博客我们讲过policy iteration
这个算法,在上一篇中它是模型确定的,本篇的核心是如何将policy iteration
转变成model-free的方法。
policy iteration
算法有如下两部分:{ p o l i c y e v a l u a t i o n : v π k = r π k + γ P π k v π k v a l u e i m p r o v e m e n t : π k + 1 = a r g m a x π ( r π + γ P π v k ) \begin{cases} policy\ evaluation:\ v_{\pi_k}=r_{\pi_k}+ \gamma P_{\pi_k} v_{\pi_k}\\ value\ improvement:\ \pi_{k+1}=argmax_\pi(r_\pi+\gamma P_\pi v_k) \end{cases} { policy evaluation: vπk=rπk+γPπkvπkvalue improvement: πk+1=argmaxπ(rπ+γPπvk)
policy improvement
的elementwise form
如下:π k + 1 ( s ) = a r g m a x π Σ a π ( a ∣ s ) [ Σ r p ( r ∣ s , a ) r + γ Σ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ] ⏟ q π k ( s , a ) , s ∈ S \begin{aligned} \pi_{k+1}(s)=\underset{\pi}{argmax}\underset{a}\Sigma\pi(a|s)\underbrace{[\underset{r}\Sigma p(r|s,a)r+\gamma\underset{s'}\Sigma p(s'|s,a)\textcolor{red}{v_k(s')}]}_{\textcolor{red}{q_{\pi_k}(s,a)}}, \quad s\in S \end{aligned}