20200906: 拖延半年多没有整理笔记,将剩下的内容整理到单独的笔记中。
Actor:可以感知环境中的状态,通过执行不同的动作得到反馈的奖励,在此基础上进行学习优化。
Environment:指除 Actor 之外的所有事务,受 Actor 动作影响而改变其状态,并给 Actor 对应的奖励。
一些符号:
State s 是对环境的描述,其状态空间是 S。
在围棋等部分任务中,无法获得中间的 r(下完完整的一盘棋后能得到输赢的结果)。
参数更新方法:
在环境中进行采样,得到一系列的轨迹和回报。
最下面公式分别是反向传播梯度计算和 PG 的反向梯度计算,PG 中要乘以整个轨迹的 R。
强化学习的优化和样本质量有关,避免采样不充分。Reawrd 函数变成 R-b,代表回报小于 b 的都被我们当成负样本,这样模型能去学习得分更高的动作。b 一般可以使用 R 的均值。
一场游戏中,不论动作好坏,总会乘上相同的权重 R,这种方法是不合理的,希望每个 action 的权重不同。
在 p 和 q 分布不一致时,且采样不充分时,可能会带来比较大的误差。
和之前相比,相当于引入重要性采样,所以也有前一节中提到的重要性采样不足问题。
PPO/TRPO
为了克服采样的分布与原分布差距过大的不足,PPO 引入 KL 散度进行约束。KL 散度用来衡量两个分布的接近程度。
KL 散度可能比较难计算,在实际中常使用 PPO2。
Another Critic
对于非分类的方法:
在给定 state 下,分别代入 action,取函数值最大的 a,作为后面对该 state 时采取的 action。
左右两边的网络相同,如果同时训练比较困难。简单的想法是固定右边的网络进行训练,一定次数后再拷贝左边的网络。
Q function 导致 actor 每次都会选择具有更大值的 action,无法准确估计某一些动作,对于收集数据而言是一个弊端。
在训练过程中,对于经验 buffer 里面的样本,TD error 比较大的样本有更大的概率被采样,即难训练的数据增大被采样的概率。
Noise on Action:在相同状态下,可能会采取不同的动作。
Q 是累积收益的期望,实际上在 s 采取 a 时,最终所有得到的 reward 为一个分布 reward distribution。部分时候分布不同,可能期望相同,所以用期望来代替 reward 会损失一些信息。
Distributional Q-function 直接输出分布,均值相同时,采取方差小的方案。这种方法不会产生高估 q 值的情况。
action 是一个连续的向量,Q-learning 不是一个很好的方法。
从 a 中采样出一批动作,看哪个行动 Q 值最大。