当前位置: 首页 > news >正文

强化学习的数学原理(五) MonteCarlo learning

由于全文太长,只好分开发了。 (已完结!在专栏查看本系列其他文章)

个人博客可以直接看全文~

本系列为在学习赵世钰老师的“强化学习的数学原理” 课程后所作笔记。

课堂视频链接https://www.bilibili.com/video/BV1sd4y167NS/

第五章 MonteCarlo learning

蒙特卡洛方法是一个model-free RL的方法。(前面讲的算法都是model-based RL方法)

抛硬币例子

假设抛硬币问题: 抛一个硬币,正面价值为1,反面为-1,期望是多少?

那么 model-based方法:直接计算数学期望 E [ X ] = ∑ x x p ( x ) = 1 ∗ 0.5 + ( − 1 ) ∗ 0.5 = 0 \mathbb{E}[X] = \underset{x}{\sum}xp(x) = 1*0.5+(-1)*0.5 = 0 E[X]=xxp(x)=10.5+(1)0.5=0

结果很精确,但是通常很难找到这样的数学模型。
model-free方法:做实验,随机扔硬币,然后统计值,最终可以得到近似值。

一个简单的MC-based RL算法

(我们称这个算法为MC-basic算法)

可以通过改变Policy iteration算法来变成model-free 算法。

  1. policy evalution(PE): v π k = r π k + γ P π k v π k v_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k} v_{\pi_k} vπk=rπk+γPπkvπk
  2. policy improvement(PI): π k + 1 = a r g m a x π ( r π + γ P π v π k ) \pi_{k+1}=\underset{\pi}{argmax}(r_\pi + \gamma P_\pi v_{\pi_k}) πk+1=πargmax(rπ+γPπvπk)

KaTeX parse error: Invalid color: ' #FF0000' at position 75: …(a|s)\textcolor{̲ ̲#̲F̲F̲0̲0̲0̲0̲}̲{q_{\pi_k}(s,a)…

关键在于计算 q π k ( s , a ) q_{\pi_k}(s,a) qπk(s,a) , 两种方法:

  1. 需要模型: q π k ( s , a ) = ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( s ′ ) q_{\pi_k}(s,a) = \underset{r}{\sum}p(r|s,a)r + \gamma \underset{s'}{\sum}p(s'|s,a)v_{\pi_k}(s') qπk(s,a)=rp(rs,a)r+γsp(ss,a)vπk(s)
  2. 不需要模型: q π k ( s , a ) = E [ G t ∣ S t = s , A t = a ] q_{\pi_k}(s,a) = \mathbb{E}[G_t|S_t=s,A_t=a] qπk(s,a)=E[GtSt=s,At=a]

基于蒙特卡洛的model即通过大量采样来估计 G t G_t Gt

MC exploring Starts

遵循策略 π \pi π ,我们会得到一个episode如下:

s 1 → a 2 s 2 → a 4 s 1 → a 2 s 2 → a 3 s 5 → a 1 . . . s_1 \overset{a_2}\to s_2\overset{a_4}\to s_1\overset{a_2}\to s_2\overset{a_3}\to s_5\overset{a_1}{\to}... s1a2s2a4s1a2s2a3s5a1...

定义Visit;一个episode中访问的 ( s t a t e , a c t i o n ) (state,action) (state,action)对的数量。

在MC-basic方法中,使用的是Initial-visit method,即只考虑 s 1 → a 2 s_1 \overset{a_2}{\to} s1a2 这一个(state,action)对。这导致了没有充分利用了整个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{aligned} s_1 \overset{a_2}\to & s_2\overset{a_4}\to & s_1\overset{a_2}\to & s_2\overset{a_3}\to & s_5\overset{a_1}{\to}\dots & [original\ episode] \\ &s_2\overset{a_4}\to & s_1\overset{a_2}\to &s_2\overset{a_3}\to &s_5\overset{a_1}{\to}\dots & [episode\ starting\ from (s_2,a_4)] \\ &&s_1\overset{a_2}\to &s_2\overset{a_3}\to &s_5\overset{a_1}{\to} \dots & [episode\ starting\ from (s_1,a_2)] \\ &&& s_2\overset{a_3}\to &s_5\overset{a_1}{\to} \dots & [episode\ starting\ from (s_2,a_3)] \\ &&&&s_5\overset{a_1}{\to} \dots & [episode\ starting\ from (s_5,a_1)] \end{aligned} s1a2s2a4s2a4s1a2s1a2s1a2s2a3s2a3s2a3s2a3s5a1s5a1s5a1s5a1s5a1[original episode][episode starting from(s2,a4)][episode starting from(s1,a2)][episode starting from(s2,a3)][episode starting from(s5,a1)]
因此我们就可以通过这一个episode来估计 ( s 1 , a 2 ) , ( s 2 , a 4 ) , ( s 1 , a 2 ) , ( s 2 , a 3 ) , ( s 5 , a 1 ) , … (s_1,a_2),(s_2,a_4),(s_1,a_2),(s_2,a_3),(s_5,a_1),\dots (s1,a2),(s2,a4),(s1,a2),(s2,a3),(s5,a1), 的action value。而不是仅仅用于 ( s 1 , a 2 ) (s_1,a_2) (s1,a2)

  • first-visist : 指在遇到相同的(state,action)时,只使用第一次遇到的。
  • every-visit:指在遇到相同的(state,action)时,每个都做考虑,最后综合起来。

generalized policy iteration(广义策略迭代):指并不是精确求解的代码,使用迭代来得到策略,像truncated policy iteration algorithm和 MC都属于generalized policy iteration 。

soft policies

因为我们从一个(state,action)出发能够到达多个状态,所以我们也就没必要把所有的(state,action)都设置为出发点了。

那么如何选择出发点?

ϵ − g r e e d y p o l i c i e s \epsilon-greedy\ policies ϵgreedy policies : KaTeX parse error: {equation} can be used only in display mode.

这里的greedy action指的就是 q π ( s , a ∗ ) q_\pi(s,a^*) qπ(s,a) 最大的那个action。( ϵ \epsilon ϵ通常很小), 这样在保证greedy action被选择的概率较大的情况下,其他的action同样有一些概率被选择。

  • ϵ − g r e e d y p o l i c i e s \epsilon-greedy\ policies ϵgreedy policies能够平衡 e x p l o i t a t i o n exploitation exploitation e x p l o r a t i o n exploration exploration

exploitation:指的是充分利用value,贪心于当前。

exploration:指的是探索当前非最佳的情况,可能会找到未来更优的情况。

这样选择一个(state,action)作为出发点,就可以通过exploration来得到所有的(state,action)的策略。

MC ϵ \epsilon ϵ-Greedy algorithm

对于之前的方法,只会选择最优的action,即 a ∗ a^* a

KaTeX parse error: Invalid color: ' #0000FF' at position 41: …rset{\textcolor{̲ ̲#̲0̲0̲0̲0̲F̲F̲}̲{\pi \in \Pi_{\…

那么对于MC ϵ \epsilon ϵ-Greedy algorithm
KaTeX parse error: Unknown column alignment: * at position 67: … \begin{array}{*̲*lr**} 1-\fra…
便是给了其他action一个较小的 ϵ ∣ A ( s ) ∣ \frac{\epsilon}{|A(s)|} A(s)ϵ

ϵ \epsilon ϵ-Greedy algorithm 中的 ϵ \epsilon ϵ 较大的时候,探索性很强,但是最优性比较差。

我们可以通过起初设置较大的 ϵ \epsilon ϵ,然后逐渐减小他来平衡探索性和最优性。

相关文章:

  • MoogDB数据库日常维护技巧与常见问题解析
  • 未能安装包“Microsoft.VisualStudio.XXXXX
  • 3D语义地图中的全局路径规划!iPPD:基于3D语义地图的指令引导路径规划视觉语言导航
  • BR_输出功率(RF/TRM/CA/BV-01-C [Output Power])
  • 从零开始实现 MobileViT 注意力机制——轻量级Transformer Vision Model 的新思路
  • PyTorch框架学习01
  • 低盐、低蛋白、低钾饮食的肾脏保护机制(肾和计算机语言)
  • 第七章:7.6 写一个函数,将两个字符串连接
  • ThinkPHP框架接入Stripe支付
  • 【贪心】C++ 活动安排问题
  • 三角形分类程序黑盒实验(三)(包含完整源码)
  • 深入解析C++中的队列(queue)容器:原理、应用与最佳实践
  • 16613/16614/16615系列噪声源
  • 线上创业协会小程序源码介绍
  • 52常用控件_QCheckBox的使用
  • Vue.js:现代前端开发的轻量级框架
  • 蓝桥杯 6. k倍区间
  • 来个去照片背景的GUI程序
  • git 根据http url设置账号密码
  • MySQL之text字段详细分类说明
  • 自己做的网站怎么才能被收录/百度免费收录提交入口
  • 夷陵网/百度seo怎么收费
  • 深圳多语言网站建设/百度网址大全旧版
  • 免费源码html网站/短视频seo
  • 提供信息门户网站建设/sem外包
  • 农家院网站素材/找回今日头条