为什么这种合并被证明是有益的?
如果您将共享价值/策略网络视为由一个共享组件(剩余网络层)组成,顶部有一个价值和策略组件,而不是关注点分离,那么它更有意义。
基本前提是网络的共享部分(ResNet)提供了输入的高级泛化(导致移动的游戏状态),这是浅层 Value 和 Policy 网络的良好输入表示。
在这种情况下,我们可以通过训练单个共享 ResNet 并将其用于两个简单得多的网络来大大减少计算负载,而不是为 Value 和 Policy 训练两个 ResNet。在他们的情况下,将两者一起训练也可以改善正则化,从而创建更强大、更通用的表示。
具体来说,Silver等人的 Alpha Go Zero 论文。,在没有人类知识的情况下掌握围棋游戏,指出:
将策略和值组合到一个网络中略微降低了移动预测的准确性,但减少了值错误并将 AlphaGo 中的游戏性能提高了大约 600 Elo。这部分是由于提高了计算效率,但更重要的是,双重目标将网络规范化为支持多个用例的通用表示。
这种技术可以普遍应用还是只在特殊情况下应用?
就像软件库中的通用组件一样,只有当您尝试解决的问题受益于共享表示时,它才有意义。
如果您正在为类似任务训练分类器,或者使用少量数据训练新任务,而您已经在更大、类似的数据集上训练了分类器,则可以使用它。
在围棋之外,它经常用于图像识别。深度预训练网络,例如 ImageNet ILSVRC竞赛中的网络,通常用作起点。它们是已在超过一百万张图像上训练(数周!)的分类器。
然后,假设您想创建一个网络来识别您最喜欢的自行车品牌,您可以从在 ImageNet 上训练的通用图像识别管道开始,切掉执行实际分类的最后一层(“它是边境牧羊犬”)并添加一个小的新分类器,只挑选你关心的自行车。
由于预训练的分类器已经提供了高级图像概念,这些概念是图像识别的良好构建块(它分类了 200 个类别),这可以节省大量的训练时间,并使分类器非常健壮。
当然,在许多情况下,问题没有有用的共享表示,因此无法从组合网络中受益。然而,它在正确的情况下是一个有用的工具。
查找迁移学习或多任务学习以了解更多信息。