Update README.md

dev
wsy182 2024-12-01 18:34:29 +08:00
parent 80088a4144
commit 9cfd4f88af
1 changed files with 112 additions and 1 deletions

113
README.md
View File

@ -176,7 +176,118 @@
麻将游戏引擎建模代码于项目根src/engine/目录下。
## PPOProximal Policy Optimization算法
## 算法
#### **1. 强化学习**
适用于学习最佳策略帮助AI根据牌局动态决策如摸牌、出牌、胡牌等
**Q-Learning/Deep Q-Learning (DQN)**:
使用价值函数近似,适用于简单麻将变体。
在复杂麻将中可能遇到状态空间爆炸的问题。
**Policy Gradient(如 REINFORCE、PPO、A3C)**:
- 直接学习策略,适合连续决策问题。
- Proximal Policy Optimization (PPO) 是目前表现较好的强化学习算法。
**AlphaZero/Monte Carlo Tree Search (MCTS)**:
- 结合深度神经网络和搜索算法,模拟多局游戏,适用于探索全局最优策略。
**适用场景**
自主对局学习(自我博弈)。
学习如何综合权衡得失(如是否碰牌、杠牌或放弃操作)。
#### **2. 模拟和搜索算法**
适用于推理对手手牌或牌堆剩余牌,提升策略的稳定性。
**算法**
- Monte Carlo Tree Search (MCTS):
- 模拟多个可能的后续动作,估算每个动作的收益。
- 常用于长序列决策,如考虑碰、杠、胡等多步操作的效果。
- Minimax with Alpha-Beta Pruning:
- 在两人麻将(或简化版本)中,模拟对手的可能操作。
**适用场景**
需要进行搜索优化的场景(如判断是否选择碰、杠)。
分析未来几步操作对得分的影响。
#### **3. 监督学习**
适用于模仿人类玩家的决策或历史数据学习。
**算法**
- 分类算法
(如 Logistic Regression、Random Forest、XGBoost、Neural Networks
- 学习单步决策(如出哪张牌)。
- 适用于学习简单的局部决策。
- 序列模型
(如 RNN、LSTM、Transformer
- 学习决策的序列模式(如出牌顺序和策略连贯性)。
- Transformer 可以捕捉复杂的上下文关系。
**适用场景**
有大量玩家对局数据作为训练集。
模拟人类打牌风格。
#### **4. 混合方法**
结合强化学习和监督学习的优点,以应对麻将的高复杂性和多样化。
**示例方法**
- Imitation Learning + Reinforcement Learning
:
- 先使用监督学习模仿玩家风格,再用强化学习微调策略。
- AlphaZero-like Framework
:
- 结合深度强化学习和搜索(如 MCTS强化对局策略。
**适用场景**
需要在短时间内获得可用的AI策略。
想进一步优化模型的决策能力。
#### **对抗学习**
让AI与自身对局自我博弈或与其他AI对局提升对抗能力。
#### **工具和框架**
1. 强化学习框架:
- **Stable-Baselines3**: 简单易用支持PPO、DQN等算法。
- **Ray RLlib**: 分布式强化学习框架,适合复杂任务。
2. 深度学习框架:
- TensorFlow 或 PyTorch构建神经网络和深度学习模型。
3. 麻将环境:
- 自定义麻将环境或使用已有开源环境(如 OpenAI Gym 或 MahjongRL
### PPOProximal Policy Optimization算法
TensorBoard 通常会记录和可视化多种训练指标。你提到的这些图表代表了 PPO 训练过程中的不同方面。下面是对每个图表的解释: