C51
概述
C51(分布式强化学习,Bellemare, Dabney, Munos, 2017)不学习 Q(s,a) 的期望值,而是学习回报的完整概率分布 Z(s,a)。将分布离散化为 51 个等间距原子(atoms),用 KL 散度而非 MSE 作为损失函数,保留多峰回报结构并提供更丰富的梯度信号,在 Atari 游戏上中位数得分达 178%,是Rainbow的核心组件之一。
关键内容
-
核心思想转变:DQN 学习
Q(s,a) = E[Z(s,a)](期望),C51 学习Z(s,a) ~ p(·)(完整分布),保留了值分布的多峰性(如奖励有多条路径时分布呈多峰)。 -
C51 参数化(51 个原子):分布离散为等间距原子
{z_i}_{i=0}^{50},Δz = (V_max - V_min) / 50,V_min=-10,V_max=10(Atari 设定);网络输出 51 个概率值经 softmax 归一化。 -
分布式贝尔曼算子(Categorical Projection):对每个原子应用贝尔曼算子得
Tz_i = r + γ z_i,因 Tz_i 不在原子网格上,需将目标分布投影回网格(线性插值分配概率)。 -
损失函数:
KL(projection(T Z_{θ̄}(s',a*)) || Z_θ(s,a)),用 KL 散度而非 MSE,更好地度量分布差异。 -
在 Rainbow 中的变体:PER 的优先级从 TD 误差改为 KL 散度;Dueling 分解也扩展到分布维度(V 流和 A 流各输出 51 维分布)。
-
优势:保留多峰分布结构;提供比单点估计更丰富的梯度信号;天然表达风险和不确定性;与 Double Q 结合可进一步降低过估计。
-
局限:固定原子网格不适合分布形态差异极大的任务;需手动设定 V_min/V_max;IQN(2018)用隐式分位数替代固定原子改进了此局限。
来源
- rl_03_rainbow — Rainbow: Combining Improvements in Deep Reinforcement Learning (arXiv:1710.02298, AAAI 2018),其中详述 C51 在 Rainbow 中的集成