技术深度解析
go_attack项目并非单一攻击手段,而是一个框架,实现了多种针对围棋独特结构定制的对抗攻击策略。核心挑战在于,围棋是一个确定性、完美信息的游戏,其分支因子约为250,远超国际象棋的35。这意味着对抗扰动必须精心设计,以利用神经网络的决策边界,同时不被人类观察者或游戏引擎自身的搜索所察觉。
架构与算法
该代码库实现了三类主要攻击:
1. 基于梯度的攻击:这些攻击直接修改棋盘状态(作为19x19的图像,包含黑子、白子和气等多个通道),以最大化目标模型的损失函数。项目使用了快速梯度符号法(FGSM)和投影梯度下降法(PGD),并针对离散棋盘位置进行了适配。例如,攻击可能在一个看似无关的位置将一颗棋子从黑翻白,导致策略网络对最优落子的预测偏差超过40%。
2. 基于搜索的攻击:这些攻击利用蒙特卡洛树搜索(MCTS)来寻找对抗序列。攻击者不是攻击单一状态,而是构建一系列落子,逐步将AI引入“陷阱”——即其价值网络严重低估对手获胜概率的局面。这类似于强化学习中的“尖峰”攻击。
3. 策略-价值联合攻击:最复杂的攻击同时针对策略头(选择哪步落子)和价值头(获胜概率)。通过同时扰动两者,攻击者可以制造一种局面:AI自信地走出一步必败之棋,却自以为有90%的胜率。
性能基准测试
该项目包含一套基准测试套件,比较了针对KataGo(最强的开源围棋AI)和一个较小的蒸馏模型的攻击成功率。下表展示了初步结果:
| 攻击类型 | 目标模型 | 扰动预算(改变的棋子数) | 成功率(导致败招) | 平均胜率下降 |
|---|---|---|---|---|
| FGSM(单步) | KataGo 40-block | 1 | 12% | 8% |
| PGD(10步) | KataGo 40-block | 3 | 34% | 22% |
| MCTS搜索攻击 | KataGo 40-block | 5(序列) | 58% | 41% |
| 策略-价值联合 | 蒸馏模型(10-block) | 2 | 67% | 53% |
| 策略-价值联合 | KataGo 40-block | 2 | 41% | 29% |
数据要点:基于搜索和联合攻击的效果远优于简单的梯度方法,尤其是针对较大模型时。这表明漏洞不仅存在于网络的局部感知中,更在于其长期规划和价值评估能力。较小的蒸馏模型明显更脆弱,说明模型压缩牺牲了鲁棒性。
相关GitHub仓库
- go_attack(AlignmentResearch):主仓库。包含预训练的攻击模型和用于复现基准测试的脚本。最近的提交增加了通过OpenSpiel接口攻击模型的支持。
- KataGo(lightvector):最受欢迎的开源围棋AI,被用作主要攻击目标。它使用残差网络(最多40个block)和自对弈训练。
- leela-zero(gcp):另一个基于AlphaGo Zero架构的强开源围棋AI。go_attack团队报告称已初步成功攻击Leela Zero。
关键参与者与案例研究
AlignmentResearch是主要开发者。这是一个相对较新的团队,专注于AI对齐与鲁棒性,与DeepMind或OpenAI等大型实验室不同。他们选择围棋具有战略意义:这是一个定义明确的领域,有清晰的成功指标(胜率、Elo等级分),使得衡量攻击效果比在开放式任务中更容易。
KataGo(由David Wu / lightvector开发)是开源围棋AI的事实标准。它已超越Leela Zero的实力,并被职业棋手用于分析。go_attack能够可靠地欺骗KataGo这一事实意义重大,因为KataGo因其广泛的训练数据和自对弈而被认为是最鲁棒的模型之一。
目标模型对比
| 模型 | 架构 | 训练数据 | Elo(约) | 对go_attack的脆弱性 |
|---|---|---|---|---|
| KataGo 40-block | ResNet + MCTS | 自对弈 + 人类棋谱 | 4500+ | 中等(成功率41%) |
| Leela Zero 40-block | ResNet + MCTS | 仅自对弈 | 4400+ | 高(估计55%) |
| 蒸馏KataGo(10-block) | 较小ResNet | 从40-block蒸馏 | 4000 | 非常高(67%) |
| AlphaGo(原始版) | CNN + MCTS | 人类棋谱 + 自对弈 | 3500(估计) | 未知(未测试) |
数据要点:脆弱性与模型规模和训练多样性呈负相关。仅通过自对弈训练的模型(Leela Zero)比使用人类棋谱训练的模型(KataGo)更容易受到攻击,这表明人类数据提供了某种程度的鲁棒性。