随机种子与可复现性
Random Seed & Reproducibility常用固定随机数起点让实验能重跑,并用多个种子检验结果是不是靠运气。
深度学习里很多环节带随机性:网络初始化、数据打乱、Dropout、强化学习的探索噪声、仿真的域随机化。随机种子是随机数生成器的起点,固定 Python、NumPy、PyTorch 的种子,同一份代码就能尽量跑出同样结果;但 PyTorch 官方说明,跨版本、跨平台仍不保证完全一致。可复现性的另一层意思是结论可信:Henderson 等人 2018 年发现,深度强化学习只换种子,结果就可能差到影响「谁更好」的判断。所以应报告多个种子的均值和置信区间,Agarwal 等人 2021 年还建议用四分位均值(IQM)和自助法置信区间。
例子PyTorch 中固定种子:torch.manual_seed(0)、np.random.seed(0)、random.seed(0),再设 torch.backends.cudnn.benchmark=False 和 torch.use_deterministic_algorithms(True);比较两种强化学习算法时,每种用 5 个不同种子各跑一遍,报告均值和置信区间。
- 也叫
- 随机种子、Random Seed、可复现性、Reproducibility、多种子实验
- 相关
- 超参数、消融实验、评测统计显著性(置信区间 / 序贯检验 / 多随机种子)、基准测试、训练集 / 验证集 / 测试集
- 来源
- Deep Reinforcement Learning that Matters (Henderson et al., AAAI 2018)
PyTorch Docs: Reproducibility
Deep Reinforcement Learning at the Edge of the Statistical Precipice (NeurIPS 2021)