摘要
实验 0226 证明,在完整竞技场(双方英雄、七兵种、法术、宝物)里让 AI 在开局挑一个手写整局战术行不通——两个固定战术大多比基线差。本实验把学习粒度放细:每一步都给完整合法菜单里的每个动作(攻击、移动、等待、英雄施法、单位技能……)算 16 个公开特征,用一组参数打分,只在分数明显高于基线动作时才改选。参数用 CEM(Cross-Entropy Method,交叉熵方法:每代采样一批参数各打完整对局,取最好的几组更新采样分布)按整局胜负搜索。
学习确实发生了:3 次分布更新、808 局对局、零正确性故障。冻结的最终参数在 16 个训练来源上来源差 +.125(4 改善 0 退化),训练门槛通过;但在 8 个独立开发来源上来源差 0、0 改善,开发门槛失败,关闭,12 个保留来源未开。
要回答的问题
一个低维、只用公开信息的动作级偏好,能否通过整局胜负搜索,在完整竞技场里稳定超过基线 AI F(Fair:只用玩家可见信息的搜索 AI),并且在新来源上依然有效?
方法
特征(16 维)。 5 个动作类型指示(攻击含英雄攻击、移动、等待、施法、单位/英雄技能;“跳过”作为全零参照);5 组“数值 + 是否已知”:所选敌人是否射手、公开主伤害占目标生命比例、可能暴露于可见普通反击、离最近可见敌人的距离变化 / 20、基础法力成本占己方当前法力比例;最后 1 维是否延续已提交的敌方目标。标量裁剪到 [−1, 1];未知用“0 + 已知 = 0”表示,区别于“已知为零”。
这些特征有明确边界:主伤害只用公开规则给出的平均估计(不含所有隐藏修正);反击只描述“可能暴露”,不是反击伤害或概率;法力是规则基础费用,不是实际扣费。
打分与改选。 动作分 = θ ·(该动作特征 − F 动作特征);只有严格超过 0.25 才改选。全零参数严格等于 F。最终改选仍服从 F 公开的可选集合保护(保留有益的零消耗动作等)。线上不额外展开任何模拟。
搜索。 3 代 × 每代 8 行参数,均值零、初始标准差 .35,取前 2 名更新,标准差下限 .05;每代第一行保留历史最佳,所以 24 行里有重复,不是 24 个不同候选。
设置(冻结的条件)
- 来源(一套固定的双方选秀构筑与开局随机种子):36 个新来源,16 训练 / 8 开发 / 12 保留;排除 375 份旧蓝图、275 个旧来源族。
- 训练:每行参数在 16 个来源 × 双方控制下对 F 打 32 局,加 16 局同期 F/F 基线。
- 门槛:训练来源均差 ≥ +.125 且 ≥ 4 个来源改善;开发 ≥ +.125 且 ≥ 2 改善;保留 ≥ +.10 且 ≥ 3 改善;各阶段已知终局 ≥ 95%、零正确性故障。任何门槛失败即关闭,不加第 17 个参数、不加第 4 代、不改 0.25。
- 20 完整回合未决或只剩临时生物双输,双方各 0 分。CPU 8 核低优先级,无 GPU。
事前只读兼容检查:在 0226 的 8 局 F/F 共 676 步、85,660 个菜单动作向量上,零参数全部等同真实 F 的选择,覆盖 14 类合法菜单。
结果
单次运行 2884.224497 秒;808 局全部开始并导出:798 局自然终局、10 局回合上限双输;零正确性故障,未重试、未补赛。
| 阶段 | 来源差(保守下界/上界) | 改善/退化来源 | 已知终局 | 要求 | 结论 |
|---|---|---|---|---|---|
| 训练 | +.125 / +.125 | 4 / 0 | 100% | ≥ +.125 / ≥ 4 | 通过 |
| 开发 | 0 / 0 | 0 / 0 | 100% | ≥ +.125 / ≥ 2 | 失败 |
| 保留 | — | — | — | ≥ +.10 / ≥ 3 | 未开始 |
24 行参数(节选): 第 0 代最佳仍是全零(差 0),其余 7 行从 −.468750 到 −.031250 全部更差;第 1 代出现 +.125 的一行(4 改善 0 退化);第 2 代保留它(g2-p00)作为最终冻结参数,同代其他行在 −.40625 到 +.0625 之间。完整 24 行和每代分布都可由参数审计重建。
逐侧复核(事后只读): 最终参数训练 32 个控制方向 20 胜 12 负,同期 F 16 胜 16 负;7 侧改善、3 侧退化、22 侧相同——有 3 个来源是一侧改善抵消另一侧退化,所以“0 退化来源”不等于没有退化对局。开发 16 个控制方向双方都是 8 胜 8 负,16 侧结果全部相同,尽管候选在开发中实际改选了 461 次。
所有探索候选合计实际改选 26,463 次,以等待(10,678)、攻击(4,645)、跳过、英雄攻击、施法为主;这不等于最终策略的收益,也不能推出“学会了合理施法”。
两个训练集配对例子(整场策略比较,首分歧只是描述): 一个来源蓝方由负转胜,首分歧在第 1 步,F 施放一个先手法术,候选改为对敌方弩手施放审判;另一个来源蓝方由胜转负,前 6 步一致,第 7 步 F 让单位普通攻击,候选改为英雄攻击另一目标。
正确性:72 个初态、85,666 个转移、808 个终局、48,311 个策略回执和隐藏随机数检查全部一致;64 项软件检查通过。808 局回放全部导入(86,474 帧、1,270,027 个兵数、172,948 个英雄帧逐项核对),桌面与手机宽度 7 组交互检查通过。8 进程并行下 85,666 次选择最大 .618470 秒,这是有争用的离线观察,不是线上延迟。
失败与负结果
- 开发门槛失败:训练改善没有泛化到新来源。CEM 确实执行了 3 次更新,这区别于 0225/0226 的零更新准入失败。
- 几次辅助失败只影响工具,不影响正式结果:来源规划脚本首次缺导入路径(零来源生成),静态检查首次排版问题,资源采样脚本首次括号错误,浏览器验收首次 30 秒载入超时(同网址诊断 1.276 秒正常,根因未证实,补进度捕获后通过)。
局限
- 来源泛化不足、人工特征缺乏时序和配合表达、搜索预算有限、稀疏奖励或过拟合都是未验证的解释;没有做逐项消融,不能选定唯一根因,更不能判定所有 CEM 或低维策略都无效。
- 公开伤害、反击暴露、基础法力等特征的限制保留;零故障不代表商业游戏规则全部准确。
- 实验在共享工作区运行,单个提交号不是完整源码快照。
结论与下一步
在完整竞技场里,动作级参数搜索能在训练来源上找到小幅改善,但这种改善在独立开发来源上完全消失。关闭 0227,不启用新的默认 AI,已开的开发来源不再用于下一方案调参。下一个方向——“等待一步、下次行动再接敌”的两行动计划——先只做接口可行性核对(见实验 0050),不再继续调本实验参数。
Comments