隐马尔可夫模型与分层强化学习:原理、应用与优化
1. 隐马尔可夫模型概述
隐马尔可夫模型(Hidden Markov Models,HMM)在多个领域有着广泛的应用。自20世纪70年代引入语音识别领域后,它引领了随机方法在自然语言处理领域的发展,到80、90年代,随机方法在该领域得到了广泛应用,随后在90年代后期及以后,又拓展到文本挖掘和信息提取领域。在生物信息学方面,80年代中期开始用于DNA模式识别,此后得到了广泛使用。
1.1 相关程序实现
目前存在许多隐马尔可夫模型的实现程序,以下是三个值得关注的软件包:
| 软件包名称 | 开发者 | 实现算法 |
| — | — | — |
| UMDHMM | Tapas Kanungo | 前向 - 后向算法、维特比算法、鲍姆 - 韦尔奇算法 |
| JAHMM | Jean - Marc François | 与隐马尔可夫模型相关算法的Java实现 |
| HMMER | Sean Eddy | 用于蛋白质序列分析的轮廓HMM软件 |
1.2 交叉参考
隐马尔可夫模型还涉及到一些相关的算法和方法,如鲍姆 - 韦尔奇算法、贝叶斯方法、期望最大化聚类、马尔可夫过程和维特比算法等。
2. 分层强化学习基础
2.1 定义
分层强化学习(Hierarchical Reinforcement Learning,HRL)是将强化学习问题分解为子问题或子任务的层次结构,使得高层的父任务可以像调用原始动作一样调用低层的子任务。这种分解可以有多个层次,部分或全部子问题本身也可以是强化学习问题。当父任务被表述为强化学习问题时,通常会被形式化为半马尔可夫决策问题,因为其动作是持续一段时间的子任务。
2.2 动机与背景
强化学习面临着贝尔曼的“维度灾难”问题,即问题的表示随着状态和动作变量的数量呈指数级增长。而自然环境中的复杂性具有近可分解性,通过分层模型可以利用这一特性来简化对行为的理解和控制。人类社会很早就开始使用分层组织来解决复杂任务,因此在强化学习中引入分层结构是很自然的想法。
分层强化学习的优势在于,如果整体问题可以更紧凑地表示,并且子任务可以独立学习或提供,那么可以降低计算复杂度。子任务通常是随机宏操作,会执行其策略直到终止。如果子任务有多种终止方式,其最优策略将取决于调用它的上下文。子任务策略通常会持续多个时间步,因此被称为时间扩展动作。时间扩展动作有可能通过更小的“高层”状态空间进行转换,从而减小原始问题的规模。此外,分层强化学习还为子任务的重用提供了机会。
早期的分层学习发展借鉴了老板 - 下属模型的类比。例如,Ashby讨论了通过分层控制在大型系统中“放大”调节的概念,Watkins用导航员 - 舵手的分层控制示例说明了如何克服强化学习的局限性。早期的分层强化学习示例包括Singh的Hierarchical - DYNA、Kaelbling的Hierarchical Distance to Goal(HDG)和Dayan和Hinton的Feudal reinforcement learning等。
接近上世纪末,三种分层强化学习方法相对独立地发展起来:抽象机器层次结构(Hierarchies of Abstract Machines,HAMs)、选项框架(Options)和MAXQ值函数分解。这些方法都使用了时间扩展动作,并基于半马尔可夫决策过程理论来解决高层抽象强化学习问题。
2.3 分层强化学习系统结构
下面通过一个简单的例子来说明分层强化学习的机制。假设有一个四房间的房子,房间之间有门相连,左上角房间有一个门通向外面。agent从左下角房间开始,它可以感知自己在房间中的位置和所在的房间,每次时间步可以向四个方向移动一步,并且每步会得到 -1 的奖励,目标是通过成本最低的路线离开房子。假设动作是随机的,有80%的概率朝预期方向移动,20%的概率停留在原地。
如果使用普通的强化学习方法解决这个问题,需要存储定义在100个状态和4个动作上的400个Q值。而如果将状态空间分解为四个相同的房间,分层强化学习可以更高效地解决这个问题。具体步骤如下:
1.
解决子问题
:分别找到离开房间向北和向西的最优解,每个子问题需要存储定义在25个状态和4个动作上的100个Q值。
2.
解决高层问题
:将四个房间作为状态,这是抽象状态,因为房间内的具体位置已被抽象掉。在每个抽象状态中,允许选择已学习的离开房间的动作之一。这些是时间扩展动作,一旦调用,通常会持续多个时间步直到agent离开房间。解决这个高层问题只需要存储定义在4个状态和2个动作上的8个Q值。
学习完成后,高层策略将根据当前房间确定要调用的最优离开房间的动作,控制传递给相应的子任务,子任务完成后控制返回到高层,直到agent最终离开房子。分层强化学习总共需要208个Q值,几乎是普通强化学习存储需求的一半,同时也节省了时间复杂度。
这个例子隐藏了分层强化学习需要解决的许多问题,如安全的状态抽象、在初始条件改变或奖励打折时如何适当计算子任务累积奖励、解决方案的最优性以及分层结构的学习等。
2.4 半马尔可夫决策问题形式化
分层强化学习的共同底层形式化是半马尔可夫决策过程(Semi - Markov Decision Process,SMDP)。SMDP通过允许动作是时间扩展的,对马尔可夫决策过程进行了推广。以下是离散时间方程:
设随机变量N为从状态s开始执行时间扩展动作a所需的时间步数,结果状态s’的状态转移概率函数和期望奖励函数分别为:
- 状态转移概率函数:$T_{ss’}^{N,a} = P{s_{t + N} = s’|s_t = s, a_t = a}$
- 期望奖励函数:$R_{ss’}^{N,a} = E\left{\sum_{n = 1}^{N} \gamma^{n - 1} r_{t + n}|s_t = s, a_t = a, s_{t + N} = s’\right}$
其中,$R_{ss’}^{N,a}$是N个未来折扣奖励的期望总和,折扣因子$\gamma \in [0, 1]$。当$\gamma < 1$时,可确保值函数对于连续或无限期问题收敛。任意策略$\pi$和最优策略(用$\pi^
$表示)的值函数的贝尔曼“备份”方程与马尔可夫决策过程类似,但求和是针对s’和N进行的:
- 任意策略的值函数:$V_{\pi}^m(s) = \sum_{s’,N} T_{ss’}^{N,\pi(s)} \left[R_{ss’}^{N,\pi(s)} + \gamma^N V_{\pi}^m(s’)\right]$
- 最优策略的值函数:$V^
m(s) = \max_a \sum
{s’,N} T_{ss’}^{N,a} \left[R_{ss’}^{N,a} + \gamma^N V^*_m(s’)\right]$
对于有保证终止的问题,折扣因子$\gamma$可以设为1,此时可以将步数N边缘化,求和仅针对s进行,上述方程就与马尔可夫决策过程的方程类似,只是将期望原始奖励替换为时间扩展动作终止时的期望奖励总和。所有使用原始动作的强化学习方法对于使用时间扩展动作的问题同样有效。
2.5 分层强化学习的方法
2.5.1 抽象机器层次结构(HAMs)
在HAM方法中,设计者通过提供称为抽象机器的随机有限状态自动机来指定子任务。实际上,多个抽象机器可以相互调用作为子程序,原则上这相当于指定一个具有两种状态的大型抽象机器:动作状态,用于指定在要解决的马尔可夫决策过程的状态下要采取的动作;选择状态,具有非确定性动作。
抽象机器是一个三元组$\langle \Sigma, I, \delta \rangle$,其中$\Sigma$是有限的机器状态集,$I$是从要解决的马尔可夫决策过程的状态到机器状态的随机函数,用于确定初始机器状态,$\delta$是将机器状态和马尔可夫决策过程状态映射到下一个机器状态的随机下一状态函数。马尔可夫决策过程和抽象机器的并行动作产生一个离散时间的高层半马尔可夫决策过程,抽象机器的动作状态在选择状态之间生成一系列时间扩展动作。只有原始马尔可夫决策过程的一部分状态与选择点相关联,这可能会显著减小高层问题的规模。
以四房间例子为例,图2中的抽象机器提供了离开房间向西或向北的选择。在每个房间中,它会采取行动将agent移动到墙壁,并沿着墙壁进行随机游走,直到找到门。原始马尔可夫决策过程中只有五个状态是高层半马尔可夫决策过程的状态,即agent的初始状态和抽象机器进入选择状态的门另一侧的状态。强化学习方法以通常的方式更新这五个状态的值函数,奖励是自上一个选择状态以来累积的奖励。最优策略由三个时间扩展动作组成,依次是向西、向北和再次向北离开房间。解决半马尔可夫决策过程将为agent提供在抽象机器的约束下离开房子的最优策略,但在这种情况下,由于沿着墙壁随机游走来寻找门效率低下,所以不是全局最优策略。
HAM方法基于工程师和控制理论家能够设计出实现特定低层行为的良好控制器。HAMs是一种部分指定过程知识的方式,用于将马尔可夫决策过程转换为简化的半马尔可夫决策过程。在最一般的情况下,HAMs可以是图灵机,能够执行agent完整感官 - 动作历史的任何可计算映射。
2.5.2 选项(Options)
对于具有有限状态S和动作A的马尔可夫决策过程,选项将一步原始动作扩展为包括时间扩展动作。选项由三个组件组成:策略$\pi : S \times A \to [0, 1]$、终止条件$\beta : S \to [0, 1]$和启动集$I \subseteq S$。选项$\langle I, \pi, \beta \rangle$在状态s可用当且仅当$s \in I$。如果调用一个选项,动作将根据$\pi$进行选择,直到根据$\beta$终止选项。这些选项被称为马尔可夫选项,因为策略$\pi$采取的选项内动作仅取决于当前状态s。也可以将选项推广为半马尔可夫选项,其中策略和终止条件的选择取决于自选项启动以来的所有先前事件。例如,可以在一段时间后使选项“超时”。从最一般的解释来看,选项和HAMs具有相似的功能,但侧重点不同。
选项的目的是增强马尔可夫决策过程可用的原始动作。选项执行的时间扩展动作产生一个半马尔可夫决策过程。与HAMs一样,如果选项替换原始动作,半马尔可夫决策过程可以显著简化。当保留原始动作时,对于其好处存在争议。强化学习可能会加速,因为值函数可以在状态空间中更大的距离上进行备份,并且包含原始动作可确保收敛到全局最优策略,但引入额外动作会增加存储和探索的需求。
在一个类似于图1的四房间例子中,作者展示了选项如何以逐个房间的方式比逐个位置的方式更快地学习。当目标不在方便的位置,无法通过给定的选项到达时,可以将原始动作作为特殊情况的选项包含进来,仍然可以加速某些问题的学习。例如,仅使用离开房间的选项无法到达房间中间的目标,当进入包含目标状态的房间时,需要原始动作。虽然包含原始动作可确保收敛到全局最优策略,但这可能会给学习者带来额外的工作。
2.5.3 MAXQ
MAXQ方法将分层强化学习的子任务限制为原始马尔可夫决策过程的状态、动作和策略片段的子集,而不引入额外的状态,这与HAMs和半马尔可夫选项不同。MAXQ的贡献在于对层次结构上的值函数进行分解,并提供了状态抽象的机会。
马尔可夫决策过程被手动分解为一个称为任务层次结构的分层有向无环图的子任务。每个子任务是一个较小的(半)马尔可夫决策过程。在分解马尔可夫决策过程时,设计者为每个子任务指定活动状态和终端状态。终端状态通常分为目标终端状态和非目标终端状态。通过对非目标终端状态设置惩罚,为每个子任务学习策略,以鼓励它们在目标终端状态终止。每个子任务中可用的动作可以是原始动作或其他(子)子任务。每个子任务可以将其任何子任务作为时间扩展动作调用。当一个任务进入终端状态时,它及其所有子任务将中止并将控制返回给调用的子任务。
图3展示了之前四房间问题的任务层次结构。四个低层子任务是通用房间的子马尔可夫决策过程,分别学习通过四个可能的门离开房间的策略。箭头表示向目标终端状态的转换,“X”表示非目标终端状态。状态、动作、转换和奖励继承自原始马尔可夫决策过程。向终端状态转换的奖励经过设计,以鼓励agent避免非目标终端状态并在目标状态终止。高层问题(半马尔可夫决策过程)仅由四个房间作为状态组成。任何子任务(离开房间的动作)都可以在任何房间中调用。
MAXQ的一个关键特征是将状态的值表示为子任务完成值和直接原始动作值的分解总和。完成值是在遵循子任务策略采取下一个(时间扩展)动作后完成子任务的预期(折扣)累积奖励。总和包括从任务层次结构的根任务到原始动作路径上调用的所有任务。Q函数递归表示为:
$Q_{\pi}(i, s, a) = V_{\pi}(a, s) + C_{\pi}(i, s, a)$
其中,i是子任务标识符,s是当前状态,动作a是子任务(或原始动作),$\pi$是每个子任务的策略。
以图3的任务层次结构为例,对于最优策略,agent状态的值由任务层次结构的两个级别和一个原始动作决定。如图4所示,agent状态的值函数表示采取下一个向北的原始动作、完成离开房间向西的低层子任务以及完成离开房子的高层任务的预期奖励。分解值函数的好处是可以更紧凑地表示,因为只需要存储非原始子任务和原始动作的完成值。
这个例子展示了两种类型的状态抽象。由于所有房间都相似,在学习房间内导航策略时可以忽略房间标识。其次,当未来奖励不打折时,离开房间后的完成值与该房间的起始状态无关。这些“漏斗”动作允许将房间内状态抽象为每个房间的单个状态,就完成值而言。结果是原始问题可以分解为顶层的一个小四状态半马尔可夫决策过程和四个较小的子任务马尔可夫决策过程。
3. 分层强化学习的最优性
分层强化学习在满足收敛条件的情况下,最多只能得到层次最优的解决方案,即与任务层次结构一致的解决方案。MAXQ引入了另一种最优性——递归最优性。MAXQ优化子任务策略以达到目标状态,而忽略其父任务的需求。这使得子任务可以在各种上下文中重用,但在每种情况下可能不是最优的。递归最优解决方案不会比层次最优解决方案更好。如果设计者选择了较差的抽象机器、选项或分层分解,递归和层次最优性都可能比全局最优解决方案差很多。
由于马尔可夫决策过程的随机性,时间抽象动作调用后,其适用条件可能会发生变化,由于“随机漂移”,另一个动作可能会成为更好的选择。在这种情况下,继续执行子任务策略直到终止可能不是最优的。通过不断中断子任务(如在HDG中),可以选择更好的子任务。Dietterich将这种“轮询”过程称为分层贪婪执行。虽然这保证不会比层次最优或递归最优解决方案差,并且可能会好很多,但仍然不能保证全局最优性。在使用分层贪婪执行进行学习时需要非常小心。Hauskrecht等人讨论了保证最优性的分解和解决方案技术,但不幸的是,除非马尔可夫决策过程可以分解为非常弱耦合的较小马尔可夫决策过程,否则计算复杂度不一定会降低。如果选项或子任务策略可以在多个马尔可夫决策过程中重用并分摊成本,仍然会有好处。
4. 自动分解
在上述方法中,程序员需要手动将整体问题分解为子任务层次结构。自动分解问题的方法包括寻找子目标瓶颈或地标状态,以及寻找共同的行为轨迹或区域策略。例如,在图1中,agent在前往目标的途中会通过起始房间的两个门之一。每个门相邻的状态在成功试验中比其他状态访问更频繁。
NQL(嵌套Q学习)和McGovern都使用这个想法来识别子目标。Moore等人建议,对于某些导航任务,性能对地标位置不敏感,自动随机生成的地标集与更有目的地定位的地标集相比,结果差异不大。Hengst探索了从agent与环境的交互经验中自动学习类似MAXQ的任务层次结构,自动找到共同区域并在agent预测失败时生成子目标。方法包括对无限期问题进行带折扣的状态抽象和将问题分解为部分有序的任务层次结构。当因果图中没有循环时,变量影响结构分析(VISA)算法使用给定的动作动态贝叶斯网络模型对因子马尔可夫决策过程进行分层分解。Konidaris和Barto引入了一种在连续域中进行强化学习的技能发现方法,构建通向任务结束奖励的技能链。
虽然由于篇幅限制无法涵盖分层强化学习的所有研究,但上述内容可以作为一个起点。分层强化学习仍然是一个活跃的研究领域,未来有望在更多领域得到应用和发展。
5. 分层强化学习的应用场景
分层强化学习在多个领域展现出了强大的应用潜力,以下是一些具体的应用场景:
-
机器人导航
:在复杂的室内或室外环境中,机器人需要从一个位置移动到另一个位置。可以将导航问题分解为多个子任务,如房间内导航、通过门、楼梯等。每个子任务可以独立学习,然后组合起来实现全局导航。例如,在一个大型仓库中,机器人可以先学习如何在每个货架区域内移动,然后学习如何从一个货架区域移动到另一个货架区域。
-
游戏领域
:在复杂的游戏中,如策略游戏、角色扮演游戏等,玩家需要完成多个任务和目标。分层强化学习可以帮助玩家自动规划和执行任务。例如,在一个角色扮演游戏中,玩家可以将任务分解为战斗、探索、升级等子任务,每个子任务可以有自己的策略和目标。
-
工业自动化
:在工业生产中,如生产线控制、物流管理等,需要对多个设备和流程进行协调和控制。分层强化学习可以将整个生产过程分解为多个子任务,每个子任务可以由不同的控制器或机器人执行。例如,在一个汽车生产线上,机器人可以学习如何完成焊接、喷漆、组装等子任务,然后通过分层强化学习协调这些子任务的执行。
6. 分层强化学习的挑战与未来发展方向
尽管分层强化学习具有许多优势,但仍然面临一些挑战,同时也为未来的发展指明了方向:
-
挑战
-
层次结构设计
:如何自动设计出最优的层次结构是一个难题。目前大多数方法需要人工手动分解问题,这需要大量的专业知识和经验。
-
子任务交互
:子任务之间的交互和协调可能会导致复杂的问题。例如,一个子任务的执行可能会影响其他子任务的状态和奖励,如何处理这些交互是一个挑战。
-
计算复杂度
:虽然分层强化学习可以降低计算复杂度,但在某些情况下,仍然需要处理大规模的状态和动作空间,计算复杂度仍然是一个问题。
-
未来发展方向
-
自动分层
:研究如何自动发现和学习层次结构,减少人工干预。例如,通过机器学习算法自动识别子目标和子任务,构建最优的层次结构。
-
多智能体协作
:将分层强化学习应用于多智能体系统中,实现智能体之间的协作和竞争。例如,在一个机器人团队中,每个机器人可以使用分层强化学习来完成自己的任务,同时与其他机器人进行协作。
-
结合深度学习
:将分层强化学习与深度学习相结合,利用深度学习的强大表示能力来处理复杂的状态和动作空间。例如,使用深度神经网络来学习子任务的策略和价值函数。
7. 总结
分层强化学习通过将复杂的强化学习问题分解为多个子任务,利用层次结构来降低计算复杂度,提高学习效率和可扩展性。本文介绍了分层强化学习的基本概念、动机、系统结构、半马尔可夫决策问题形式化以及几种常见的方法,如抽象机器层次结构(HAMs)、选项(Options)和MAXQ值函数分解。同时,还讨论了分层强化学习的最优性、自动分解方法、应用场景以及面临的挑战和未来发展方向。
分层强化学习在解决复杂问题方面具有巨大的潜力,但仍然需要进一步的研究和发展。未来,随着技术的不断进步,分层强化学习有望在更多领域得到应用,为人工智能和机器人技术的发展做出更大的贡献。
8. 流程图示例
下面是一个简单的分层强化学习流程的mermaid流程图:
graph TD
A[开始] --> B[问题分解]
B --> C[子任务学习]
C --> D[高层任务学习]
D --> E[策略执行]
E --> F{是否完成目标}
F -- 否 --> C
F -- 是 --> G[结束]
9. 表格总结
| 方法 | 特点 | 优势 | 劣势 |
|---|---|---|---|
| HAMs | 通过抽象机器指定子任务,将MDP转换为SMDP | 可部分指定过程知识,减小高层问题规模 | 可能不是全局最优策略,依赖人工设计 |
| Options | 扩展原始动作到时间扩展动作 | 增强动作能力,可加速学习 | 引入额外动作增加存储和探索需求 |
| MAXQ | 分解价值函数,进行状态抽象 | 紧凑表示问题,提供状态抽象机会 | 子任务可能不是全局最优 |
通过以上的表格和流程图,我们可以更清晰地理解分层强化学习的过程和各种方法的特点。在实际应用中,可以根据具体问题的需求选择合适的方法和技术,以实现更好的效果。
1504



被折叠的 条评论
为什么被折叠?



