【论文笔记】一种基于启发式奖赏函数的分层强化学习方法

注:此论文发表时间在2011年。

摘要

针对问题 → \rightarrow 强化学习“维数灾难”、训练过程慢
提出 → \rightarrow 一种基于启发式奖赏函数的分层强化学习方法
应用场景 → \rightarrow 俄罗斯方块
效果 → \rightarrow 在一定程度上解决“维数灾”问题,并具有很好的收敛速度

关键词

  1. 分层强化学习;
  2. 试错;
  3. 启发式奖赏函数;
  4. 俄罗斯方块;
  5. “维数灾难”

0 引言

目前解决“维数灾”问题的主要思想是抽象和逼近,这些思想可以细化为以下4种方法:

  1. 状态聚类法;
  2. 有限策略空间搜索法;
  3. 值函数逼近法
  4. 分层强化学习方法;

分层强化学习:

  1. 常用的抽象技术有状态空间分解时态抽象状态抽象
  2. 降低状态空间的维数和规模 → \rightarrow 加快学习速度
  3. 时态抽象法是目前最为常用的一种分层技术,几乎所有的HRL都用到
  4. 经过分层之后,学习任务或局限于智能体当前所处的规模较小的空间,或局限于与底层细节无关的维数较低的高层空间
  5. 代表的成果主要有Option,MAXQ和HAM,Option和MAXQ算法已被广泛的应用
  6. 先前学者研究:
学者 工作 优缺点
Neville等人 奖赏函数表示为状态特征的向量,并通过调整此向量的权重值将已学习的经验应用到相同的层次结构中
Schultink和Cavallo等人 以MAXQ为基础的EHQ算法 理论上达到分层最优,但是为给予证明

使用分层算法解决的两个问题:

  1. 子目标的寻找 → \rightarrow Agent过去获得的经验 → \rightarrow 两种:
    (1)根据状态访问的频率统计特征寻找子目标。
    ⟶ \longrightarrow 到达终点的路径上经常访问的点,也可能是访问频率最高的节点作为子目标。
    ⟶ \longrightarrow 缺点是被认为子目标的周围位置/节点也有可能是经常访问的。
    ⟶ \longrightarrow 改进:访问频率的落差变化率。
    (2)利用状态转移图构造子目标
    ⟶ \longrightarrow 划分由最近经验构成的局部状态转移图
    ⟶ \longrightarrow 利用主体访问的历史图通过Max-Flow/Min-cut算法找到子目标
    (3)状态聚类法
    (4)图论中的划分算法寻找子目标
  2. 任务自动分层
    Option和MAXQ都能很好地实现自动分层
    强化学习的任务分层主要还是根据设计者的经验给出,如何实现自动发现子目标实现自动分层仍是当前研究的热点。(2011)

1 相关理论

奖赏函数的构建可分为两种形式:

  1. 稀疏函数
    r t = { 1 , G o o d − s t a t e s ; − 1 , B a d − s t a t e s ; 0 , o t h e r s ; r_{t} = \begin{cases} &1,Good-states; \\ &-1,Bad-states; \\ &0, others; \end{cases} rt= 1,Goodstates;1,Badstates;0,others;
    设计简单,大多数这样采用
    在早期学习阶段,系统Q值表均为空值或预设值
    系统就需要花费大量的时间去寻找非空、有意义的Q值
  2. 密集函数
    r t = f ( o t , i t ) , ∀ o , i ; r_{t} = f(o_{t},i_{t}),\forall o,i; rt=f(ot,it),o,i;
    o t → t o_{t} \rightarrow t ott 时步学习系统内在的状态
    i t → t i_{t} \rightarrow t itt 时步学习系统外界环境状态
    在设计时必须清楚状态-动作空间的全部情况,所以,密集函数设计起来相对比较困难,但密集奖赏函数学习值函数稀疏奖赏函数更容易
  3. 奖赏函数设计评价
    奖赏函数应能提供学习进步的信息,嵌入隐含知识,并把它表达为奖赏函数中的形式
    在建立奖赏函数时,对传统的稀疏奖赏函数附加对中间状态的评价有效

2 基于启发式奖赏函数的分层强化学习算法

2.1 子任务的定义及最优策略

三种子任务定义的方法:

  1. 按照确定的策略给出子任务的定义 → \rightarrow 由程序员给出(或者将某些已经学习过的
    部分分离出来作为子任务) → \rightarrow Option方法
  2. 按照非确定的有限状态控制器定义 → \rightarrow HAM
  3. 按照终止条件局部奖赏函数定义每个子任务 → \rightarrow This paper

变量定义:

  1. M M M被分解为任务集合: { M 0 , M 1 , ⋯   , M n } \{ M_{0},M_{1},\cdots,M_{n} \} { M0,M1,,Mn},每个任务是 M i M_{i} Mi
  2. M i = < T i , A i , R i > M_{i} = < T_{i}, A_{i}, R_{i} > Mi=<Ti,Ai,Ri>
  3. T i → T_{i} \rightarrow Ti 任务集; A i → A_{i} \rightarrow Ai 动作集; R i → R_{i} \rightarrow Ri 奖赏函数;
  4. 任务在分层中可以写成: π = { π 1 , π 2 , ⋯   , π n } \pi = \{ \pi_{1},\pi_{2},\cdots,\pi_{n} \} π={ π1,π2,,πn}
  5. 任务在分层中的最优策略是: π ∗ = { π 1 ∗ , π 2 ∗ , ⋯   , π n ∗ } \pi^{\ast} = \{ \pi_{1}^{\ast} ,\pi_{2}^{\ast} ,\cdots,\pi_{n}^{\ast} \} π={ π1,π2,,πn}

2.2 子任务的特征提取及附加奖赏函数

强化学习智能体训练过程:
学习的初始阶段 → \rightarrow 性能突然提升阶段 → \rightarrow 逐渐收敛阶段
负奖励值可以促使智能体对位置环境的探索

定义1

【内容】 M i M_{i} Mi表示任务 M M M中第 i i i个子任务, M i M_{i} Mi特征向量表示为 T i T_{i} Ti
T i = { t i 1 , t i 2 , ⋯   , t i k } T_{i} = \{ t_{i1},t_{i2},\cdots,t_{ik} \} Ti={ ti1,ti2,,tik}
→ \rightarrow 特征向量的表示,实际上是一个矩阵
→ \rightarrow t i k t_{ik} tik表示 T i T_{i} Ti子任务的第 k k k个状态。

定义2

【内容】特征向量 T i T_{i} Ti的特征值向量为 N i N_{i} Ni
N i = { n i 1 , n i 2 , ⋯   , n i k } N_{i} = \{ n_{i1},n_{i2},\cdots,n_{ik} \} Ni={ ni1,ni2,,nik}
→ \rightarrow n i k n_{ik} nik表示 t i k t_{ik} tik子任务对应的特征值。

定义3

状态的每个特征对学习效果的影响力都不相同 → \rightarrow 对特征向量进行加权
【内容】特征向量对应的权值表示为 W i W_{i} Wi
W i = { w i 1 , w i 2 , ⋯   , w i k } W_{i} = \{ w_{i1},w_{i2},\cdots,w_{ik} \} Wi={ wi1,wi2,,wik}

  1. w i k > 0 → w_{ik}>0 \rightarrow wik>0 出现某特征时给予鼓励;
  2. w i k < 0 → w_{ik}<0 \rightarrow wik<0 对出现的特征给予惩罚;
  3. w i k = 0 → w_{ik}=0 \rightarrow wik=0 忽略此特征的影响;

定义4

【内容】启发式奖赏函数的附加函数 F i F_{i} Fi
F i = W i T N i = w i 1 × n i 1 + w i 2 × n i 2 + ⋯ w i k × n i k F_{i} = W_{i}^{T}N_{i} = w_{i1}\times n_{i1} + w_{i2}\times n_{i2} + \cdots w_{ik}\times n_{ik} Fi=WiTNi=wi1×ni1+wi2×ni2+wik×nik

  1. F i > 0 → F_{i}>0 \rightarrow Fi>0 启发式奖励
  2. F i < 0 → F_{i}<0 \rightarrow Fi<0 启发式惩罚

定义5

【内容】基于广义MDP模型的奖赏函数
R i ′ = R i + F i = R i + w i 1 × n i 1 + w i 2 × n i 2 + ⋯ w i k × n i k R_{i}^{\prime} = R_{i} + F_{i} = R_{i}+ w_{i1}\times n_{i1} + w_{i2}\times n_{i2} + \cdots w_{ik}\times n_{ik} Ri=Ri+Fi=Ri+wi1×ni1+wi2×ni2+wik×nik
F i F_{i} Fi是有界函数
R i ′ R_{i}^{\prime} Ri有界是智能体收敛的必要条件

2.3 最优策略

论文图片1
在策略 π ∗ \pi^{\ast} π下的最优子函数:
论文图片2-1
论文图片2-2
论文还定义了Q值和最优Q函数:
论文图片3

2.4 基于启发式奖赏函数的分层强化学习算法

存在任务 → \rightarrow 任务分解 → \rightarrow 初始化策略
→ \rightarrow 抽取子任务的特征,得到特征向量和权值向量
→ \rightarrow 智能体与环境交互
→ \rightarrow 计算奖励函数和启发式奖赏函数 → \rightarrow Q值更新 → \rightarrow 进入下一状态

定理1

【内容】证明学习率收敛的定理:
论文图片4

定理2

【内容】分层算法只能收敛到递归最优
论文图片5
算法收敛到分层最优,当分层强化学习中的每一层的终止状态唯一时,递归最优将变为分层最优

3 实验及结果分析

3.1 实验平台构成

名字 含义
Environment 俄罗斯方块的容器矩阵
State 左、右、顺时针旋转(最多四次)
Action 方块分布

→ \rightarrow 其他特点和真实游戏相同
→ \rightarrow 消行数作为游戏的得分

3.2 子任务特征提取及参数设置

论文图片6
论文图片7
贪心算法;
学习率 = 0.1;
折扣率 = 0.9;

3.3 结果及分析

论文表格1

这篇论文没有给出与一般分层强化学习/Q学习的算法对比表现图。

  1. h o l e hole hole c h a n n e l channel channel对实验结果的影响较大 → \rightarrow 过多,将会导致平台一直处于高位运行,那么局部最优更容易导致游戏结束
  2. 优于一般的分层算法和Q学习
  3. 只使用基本的强化学习算法 → \rightarrow 几乎不能得分
  4. 普通分层强化学习 → \rightarrow 部分解决“维数灾”问题,但实验的收敛速度较慢
  5. 游戏能同时满足在线实时的要求.即使在缺少先验知识和训练的前提下,依然能保持很好的性能

4 结论

猜你喜欢

转载自blog.csdn.net/m0_48948682/article/details/126093006
今日推荐