一、介绍
在前面的章节,我们介绍了基于价值的强化学习方式,它通过估计价值函数作为中间结果,然后利用确定的策略,比如 e-greedy 来获取执行动作。
这篇文章介绍的 policy-based 方法试图跳过价值函数,直接优化策略函数;同时介绍这类方法的一个子集 policy gradient,然后实现一个具体的算法 Monte Carlo Reinforce。
二、基于策略的强化学习
Policy-baed 方法的核心思想是将策略 $\pi$ 参数化,比如用一个深度网络来表示,直接输出动作的概率分布。
问题:与 Deep Q-Learning 的区别是什么?
- 两者方法表达上很像,但是学习的内容不同一个是每个动作的价值,后者是动作的概率;
- 迭代策略不同,前者基于价值函数的差异,后者一般基于 Policy-gradient 或者其他损失。
Policy-based 方法的优化方式可以有多种,比如爬山算法(Hill climbing)、模拟退火(Simulated annealing)和进化策略(Evolution strategies)等,我们关注是基于梯度的算法,即 policy-gradient,因为可微能通过深度学习网络进行优化。
下面再介绍下 policy-gradient 方法的优势和不足:
优势:
- 集成简洁,不需要额外保存动作价值表
- 学习的策略可以是随机的
- 对于近似或者相同的观测可以输出不同动作的的概率分布,都可以被随机采样到
- 不用人工设计 exploration/exploitation trade-off,直接按概率输出选择即可
- 能够表达无限动作空间的问题,TODO: How?
- 收敛性更好,比如基于价值的方法动作按最大价值选择,迭代过程中价值只是小幅变化,动作可能完全不同
不足:
- policy-gradient 常常收敛到局部极值,而不是最优值
- 训练时 step-by-step 的方式迭代,效率偏低
- policy-graident 有非常大的方差,需要多重采样或者使用 AC 算法,后续会介绍
三、Policy-graident 方法介绍
参考资料
- Hugging face: https://huggingface.co/learn/deep-rl-course/unit4/introduction