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