强化学习基础篇(三十四)基于模拟的搜索算法

强化学习基础篇(三十四)基于模拟的搜索算法

上一篇Dyna算法是基于真实经验数据和模拟经验数据来解决马尔科夫决策过程的问题。本篇将结合前向搜索和采样法,构建更加高效的搜索规划算法,即基于模拟的搜索算法。

1、前向搜索算法(Forward Search)

前向搜索算法将当前状态s_t作为根节点构建一个搜索树,并使用马尔科夫决策过程模型进行前向搜索。需要注意的是前向搜索主要关注的是从当前状态s_t开始构建的马尔科夫决策过程,而非整个马尔科夫决策过程。

image.png

2、基于模拟的搜索(Simulation-Based Search)

基于模拟的搜索算法从当前时间步t开始,在环境模型或者实际环境中进行采样,生成当前状态s_t到终止状态s_T的K条经验模拟轨迹:
\left\{s_{t}^{k}, A_{t}^{k}, R_{t+1}^{k}, \ldots, S_{T}^{k}\right\}_{k=1}^{K} \sim \mathcal{M}_{\nu}

image.png

在获得模拟经验轨迹数据后,使用model-free的强化学习算法,求解价值函数或者策略函数。基于蒙特卡洛控制算法的模拟搜索称为蒙特卡洛搜索,基于Sarsa算法或者Q-learning的模拟搜索称为时间差分搜索。

3、蒙特卡洛搜索

蒙特卡洛搜索是基于模拟的搜索中最为简单的一种形式。其实现形式简单,运行速度快。但由于该方法基于特定的模拟策略\pi,如果模拟策略\pi自身并非较优策略,基于模拟策略\pi下产生的动作很可能不是状态s下的较优动作。

蒙特卡洛搜索的具体步骤如下:

  • (1)给定环境模型M_v和模拟策略\pi

  • (2)针对动作空间A中每一个动作a,从当前状态s_t开始模拟出K条模拟经验轨迹:
    \left\{s_{t}, a, R_{t+1}^{k}, S_{t+1}^{k}, A_{t+1}^{k}, \ldots, S_{T}^{k}\right\}_{k=1}^{K} \sim \mathcal{M}_{\nu}, \pi

  • (3)使用平均奖励评估动作a的动作价值
    Q\left(s_{t}, a\right)=\frac{1}{K} \sum_{k=1}^{K} G_{t} \stackrel{P}{\rightarrow} q_{\pi}\left(s_{t}, a\right)

  • (4)选择动作值函数Q(s_t,a)的极大值,作为当前状态s_t下的最优动作a_t^*:
    a_{t}^*=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{t}, a\right)

4、蒙特卡洛树搜索

简单蒙特卡洛搜索算法中,模拟策略\pi可保持不变,导致最终获得的动作不一定是针对当前状态的最优动作。本节介绍的蒙特卡洛树搜索法,通过评估基于当前模拟策略\pi构建的搜索树中的每一个动作值,并基于评估的动作值改进模拟策略\pi。随后不断重复上述评估与改进的过程,使得最终改进的模拟策略能够生成更优的动作。
蒙特卡洛树搜索算法分为选择、扩展、模拟和回溯4个步骤。而本节为了将蒙特卡洛树搜索和强化学习中的策略改进过程结合起来,将主要介绍评估和模拟两个阶段,以更好理解简单蒙特卡洛搜索和蒙特卡洛树搜索的差异。

评估

蒙特卡洛搜索树的评估,主要指衡量基于模拟策略\pi针对当前状态s_t所构建的搜索树中的每一个(状态,动作)对的价值,其具体步骤如下:

  • (1)给定环境模型M_v

  • (2)使用模拟策略\pi,从当前状态s_t模拟出K条模拟经验轨迹:
    \left\{s_{t}, A_{t}^{k}, R_{t+1}^{k}, S_{t+1}^{k}, \ldots, S_{T}^{k}\right\}_{k=1}^{K} \sim \mathcal{M}_{\nu}, \pi

  • (3)基于上一步生成的模拟经验轨迹数据集,生成包括智能体所经历过(状态,动作)对的搜索树。

  • (4)针对上一步生成的搜索树,计算搜索树中每个(状态,动作)对从开始到终止状态的一个完整经验轨迹的平均奖励,作为该(状态,动作)对的动作价值Q(s,a)
    Q(s, a)=\frac{1}{N(s, a)} \sum_{k=1}^{K} \sum_{u=t}^{T} \mathbf{1}\left(S_{u}, A_{u}=s, a\right) G_{u} \stackrel{P}{\rightarrow} q_{\pi}(s, a)

  • (5)当所有(状态-动作)对的价值得到更新后,选择动作值函数Q(s_t,a)的极大值,作为当前状态s_t下的最优动作a_t^*:

a_{t}^*=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{t}, a\right)

模拟

由评估过程可知,在搜索树的构建过程中,其中所有的<状态-动作>对的价值都得到更新。而更新后的一状态-动作>对价值信息,可用于改进模拟策略\pi(类似于策略优化过程),即选取能够最大化动作值的动作。

需要注意的是,由于构建的搜索树并不包括所有<状态。动作>对空间的价值,所以每次模拟(从当前状态s到终止状态s_T)都包含了2个部分:搜索树内状态以及搜索树外状态。策略改进时要分情况进行处理:针对搜索树内状态采用树内确定性策略,针对搜索树外状态采用树外默认策略。

  • 树内确定性策略:对于搜索树中已存在的(状态,动作)对,策略的更新倾向于选择使得Q值最大化的动作。随着模拟的进行,已存在的(状态,动作)对的策略会持续得到改进。
  • 树外默认策略:对于搜索树中不包含的状态,可采用随机策略对状态进行选择。

在重复模拟中,搜索树的(状态,动作)对的价值将得到持续更新,并基于\epsilon-greedy可以使得搜索树不断进行扩展,使得模拟策略\pi得到持续改进。

5、时间差分搜索

相比于蒙特卡洛法,时间差分法无须等到一次经验轨迹采样结束之后才进行学习,可以在每一时间步进行学习,使得时间差分算法具有更高的学习效率。与此类似,相比于蒙特卡洛树搜索,时间差分搜索同样无须等到经验轨迹的终止状态,可以聚焦于特定节点的状态,使得节点价值的更新更加高效。

简而言之,时间差分搜索可看成采用Sarsa学习算法对从当前状态开始的子马尔可夫决策过程问题进行求解,主要求解过程如下。

  • (1)从当前实际状态s_t开始模拟经验轨迹集,采样过程中,将(状态-动作)对作为节点录入搜索树.

  • (2)估计搜索树内每一个节点(状态-动作对)的动作价值Q

  • (3)在模拟过程的每一步,采用Sarsa算法更新动作值:
    \Delta Q(S, A)=\alpha\left(R+\gamma Q\left(S^{\prime}, A^{\prime}\right)-Q(S, A)\right)

  • (4)基于步骤(3)获得的动作值函数Q(s,a),使用\epsilon-greedy策略或其他策略获得执行动作。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容