本文与原视频部分内容有些出入,我觉得应该是老师讲错了。。。。不喜勿喷!
监督学习的优化目标可以写成如下形式:
监督学习中最基本的假设就是训练集和测试集的数据分布是一致的,也就是常说的数据满足独立同分布。无监督学习主要是从数据本身发现一些规律,像聚类,特征提取这些。从大的方面来说,无监督学习可以给有监督学习做预处理。比如像自监督学习,编码器可以将高维数据压缩到低维空间:f ( x ) = z f(x)=zf(x)=z,解码器可以将低维数据进行还原:g ( z ) = x
强化学习主要是处理高维的状态空间和高维的动作搜索空间的问题。
Imitation Learning
模仿学习中,专家提供一个轨迹样例(demonstrations
):
Behavior cloning
在最简单的行为克隆算法中,我们可以将专家的数据拆分为类似监督学习的数据集:
优化的目标就与监督学习无异了:
这里最大的问题在于,不同的策略收集到的轨迹数据是不一样的。如果我们用行为克隆算法学习到的策略去采样样本,这个样本的数据分布和一开始的数据分布是不一样的(因为有的时候我们会也会期望去用学习到的策略去采样样本)。
- 理论的分析
我们考虑一个T-step
的强化学习问题,考虑T-step
的平均奖励作为回报的优化目标,并且奖励回报的值在0-1
之间:
如果BC
算法所学得的策略得到的动嘴,与最优动作之间的误差小于ϵ 的话:
我们BC
策略的回报边界为:
那这个边界是怎么证明出来的呢?我们假设有如下的T
步,每一步是具有一个概率ϵ 走错,如果全部不走错,得到的奖励是T/T
更好的方式是通过专家数据学习得到一个策略,然后拿到这个策略与环境交互,再对交互得到的数据惊醒专家的打标签评估。循环迭代。这类算法叫做DataSet Aggregation
。
Apprentice Learning
从专家的数据中学习奖励函数。回顾贝尔曼方程有:
对于任何一个策略有:
我们是无法穷举所有的策略的,通常的做法可以分为以下几步:
值函数的计算方式可表示为:
算法可以表示为:
上面的方法中,我们考虑的都是动作的分布,期望学习得到的策略与专家策略分布一致。如果我们把所有的状态和动作的轨迹看作一个数据,然后来计算两坨数据之间的分布的话,我们其实也能够得到求解上述问题的一个思路。
Generative Adversarial Imitation Learning
调用一个判别器来判断数据是来自专家,还是来自生成的。生成器用来生成策略,并且这个生成器是用的强化学习的算法,用来与环境进行交互采样。生成器的值用来表示奖励函数。
判别器的loss
可以表示为:
奖励函数可以表示为:
生成对抗模仿学习,逆强化学习,和基于熵的强化学习之间的关系可以参考A Connection between Generative Adversarial Networks, Inverse Reinforcement Learning, and Energy-Based Models 和 Learning Robust Rewards with Adversarial Inverse Reinforcement Learning。
更高级的模仿学习的话,可能就是去学习一些无标注数据这样,比如像一个视频这样:更多的可以去参考伯克利,斯坦福,宾大联合发表:从观察和交互中学习预测模型。