【模仿学习笔记】行为克隆 Behavior Cloning

目录
  1. 一、行为克隆概念
  2. 二、行为克隆过程
  3. 三、行为克隆的优势与不足
  4. 一、模仿学习简介
  5. 二、数学基础(马尔可夫决策过程)
  6. 三、模仿学习算法
  7. 3.1 行为克隆算法

一、行为克隆概念

行为克隆属于模仿学习中的方法,不是强化学习。

强化学习:从环境给出的奖励中进行监督; 模仿学习:从人类动作经验中监督 区分两者主要在于,模仿学习没有奖励回报,知识模仿专家动作。

二、行为克隆过程

  1. 观测当前状态 sts_t
  2. 策略网络做出预测 ptp_t
  3. 专家的动作是 ata_t^*,向量化从而得到 yty_t
  4. 计算损失 CrossEntropy(yt,pty_t,p_t)
  5. 使用梯度下降来更新策略网络

三、行为克隆的优势与不足

如果当前的状态出现在训练数据中,则可以根据行为克隆训练得到的策略网络,执行类似于人类专家的动作。

但是如果当前状态没有出现在训练数据中,那么策略网络输出的动作可能不会很好,而且错误会累加。这种情况尤其出现在状态极为复杂的情况下。

一、模仿学习简介

模仿学习是让智能体从专家示例中学习,从而像人类专家一样能够智能决策。

  • 不同于传统的监督学习算法,监督学习需要考虑大量的约束条件,根据约束设计特定的监督方法来引导智能体;
  • 而模仿学习旨在让人类为之恩能够提提供大量的示例行为,利用这些专家示例来教会智能体进行决策。

目前模仿学习主要分为两类:

  • 行为克隆:尝试最小化智能体策略和专家策略的动作差异,把模仿学习作为回归或分类任务学习;
  • 对抗式模仿学习:通过逆强化学习来构建对抗的奖励函数,最大化这个奖励函数来模仿专家行为。

二、数学基础(马尔可夫决策过程)

考察一个有限状态的马尔可夫链,状态空间S={1,2,3,,S}S=\{1,2,3,\cdots,|S|\},由于马尔可夫性,状态转移与历史状态无关,因此对于有限状态的马尔可夫链,状态转移矩阵 PP 如下:

P=[p1,1p1,2p1,Sp2,1p2,2p2,SpS,1pS,2pS,S]P=\begin{bmatrix}{} p_{1,1} & p_{1,2} & \cdots & p_{1,|S|}\\ p_{2,1} & p_{2,2} & \cdots & p_{2,|S|}\\ \cdots & \cdots & \cdots & \cdots\\ p_{|S|,1} & p_{|S|,2} & \cdots & p_{|S|,|S|} \end{bmatrix}

其中每一个元素 pi,jp_{i,j} 表示由状态 ii 转移到 jj 的概率,满足:

i=1SPi,j=1,j=1SPi,j=1\sum^{|S|}_{i=1}P_{i,j}=1, \sum^{|S|}_{j=1}P_{i,j}=1

为了完整表示状态转移过程,需要指定初始状态分布 ρ\rho ,便于递归计算某个状态 iitt 时刻出现的概率(上一时刻为 jj 状态的概率 ×\times jj 状态到 ii 状态的状态转移概率):

P(st=i)=jSP(st1=j)pj,i\mathbb{P}(s_t=i)=\sum_{j\in S}\mathbb{P}(s_{t-1}=j)p_{j,i}

对于一个马尔可夫决策过程,状态转移不仅受到上移时刻状态的影响,还取决于当前动作,因此不仅要考虑状态,还要额外考虑动作和奖励,即一个马尔可夫决策过程可以表示为 M=(S,A,ρ,P,r)M=(S,A,\rho,P,r) ,数学上表示为 P(st+1st,at)P(s_{t+1}|s_t, a_t)

为了表示动作产生的过程,引入了策略 π(as)\pi(a|s) ,代表在状态 ss 处选择动作 aa 的概率,因为我们最多有 S|S| 个状态和 A|A| 个动作,π\pi 也可以用一个 S×A|S| \times |A| 的矩阵来表示。

据马尔可夫决策过程的交互规则以及累计回报计算,实际需要考虑回报折扣,定义一个折扣因子 γ(0,1)\gamma \in(0,1),则马尔可夫决策过程变成了由6元组表示 M=(S,A,ρ,P,r,γ)M=(S, A, \rho, P, r, \gamma),在 MM 下的累计回报为:

V(π)=E[t=0γtr(st,at)]V(\pi)=\mathbb{E}\left[\sum^\infty_{t=0}\gamma^t r(s_t, a_t)\right]

这里的 V(π)V(\pi) 代表了策略 π\pi 所能获得的累计奖励的期望,每一步奖励都会被乘以系数 γt\gamma^t,以此来保证无限求和时正确的。

当策略 π\pi 确定时,我们可以对任意的起始状态 ss 来定义其状态价值函数

Vπ(s)=E[t=0γtr(st,at)s0=s,atπ(st),st+1P(st+1st,at)].V^{\pi}(s)=\mathbb{E}\left[\sum_{t=0}^{\infty}\gamma^{t}r(s_{t},a_{t})\bigg|s_{0}=s,a_{t}\sim\pi(\cdot|s_{t}),s_{t+1}\sim P(s_{t+1}|s_{t},a_{t})\right].

同样可以定义状态-动作价值函数

Qπ(s,a)=E[t=0γtr(st,at)s0=s,a0=a,atπ(st),st+1P(st+1st,at)].Q^{\pi}(s,a)=\mathbb{E}\left[\sum_{t=0}^{\infty}\gamma^{t}r(s_{t},a_{t})\bigg|s_{0}=s,a_0=a,a_{t}\sim\pi(\cdot|s_{t}),s_{t+1}\sim P(s_{t+1}|s_{t},a_{t})\right].

三、模仿学习算法

3.1 行为克隆算法

行为克隆的想法就是从数据中估计专家策略 πE\pi^E,具体到一个状态 ssπ(s)\pi(\cdot|s) 就是动作空间 AA 上的概率分布。一个经典的估计方法就是最大似然估计。

maxθ(s,a)Dlog(π^θ(as))\max_{\theta}\sum_{(s,a)\in\mathcal{D}}\log(\hat \pi_{\theta}(a|s))

可以证明该最大似然模型对应的问题是一个凸优化问题。

  • 如果动作空间是离散的,可以使用 AA 维的向量定义 softmax 函数,这时要解决的问题就变成了常见的分类问题中的交叉熵优化问题。
  • 如果哦当作空间是连续的,可以使用高斯分布表示一个策略,π^θ(s)=N(μθ(s),σθ2(s))\hat \pi_\theta(\cdot|s)=N(\mu_\theta(s),\sigma^2_\theta(s)),因此问题被转换为基于均方差的回归问题。

行为克隆算法可以直接从专家数据中估计出策略 π\pi ,但也会带来问题,即训练数据集

参考链接:

  1. 许天, 李子牛, 俞扬. 模仿学习简洁教程. 2021