RL论文阅读9-mb-MBMF2017
1. Tittle
2. 标签
- Model-Based
3. 总结
3.1 针对问题
- model free算法的data efficiency 低
3.2 解决办法
使用深度神经网络表示的环境动力学模型来初始化model-free的学习器。从而加速学习过程。
提出的方法能够在高维度的任务中有较好的表现。
4. 原理
4.1 神经网络动力学模型
- 标记
- 输入,状态和动作
- 输出:下一个预测状态与输入状态之间的改变量。
因为直接预测下一个状态比较困难,特别是前后两个状态很接近或者很小时。
所以
长短的利与弊:
- 增长,提升每个数据点信息的可用性,有助于动力学模型的学习和使用学习到的模型做预测
- 但是,增长会提高时间连续的动力学模型的离散型和复杂度,这会使学习的过程更困难。
4.2 模型的训练
数据收集
- 采样开始状态
- 在每个时间步执行随机动作
- 记录长度为T的轨迹
数据处理
把轨迹处理成。 这样输入就有输入和输出的example了。
把example(输入和输出)减去平均值再除以数据的标准差,以确保损失函数能够平等的权衡每个特征。
同时加入了均值为0的高斯噪声,提高模型的健壮性。
存入到KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲D数据集
模型训练
最小化如下误差:
这个误差函数保证了下一个状态预测的准确性。但是我们还需要知道模型多步预测的准确性,因为我们要进行多步控制。使用下面这个H步误差来进行模型的评估:
这个H步验证只用来分析模型好坏,不参与训练。
Model-Based的控制
这里假设奖励函数已知。
为了能够同时使用模型和奖励函数,添加了一个controller,用来计算和选择最优动作。
由于r和动力学模型都是非线性的,直接计算等式4的最优结果很困难。前人已经提出了一些有效的解决方法。这篇文章选用的是simple random-sampling shooting method。 随机再生产K组候选动作序列,使用动力学模型生成相应的状态序列,然后计算每个的奖励,选择累计奖励期望最高的动作序列。
使用MPC(Model predictive control)策略,即执行第一个动作后,到达新的状态,然后在该状态重新计算最优的动作序列,然后再选择第一个动作。高维动作区间和长步骤使用随机MPC可能不充分。
使用动力学模型加上controller的好处是模型只需要训练一次,通过简单的修改reward function,我们就能够在运行时完成各种目标,不需要为了指定任务去重新训练。
在算法描述中,要注意的是训练模型的数据集是两个部分KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲D_{RAND}和D_{RL},也就是在训练模型时整合了on-policy的数据KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲D_{RL}。
4.3 MB-MF整合
上述纯的MB算法虽然只需要很少的数据,但是最终的表现不如MF的算法。所以把这两个结合起来。
结合的方法是训练model-free的策略去模仿我们model-based方法的controller,并且使用模仿学习的结果,来初始化model-free的学习算法,这样加速了前期的学习过程。
step1: 初始化Model-Free Learner
收集MPC Controller根据动力学模型产生的样本轨迹,把他们存放到KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲D^*中。
然后训练策略网络。这个策略服从高斯分布。
那么这个策略的优化目标就是:
、
使用的是DAGGER算法。
step2: 使用这个策略通过model-free算法来继续学习。比如TRPO。来微调策略从而达到较高的水平。