利用Transformer与强化学习训练麻将AI

0 下载量 124 浏览量 更新于2024-10-28 收藏 1.23MB ZIP 举报
资源摘要信息:"Transformer + Reinforcement Learning打麻将" 在人工智能领域,随着深度学习技术的不断进步,强化学习与深度学习结合的方法在许多游戏领域取得了突破性的成就。本项目尝试利用Transformer模型结合强化学习技术开发一个可以自主打麻将的AI agent,特别是针对日本麻将中的立直规则。 Transformer模型是由Vaswani等人在2017年提出的一种基于自注意力(self-attention)机制的深度学习模型,它能够捕捉输入数据之间的长距离依赖关系,在自然语言处理领域取得了革命性的成功。而强化学习则是一种让agent通过与环境的交互学习最优策略的方法,它在处理决策问题方面具有独特优势。 本项目的目标是训练出一个能够进行有效决策的麻将agent。麻将是一种具有高复杂度的博弈游戏,不仅需要agent具备良好的短期记忆能力,还要有长远的战略规划能力。因此,结合Transformer和强化学习的方法正好可以发挥二者的优势,有望训练出强大的麻将策略agent。 在项目实施的过程中,有几个关键点需要注意和完善: 1. Misc/libc/***计算打点时未考虑所有役种,需要添加完善。在麻将游戏中,役种是指玩家手中的牌型所能获得的点数,不同的役种有不同的评分标准,agent需要能够准确评估当前手牌的得分潜力。 2. 需要训练4个模型:discard(舍牌策略)、chi(碰牌策略)、peng(杠牌策略)、reach(听牌策略)。这些策略对于麻将游戏的胜率有着决定性的影响。目前,后三个模型数据集不够,而discard模型训练的epoch不够,这表明项目的深度学习部分还需要更多的数据和时间来训练。 3. 项目尚未公开权重和数据集,这是一个仍在发展中的项目,任何改进和贡献都是被欢迎的。对于有资源的开发者来说,可以通过提供CPU或GPU资源来加快模型训练的进程。 此外,项目还提供了在Linux环境下运行的指南。建议用户在Ubuntu或macOS系统中进行操作。具体操作流程如下: - 进入Misc/libc目录下,执行make_lib.sh脚本编译C++库。 - 运行tests/run_test.py脚本来测试agent的策略。使用特定的手牌(如6678m3445p4567s44z),以及东风(dora=3z)等参数,来评估agent的决策能力。 项目名称中出现的"Satori"可能是一个自定义的强化学习框架或者是一个特定的agent名称。由于压缩包子文件的文件名列表中仅出现了"satori-master",我们可以推测这是一个开源项目,且主分支的代码文件被包含在内。 综上所述,该项目是深度学习与强化学习结合应用于博弈游戏的一个具体案例,展示了在高复杂度决策环境中利用当前先进的AI技术进行策略探索的可能性。随着项目不断迭代和改进,我们可以期待它在立直麻将领域的表现,进而探索这类技术在其他类似复杂游戏或实际问题中的应用前景。