无论是电子游戏AI、兵棋推演、军事仿真、自动驾驶、机器人,底层都是"状态-行为-规则-目标"的统一建模问题。
建议不要一上来讲强化学习,而是先把整个对抗/推演系统抽象出来,让读者建立统一认知。
可以扩展成下面这样。
对抗、仿真、推演的共同基础
很多人第一次接触兵棋推演,会觉得各种名词很多。
- 想定(Scenario)
- 态势(Situation)
- 描述符(Feature)
- 行为(Action)
- 战法(Tactic)
- 智能体(Agent)
- 强化学习(RL)
其实,它们背后的逻辑非常统一。
为了方便理解,我们先用大家都熟悉的中国象棋做类比。
一、想定(Scenario)
想定,就是整个推演开始时的初始条件。
对于象棋来说,就是棋盘初始布局。
它可以是:
- 开局
- 残局
- 指定残局
- 人工摆出的特殊局面
例如:
红方:
帅、车、马
黑方:
将、车、卒
这就是一个想定。
在兵棋里面也是一样。
例如:
蓝军3辆坦克、2辆步兵位于A区域;
红军2辆装甲车位于B区域;
双方初始资源、时间、天气均已确定。
整个初始环境,就是一个想定。
所以:
想定 = 游戏开始时世界的初始状态。
二、状态(State)
想定只是开始。
随着游戏进行,棋盘会不断变化。
例如:
第10步以后:
- 红车移动
- 黑卒前进
- 红马被吃
这时候棋盘已经不是初始布局了。
这一刻棋盘上的所有信息,就叫做状态(State)。
兵棋也是一样。
某一时刻:
- 每辆车的位置
- 血量
- 朝向
- 弹药
- 是否被发现
- 当前时间
- 天气
共同组成这一时刻的状态。
强化学习里最重要的输入,就是State。
三、描述符(Feature)
但是问题来了。
计算机不会理解:
"红车在这里"
它只能理解数字。
因此需要把状态转换成数字。
例如:
| 对象 | 属性 |
|---|---|
| 坦克1 | 位置(5,8) |
| 血量 | 80% |
| 朝向 | 东北 |
| 速度 | 2 |
| 是否被发现 | 0 |
最终组成:
[5,8,
0.8,
2,
45°,
0,
...]
这就是状态描述符(Feature)。
所有机器学习模型,最终看到的都是这些数字。
四、原子行为(Atomic Action)
接下来就是动作。
象棋里面:
- 马走日
- 车直走
- 炮隔子打
- 士斜走
这些都是最基本动作。
兵棋里面也是一样:
- 前进一步
- 左转
- 开火
- 停止
- 侦察
这些最基本动作,称为:
原子行为(Atomic Action)
它们通常不能再继续拆分。
五、组合行为(Macro Action)
但是现实中,人不会一直思考:
左一步
再右一步
再前进一步
而是:
包抄
穿插
迂回
防守
例如:
向东北移动5格
↓
绕树林
↓
占领高地
↓
等待敌人
这一串原子行为组合起来,就是:
战法(Macro Action)
或者叫:
宏行为
很多现代AI并不是直接学习原子动作,而是学习这些宏行为。
六、规则(Rule)
为什么象棋AI不会让马横着走?
因为规则限制。
规则定义了:
- 哪些动作合法
- 哪些动作非法
- 如何结算胜负
- 如何计算奖励
兵棋同样如此:
例如:
- 地形影响移动速度
- 森林增加隐蔽
- 山地无法通行
- 武器射程有限
规则实际上决定了整个世界如何运行。
七、奖励(Reward)
如果是普通搜索算法,到这里已经够了。
但如果希望AI自己学习,就需要告诉它:
什么叫做好。
例如象棋:
赢:
+100
输:
-100
吃子:
+3
被吃:
-3
兵棋里面也类似:
- 击毁敌方单位
- 占领目标区域
- 自身存活
- 节省时间
都会形成奖励函数(Reward Function)。
八、智能体(Agent)
前面的所有内容,其实都是环境的一部分。
真正进行决策的,就是智能体(Agent)。
它不断执行如下循环:
观察环境
↓
获得状态(State)
↓
提取描述符(Feature)
↓
输入决策模型
↓
输出行为(Action)
↓
环境更新
↓
获得奖励(Reward)
↓
继续下一轮
整个过程可以表示为:
环境(Environment)
│
▼
State
│
▼
Feature
│
▼
Agent
│
▼
Action
│
▼
Environment
▲
│
Reward
九、从规则到机器学习
如果把智能体内部写成:
if 血量低:
撤退
if 敌人在射程:
开火
这就是规则型智能体。
如果把它改成:
Action = 神经网络(State)
就是监督学习或模仿学习。
如果再进一步:
State
↓
神经网络
↓
Action
↓
Reward
↓
不断更新参数
那么就是强化学习。
可以看到,强化学习并没有改变整个系统的结构,它只是把原本由程序员手工编写的决策逻辑,替换成了一个能够通过与环境交互不断优化的学习模型。
十、统一视角
无论是中国象棋、星际争霸、兵棋推演、自动驾驶,还是机器人控制,它们本质上都可以抽象为同一个决策框架:
Scenario(想定)
│
▼
Environment(环境)
│
▼
State(状态)
│
▼
Feature(描述符)
│
▼
Agent(智能体)
│
▼
Action(行为)
│
▼
Environment Update(环境更新)
│
▼
Reward(奖励)
│
└───────────────┐
│
▼
策略持续优化
理解了这一套抽象框架,再去学习强化学习、蒙特卡洛树搜索(MCTS)、模仿学习(IL)、PPO、DQN 等算法,就会发现它们解决的其实都是同一个问题:在给定状态下,如何选择一个能够最大化长期收益的行为。