基于强化学习与大模型的决策树自动生成方法
问题背景
在两人零和博弈任务中,使用强化学习(Reinforcement Learning, RL)进行策略求解往往面临挑战,尤其是对于策略传递性较差的游戏。所谓策略传递性,是指若策略 A 能击败策略 B,策略 B 能击败策略 C,则策略 A 必然能击败策略 C。剪刀石头布是典型的策略传递性差的游戏。
此类任务的标准做法是建立对手池,结合博弈论算法(如 PSRO)与强化学习求解。然而,超参数控制不当极易导致策略收敛于局部最优解。这会导致模型在面对强对手时表现尚可,但在面对简单对手时反而容易失利,因为策略空间未能覆盖所有情况。
为了解决这一问题,一种有效的思路是采用混合策略:主策略采用决策树(Decision Tree),因其可解释性强且易于融入人类先验知识;另一方则利用强化学习寻找针对该决策树的对抗策略。通过可视化分析对抗结果,可以量化评估当前决策树的强度,并指导后续优化。
方法介绍:RL-LLM-DT
本文提出了一种名为 RL-LLM-DT 的自动决策树生成方法,旨在完全自动化上述优化过程,替代人工修改决策树的环节。该方法框架包含三个核心组件:强化学习、大语言模型(LLM)和决策树。
核心流程
- 初始化:生成一棵初始决策树。可以通过人工编写或调用大语言模型生成代码实现。
- 对抗搜索:固定当前的决策树策略,利用强化学习训练一个对手策略,试图找到能够击败当前决策树的漏洞。
- 分析与改进:将强化学习找到的失败对局录像转换为文本描述,连同游戏规则和当前决策树代码一起输入给大语言模型。要求模型分析漏洞并提出改进建议,同时生成新的决策树代码。
- 迭代更新:用新生成的决策树替换旧策略,重复上述步骤。
终止条件
循环迭代直到满足以下任一条件:
- 强化学习无法再找到针对性的对抗策略,表明当前策略已接近纳什均衡。
- 大语言模型无法生成有效的改进代码,通常意味着模型的知识边界已被触及。
技术细节与实现考量
状态表示与奖励设计
在强化学习阶段,为了有效发现决策树的弱点,环境的状态表示需要足够丰富。以冰壶游戏为例,一局游戏仅包含 8 个 step(红方扔 4 个壶,蓝方扔 4 个壶),这使得整个轨迹的描述相对简单。状态空间应包含当前壶的位置、分数、回合数等关键信息。奖励函数设计需鼓励对手最大化得分或最小化我方得分,从而迫使 RL 代理挖掘决策树的逻辑盲区。
大模型提示工程
在大模型辅助生成决策树时,提示词(Prompt)的质量至关重要。输入应包含:
- 游戏规则:明确胜负判定条件和操作限制。
- 当前策略代码:提供 Python 或其他语言的决策树函数实现。
- 失败案例描述:详细记录 RL 代理获胜的对局过程,包括每一步的状态变化和决策选择。
- 改进指令:明确要求模型修复特定漏洞,并保持代码结构的一致性。
代码生成的稳定性
由于大模型生成的代码可能存在语法错误或逻辑偏差,建议在集成前加入静态检查或单元测试。此外,保留历史版本的决策树代码有助于回滚到更稳定的版本,防止因过度拟合特定对抗策略而导致泛化能力下降。
实验验证
我们选取冰壶游戏作为实验场景,验证了 RL-LLM-DT 方法的有效性。实验过程中使用了 DeepSeek 等编码大模型来辅助生成决策树代码。
实验过程
- 初始生成:首先由大模型生成基础决策树函数,该函数包含了基本的规则判断逻辑。
- 三轮迭代:算法进行了三次完整迭代。第一轮主要修正明显的规则漏洞;第二轮针对特定的战术组合进行优化;第三轮则进一步打磨策略的鲁棒性。
- 性能对比:将生成的决策树(Version 1, 2, 3)与人工设计的夺冠策略(Human Design)提交至官方赛事平台。结果显示,经过多轮迭代后的自动策略在评分上逐渐逼近甚至超越部分人工策略,且在应对不同难度对手时表现更加稳定。
结果分析
随着迭代次数增加,强化学习找到针对性策略的难度显著上升,说明决策树的防御能力在增强。这表明通过'攻击 - 修复'的闭环机制,可以有效提升策略的完备性。同时,决策树的可解释性使得我们可以直观地看到哪些分支被频繁触发,从而理解 AI 的决策逻辑。


