type
status
password
date
slug
summary
category
URL
tags
icon
模仿学习(imitation learning)不是强化学习,而是强化学习的一种替代品。模仿学习向人类专家学习,目标是让策略网络做出的决策与人类专家相同;而强化学习利用环境反馈的奖励改进策略,目标是让累计奖励(即回报)最大化。
行为克隆
行为克隆的本质是监督学习,通过模仿人类专家的动作来学习策略。事先准备一个由(状态,动作)这样的二元组构成的数据集:
其中 是一个状态,而对应的 是人类专家基于状态 做出的动作。可以把 和 分别视作监督学习中的输入和标签。
行为克隆训练出的策略网络通常效果不佳。人类不会探索奇怪的状态和动作,因此
数据集上的状态和动作缺乏多样性。
逆向强化学习
基本设定
- IRL假设智能体可以与环境交互,环境会根据智能体的动作更新状态,但是不会给出奖励。智能体与环境交互的轨迹是这样的
- IRL假设我们可以调用人类专家的策略与环境交互,生成轨迹。
IRL 的基本思想
IRL的目的是学到一个策略网络,模仿人类专家策略。如图12.4所示,IRL首先从中学习其隐含的奖励函数,然后利用奖励函数做强化学习,得到策略网络的参数。我们用神经网络来近似奖励函数。神经网络的输入是和,输出是实数;我们需要学习它的参数。

奖励函数
待补充
训练策略网络
假设我们已经学到了奖励函数,那么就可以用它来训练一个策略网络。用策略网络控制智能体与环境交互,每次得到这样一条轨迹:
得到的就是这样一条没有奖励的轨迹。好在我们已经从人类专家身上学到了奖励函数,可以用算出奖励:
生成判别模仿学习
生成判别模仿学习(generativeadversarialimitation learning,缩写GAIL)需要让智能体与环境交互,但是无法从环境获得奖励。GAIL还需要收集人类专家的决策记录(即很多条轨迹)。GAIL的目标是学习一个策略网络,使得判别器无法区分一条轨迹是策略网络的决策还是人类专家的决策。
模型结构
GAN由生成器(generator)和判别器(discriminator)组成。生成器负责生成假的样本,而判别器负责判定一个样本是真是假。
- 生成器:策略网络的输入是状态,输出是一个向量:
输出向量的维度是动作空间的大小,它的每个元素对应一个动作,表示执行该动作
的概率。
- 判别器:判别器的输入是状态,输出是一个向量:
输出向量的维度是动作空间的大小,它的每个元素对应一个动作,元素接近表示动作是人类专家做的。元素接近表示动作是策略网络生成的。
训练过程
每一轮训练更新一次生成器,更新一次判别器。训练重复以下步骤,直到收敛。设当前生成器和判别器的参数分别为和。
- 从训练数据集中均匀抽样一条轨迹,记作
- 用策略网络控制智能体与环境交互,得到一条轨迹,记作
- 训练生成器:判别器可以评价有多真实;越大,说明 在判别器的眼里越真实。利用判别式网络得到第步的回报;越大,则说明越真实。我们有这样一条轨迹:
设当前策略网络的参数为,根据重要性采样,使TRPO来更新策略网络:
- 训练判别器:我们希望判别器知道是真的,所以应该鼓励尽量大。我们希望判别器知道是假的,所以应该鼓励; 尽量小。定义损失函数