本课从 模拟学习 开始讲起。模拟学习是一种由 传统有监督学习 启发而来的用于管制实践的办法。
(基于价值的思路和传统的监督学习联合,便提出一系列基于生成 价值数据集(Qtable)的办法,而基于 policy 的思路和 监督学习联合,就是 基于生成 action 数据集的办法,那就是模拟学习。)
“Generally, it doesnt work.”: 模拟学习有很多问题 及相应的钻研
- 黑线是训练轨迹: 人为给出的, 被模拟的
- 红线: expected 指的是 数学冀望. 理论是 policy 模型 预测的最优线路
-
指的是, 有监督学习的 模拟学习 肯定会有误差
-
次要起因是,
- 有监督学习要求, 测试集 和 训练集 的自变量须要来自同一个数据分布 ($o_{t}$ 的散布雷同 ) ,
- 但 policy 因为 本身的相对存在的误差 产生不同的 action, 导致不同的 observation 散布 ($p_{data}(o_t) \ne p_{\pi_{\theta}}(o_t)$)
-
令 $p_{data}(o_t) = p_{\pi_{\theta}}(o_t)$ : DAgger:
- 人工对 policy obervation 标注 正确的 action
-
observation 偏差的起因:
- 人类的 Action 不是 蒙特卡洛的: 蒙特卡洛 假如 是同一个 observation 不论几次 都会采取同样的行为 - 钻研一: - 用间断的一段 Ob 来对应 Action 绝对更正当 - "RNN + CNN 图像处理" 解决 不定长的图像序列 (history) - ![Pasted image 20221231113932](https://raw.githubusercontent.com/casual-lab/Images/master/2023/01/04-1672817267-57250f9b5ef81cc8b1fc6e5787fd467a-Pasted%20image%2020221231113932.png?token=ALYUVK4DKH5HQPVKJNQD4VTDWUVMC) - 钻研二: Causal Confusing: 模拟学习 察看 与 动作 之间的 因果关系 模型无奈精确把握 - 刹车指示灯亮, - ![Pasted image 20221231114425](https://raw.githubusercontent.com/casual-lab/Images/master/2023/01/04-1672817267-223ac4b2752740d4b42e416cf442f0b5-Pasted%20image%2020221231114425.png?token=ALYUVKYLVENFWJWSTNTFMHDDWUVMG) - Q1 我的思考: 能够, 因为蕴含了工夫序列关系能够示意因果关系, - Q2 我思: 能够, 通过人为的标注改正谬误归因 - Multimodal Behavior (多峰概率分布的行为) - Policy 的决策是取概率分布的冀望 (求均匀) - 当 action 是 间断散布 (高斯分布), 如果两种 ** 相同但都正当的 ** action 互相对消, 则得出冀望为第三种不合理的 Action - 即, 实际上 action 的 散布应该是一个多峰的散布, 这样的散布很难训练. 罕用的间断散布: 高斯分布是单峰的 - ![Pasted image 20221231115501](https://raw.githubusercontent.com/casual-lab/Images/master/2023/01/04-1672817267-84e75762a256cd604f38a512334ebdb2-Pasted%20image%2020221231115501.png?token=ALYUVK43TDQFKU6MVGH2IRDDWUVMM) - 高斯输入混合: 预测出多个 高斯分布求均匀 - latent variable: 加一个特制的噪声, 不容易实现 - ![Pasted image 20221231115714](https://raw.githubusercontent.com/casual-lab/Images/master/2023/01/04-1672817267-3d8396254235a45b8db85851f1ef74b1-Pasted%20image%2020221231115714.png?token=ALYUVK4CQ27ZOV2RYFZB34LDWUVMO) - Autoregressive Discretization: - 由上, 离散 action 散布 不存在 单峰散布 对消的问题, 一种思路是吧连续变量离散化. - 如果把高维度动作离散化,每个动作维度的每个离散值别离训练一个概率网络, 计算量大不事实。- Autoregressive discretization:它首先把动作的第 1 维离散为多个动作,比方 3 个,这些动作有个对应的 softmax 层来解决,当运行向前流传后,咱们只有从 softmax 进行采样就能失去最优动作;- 接着把第 1 个动作和之前的图像作为第 2 个 softmax 网络的输出,输入第 2 个最优动作;而后反复上述过程直到输入所有动作。- 实质是共用了一部分网络
如何实现 模拟学习
一些实践:定义 处分函数 或者 代价函数
-
定义一个 处分函数(或代价函数)
- 如何定义
- 简略的 behavior cloning
- 不论是 处分函数 还是 损失函数, 最终优化的都应该是 基于 learned policy 的 处分 / 损失,而不是 基于 expert‘s policy 的 。这也是为什么 behavior cloning 不行,以及 DAgger 的思路起源
上面的剖析是,系统分析,behavior cloning 的 bound(?)以及如何 formalize 这一(?expert policy 到 learned policy)散布迁徙的问题。
如果应用 0-1 损失函数如图,如果第一步走错,那么第二步的 observation 就是 专家没有见过的,因而 数据集中没有这个数据。就如同走钢丝。某一点处出错,之后的都不可能正确。
因而,$\epsilon$ 是犯错的概率上线,则损失冀望的上届如图。T 是总的门路步数。
更个别的建模是,policy 在没有见过但类似的 state 也能体现很好。将 State 视作一个概率分布。但单纯的 cloning $p_{train} \ne p_{\theta}$,训练集和智能体所遇到的 state 不是同散布的。
因而 DAgger 人为给 $p_{\theta}$ 加标签, 使得 $p_{\theta}=p_{train}$ , so:
进一步的缩小假如, 实际上 当 $p_{train}(s_t)\ne p_{\theta}(s_t)$ 如上图.
$p_{\theta}$ 示意的是一个智能体, 基于本人 learned policy 摸索察看到的 state 的散布概率. 类比于走钢丝的思路:
- 一方面 $(1-\epsilon)^{t}$ 是 在 $s_t$ 之前 t 个 timestep 齐全依照 expert 的行为 (依照数据集) 走, 那么 基于此的 $s_t$ 条件概率 就是 训练集中 $s_t$ 的概率分布, 即 $p_{train}$
- 另一方面 如果一步走错, 则沿着 learned policy 散布 和 相应的 state 散布 双重概率 的马尔科夫链摸索造成的总体的 state (未知) 概率分布 $p_{mistake}$
其余的 模拟学习思路
这里介绍了一个. 收集同一个指标的不同门路的数据很难, 因为智能体常常会因为随机性无奈精确地达到同一个指标, 因而 这样的数据智能 专家来提供
既然智能体可能随机地达到不同的中央, 那么能够把所有后果不同的 决策过程 收集起来. 吧最终的后果也作为条件来构建条件变量. 因而称作 conditioned policy
Latent Plan, 就是 是用大量的 专家决策数据, 应用对智能体进行 behavior cloning, 在模拟过程中随机地又产生很多随即状态.
这些状态在这个指标中可能没有用, 但可能是其余指标的两头打算 (latent plan 隐打算). 如果把这个 状态 作为后果, 实际上是智能体无意间摸索出达到这个状态的 决策过程.
通过将指标也作为条件来结构条件概率, 就把这些随即摸索进去的 决策数据 也能应用起来。
如果将这个思路更进一步,能够不应用任何专家数据,而是应用一些 随机决策生成的数据 同样能够摸索出一些中间状态的门路,并基于此达到人类心愿的指标