0. 入门介绍
在强化学习中,常用的方法主要包括:value-based的方法和policy-based的方法。
value-based方法要早于policy-based方法,其中,value-based方法是为了训练一个critic,负责判断actor做的好不好。policy-based方法是为了训练一个actor,用于获得更好的结果。
1. Policy-based Approach
1.1 使用神经网络来训练Actor
这里,actor的输出是一个概率分布,这样,最终产生的动作是随机的(stochastic),这样,在很多场景下是非常好的,如玩游戏等,可以尽可能探索新的路径。
另外,使用network代替lookup table的好处是它的泛化性更好,即便是一幅没有见过的状态图像,也是可以有较合理的结果的。这就非常适合那种输入是不可穷举的场景了。
1.2 设计损失函数
在开始设计RL的损失函数之前,我们先来回归一下监督学习中的损失函数。
监督学习中常用的Loss function是cross entorpy loss。
RL中常用的损失函数是total reward的期望值,即:N轮 τ \tau τ对应reward的均值。
另外,即便同一个actor在玩游戏,产生的序列 τ \tau τ也是不一样的,原因是由于游戏的随机性,以及actor的随机性。
产生的不同序列 τ \tau τ的概率,计算方式如上。其中,只有与 θ \theta θ相关的,才受actor影响。
reward的期望值,可以用N轮 τ \tau τ对应reward的均值来代替。
1.3 优化算法
优化算法是梯度上升,因为我们希望reward的期望值越大越好。
问题的核心在于如何计算梯度?这里采用的是policy gradient
R θ R_{\theta} Rθ本身是不可微的,因为这里的 R θ R_{\theta} Rθ是环境给的reward。
所以,这里我们需要做个转换,将计算