agent不仅可以和环境交互,也可以和模型交互
规划是将模型作为输入并通过与环境模型交互来产生或改进策略的计算过程
状态空间规划:在状态空间内搜索到达目标的最优策略或最优路径
Model-based Value Optimization方法享有一个一般结构
Model-based Policy Optimization的结构更加简单
真实经验的两个作用:
更好的采样效率
Model-based RL存在的问题:
模型\(\mathcal{M}\)是由\(\eta\)参数化的MDP过程的表示。一般来说,模型\(\color{green}{\mathcal{M} = (P, R)}\)包含状态转移和奖励
\[\begin{aligned} S_{t+1} & \sim P_{\eta}(S_{t+1} \vert S_t,A_t) \\ R_{t+1} & = R_{\eta}(S_{t+1} \vert S_t,A_t) \end{aligned}\]通常情况下,我们假设状态转移与奖励之间条件无关
\[P(S_{t+1},R_{t+1} \vert S_t,A_t) = P(S_{t+1} \vert S_t,A_t) P(R_{t+1} \vert S_t,A_t)\]比如,已知模型:围棋,游戏的规则就是模型;物理模型,车辆的动力学模型和自行车的运动学模型
目标:从经验\(\{S_1, A_1, R_2, \ldots, S_T\}\)中学习模型\(\mathcal{M}\eta\)。这可以看作一个监督学习问题。学习\(s,a \rightarrow r\)是回归问题,学习\(s,a \rightarrow s^{\prime}\)是密度估计问题。损失函数可以是均方误差、KL散度,然后优化\(\eta\)来使得经验损失最小。
Examples of models:
Table Lookup Model
模型是一个明确的MDP,\(\hat{\mathcal{P}}\)和\(\hat{\mathcal{R}}\)。计下每个状态-动作对的访问次数为\(N(s,a)\),则
\[\hat{\mathcal{P}}_{s,s'}^a = \frac{1}{N(s,a)} \sum_{t=1}^T 1 (S_t=s, A_t=a, S_{t+1}=s')\] \[\hat{\mathcal{R}}_{s,s'}^a = \frac{1}{N(s,a)} \sum_{t=1}^T \sum_{t=1}^T 1 (S_t=s, A_t=a)R_t\]Example of AB
有两个状态A和B,没有折扣,观察到8个episode:(A, 0, B ,0), (B, 1), (B, 1), (B, 1), (B, 1), (B, 1), (B, 1), (B, 0)。所以从经验中估计的查表模型如下
一个简单但采样高效的规划方法是只用模型来生成样本。一般步骤:
Example of AB
从得到的模型中采样经验:(B, 1), (B, 0), (B, 1), (A, 0, B ,1), (B, 1), (A, 0, B ,1), (B, 1), (B, 0)。在采样到的经验的基础上进行Monte-Carlo学习,得到\(V(A) = 1, V(B) = 0.75\)。
Planning with an inaccurate model
给定一个不完美的模型\(<\mathcal{P}_\eta, \mathcal{R}_\eta> \neq <\mathcal{P}, \mathcal{R}>\),model-based RL的性能上限是近似MDP \(<\mathcal{S}, \mathcal{A}>, \mathcal{P}_\eta, \mathcal{R}_\eta\)的最优策略。当模型不准确的时候,规划过程只能计算出次优策略。
可能的解决方案:
现在,我们有两类经验。
Real experience:从环境(true MDP)中采样 \(S', S \sim \mathcal{P}_{s, s'}^a\), \(R = \mathcal{R}_s^a\)
Simulated experience:从模型(approximate MDP)中采样 \(\hat{S}', \hat{S} \sim \mathcal{P}_\eta (S' \vert S, A)\), \(\hat{R} = \mathcal{R}_\eta (R \vert S, A)\)
Model-free RL
Model-based RL(采用Sample-based Planning)
Dyna
Dyna for Integrating Learning, Planning, and Reacting
Dyna出自Richard Sutton的Integrated architectures for learning, planning, and reacting based on approximating dynamic programming、Dyna, an integrated architecture for learning, planning, and reacting,结合了direct RL, model learning and planning。
Result of Dyna
一个简单的迷宫环境:尽快从S到G。学习曲线改变每个实际步骤的规划步数。
先前的model-based value-based RL从模型获取仿真轨迹,然后再计算价值和策略。我们可以省去估计价值的步骤直接优化策略和学习模型吗?
策略梯度作为model-free RL,只关心策略\(\pi_\theta(a_t \vert s_t)\)和期望return。在策略梯度中,并不需要\(p(s_{t+1} \vert s_t, a_t)\)(不管是否已知)。但是,如果我们知道模型或者可以学习模型的话,是不是可以做的更好呢?
RL中的model-based policy optimization受控制理论影响很深。控制理论会优化控制器。模型的动力学方程写作\(s_t = f(s_{t-1}, a_{t-1})\),控制器利用模型来决定能够最小化一段轨迹成本的最优控制:
\[\underset{a_1, \ldots, a_T}{\arg \min} \sum_{t=1}^T c(s_t, a_t) \qquad \text{s.t. } s_t = f(s_{t-1}, a_{t-1})\]如果动力学方程已知,那么这就是最优控制问题。成本函数是负的RL问题中的奖励。在一些简化的假设下,最优解可以通过Linear-Quadratic Regulator (LQR) 和iterative LQR (iLQR)求得。
如果我们不知道动力学模型,那么可以讲将模型学习和轨迹优化结合起来:
Step 2是监督学习,目的是训练一个能最小化采样数据最小均方误差的模型。
Step 3可以利用LQR求解,利用模型和代价函数来计算最优轨迹。
先前的解决方案很容易漂移,微小的误差会沿着轨迹快速累积。我们可能会落在模型还没有学到过的区域内,所以我们得到如下迭代学习模型的改进算法:
不过,先前的解决方法在再次拟合模型之前执行了所有的规划操作。我们可能已经off-grid太远了。所以,我们可以用Model Predictive Control (MPC),我们虽然优化整条轨迹但是我们只执行第一步,然后观察后重新规划。重规划给了我们机会,能够再次观察当前状态后执行正确的动作。
最后,我们可以将策略学习与模型学习和最优控制结合起来。
用什么函数来参数化动力学方程呢?
Global model v.s. Local model
Local model是时变线性高斯时
\[\begin{aligned} p(\mathbf{x}_{t+1} \mid \mathbf{x}_t, \mathbf{u}_t) & = \mathcal{N} \left( f(\mathbf{x}_t, \mathbf{u}_t) \right) \\ f(\mathbf{x}_t, \mathbf{u}_t) & = \mathbf{A}_t \mathbf{x}_t + \mathbf{B}_t \mathbf{u}_t \end{aligned}\]我们需要的只有局部梯度\(\mathbf{A}_t = \frac{df}{d\mathbf{x}_t}\)和\(\mathbf{B}_t = \frac{df}{d\mathbf{u}_t}\)。