有模型与无模型

强化学习的一个最重要的分支即为有模型 () 与无模型 () 学习. 它们的区别在于, 代理人 (, 即执行算法的主体) 是否获得环境的模型 (). 有了模型, 就可以预知状态转移以及回报.

有模型

有模型能够让代理人在做出决策前先思考, 看看在做出某个可能的动作后会发生什么, 并在可能的动作中选择出确切的决策. 与无模型相比, 能够大大提高样本效率 (, 你从每条样本中得到的越多, 样本效率就越高, 详情可见 What is sample efficiency?).

但是有模型学习同样也有缺点, 得到一个很好描述现实的模型通常是不可能的. 并且代理人有可能在模型上学到一些 “偏见” (可以类比监督学习中的过拟合), 这使得代理人在模型中表现德很好, 但是在真实环境中表现并不是很好 (甚至很差) .

无模型

无模型就比较好介绍了, 就是没有这个模型.

如何学习

无模型

参数优化

参数优化方法将策略表示为一个与有关的函数. 优化参数可以直接用性能指标 (, 可以类比损失函数)来进行梯度提升 () , 也可以使用性能指标的近似 (当性能指标本身难以获得时) 来间接的优化.

参数优化一般是同策略 () 的, 即策略改进和策略评估的对象是同一个策略, 与之相对的还有异策略 (), 详情可见 What is the difference between off-policy and on-policy learning ?

Q-Learning

 方法会学习一个近似器 ()来近似动作-价值函数, 优化的过程常常使用异策略的方法, 即可以不理会代理人真正选择的动作所产生的数据, 而使用其他数据 (比如说最优动作产生的数据). 而得到后, 每个状态的动作如下给出

优缺点

参数优化 与各自有其优缺点. 由于参数优化法直接优化你想要的 (策略) , 这使得它更加稳固与可靠. 而通过优化近似动作-价值函数来间接优化策略, 使得它并没有那么稳固 (有许多失败的模式), 但是当它生效时, 样本效率会非常高, 它可以高效的利用信息.

有模型

在有模型中, 模型要么被给出, 要么要学习.

纯规划 (Pure Planning)

纯规划是一个最基础的算法, 它不显式的表示策略, 而是用纯规划技术比如模型预测控制 () 来选择动作. 每次代理人观察环境时, 它会计算出一个计划 (行动的序列) , 并且这个计划相对于这个模型来说是最优的, 然后执行该计划的第一个动作 (即当前最优动作) , 然后舍弃该计划其余动作. 这种计算在每次代理人与环境交互的时候都会执行一次, 并产生一个新计划.

专家迭代 (Expert Iteration)

比纯计划更进一步, 专家迭代学习并使用了一个显式的策略. 代理人在模型中使用一种规划算法 (比如蒙特卡罗搜索树) 来采样, 然后为计划生成候选动作, 这要比单纯的基于策略做出动作效果要好. 因此称之为 “专家” .

无模型的数据增强 (Data Augmentation)

利用在模型上采样的数据, 来训练无模型策略, 可以理解为扩充 (增强) 了数据. 可以使用虚拟数据 (采样生成的数据) 和真实数据的混合, 或者直接全部使用虚拟数据.

规划嵌入策略

将规划本身也嵌入策略中, 作为其子部分. 这样策略不仅要考虑当前动作, 还要考虑当前是否要进行规划以及如何规划 (规划本身也会影响动作的选择) . 这样当模型和现实有较大差距时, 策略会学着去不做规划.