我对 AlphaGo Zero 的训练阶段使用自对战阶段收集的数据感到困惑。
根据我找到的AlphaGo 零备忘单,训练程序是:
- 从 1 循环到 1,000:
- 从最近 500,000 场比赛中抽取 2048 集的小批量样本
- 使用这个小批量作为训练的输入(最小化他们的损失函数)
- 在这个循环之后,将当前网络(训练后)与旧网络(训练前)进行比较
然而,在阅读了这篇文章之后,我没有看到任何关于他们在这些小批量中使用了多少个 epoch 的信息。
问题:
- 那 1,000 次训练迭代是算法的实际时期吗?然后,Keras 代码将被松散地转换为:
network.fit(x_train, y_train, batch_size = 2048, epochs = 1000, ...)
- 还是他们实际上有一个用于培训的 for 循环?然后,Keras 代码将被松散地转换为:
for _ in range(1000):
x_train, y_train = sample_states_from_past_games(data_from_selfplay)
network.fit(x_train, y_train, batch_size = ???, epochs = ???, ...)
如果是第二种选择,我想知道他们使用了多少批次和时代。