neural-network - 为什么 AlphaGo Zero 使用二面旋转而不是归一化?
问题描述
AlphaGo Zero 论文提到,为了照顾游戏的对称性(动作值与棋盘的旋转和反射无关),生成的状态使用随机二面反射或旋转输入网络:
展开和评估(图 2b)。叶节点 s L被添加到用于神经网络评估的队列中,(di (p), v) = fθ(di(s L )),其中 d i是从i中随机均匀选择的二面反射或旋转[1..8]。
我想知道:每个板都可以表示为一个长数字。为什么不采取每个旋转和反射的数字形式,比较它们并选择较小的?(每次网络评估一个板)
我认为这将导致更快的学习,因为网络可以只关注所有可能状态的 1/8 部分。
解决方案
一种可能的解释是,他们感兴趣的是网络的对边和角落是否会对称收敛,因此他们可能已经使用这种方法来测试方法本身。
另一个假设的原因与“连续性”有关。如果移动一块石头可能会使位置不再正确定向,因此您必须翻转它,那么您从初始位置获得的值和策略数据突然不会为视觉上接近但数字翻转的位置提供任何训练好处。
归根结底,网络训练不是管道的瓶颈,self-play 生成是瓶颈。通过进行几次旋转来乘以生成的位置在那时可能感觉像是免费数据。
不过,他们确实完全摆脱了 AlphaZero 中的对称变换。同样,我假设它是为了测试,而不是优化(至少在围棋中。国际象棋和将棋显然是不对称的)。
推荐阅读
- kubernetes-helm - helm卸载图表不删除关联的k8s组件
- cplex - 如何在运行完成之前在 CPLEX OPL 中保存解决方案
- azure - 我怎样才能得到这个 cosmos db 属性
- python - 如何实现并行硒处理
- python - Python(熊猫)从SQL Server数据库错误查询数据框
- r - 保存脚本文件后发生错误
- angular - 如何在应用程序初始化时启动一个长时间运行的进程(API 请求)而不阻塞 Angular 应用程序的加载?
- kubernetes - kubeflow 卡在管道启动中:无法附加或安装卷:未安装的卷 = [mlpipeline-minio-artifact]
- sql - PostgreSQL 汇总特征查询
- azure-devops - 业力单元测试结果未推送到声纳