MDP:驱动环境的引擎
描述所有强化学习问题的数学语言。
马尔可夫决策过程(MDP)是描述不确定条件下序列决策问题的数学框架。
示例代码查看 FrozenLake 游戏的 MDP:在 4×4 的冰面上从左上角走到右下角的目标而不掉进冰洞。冰面很滑:无论按哪个方向,只有 1/3 的概率真的朝那个方向走。
MDP = (S, A, T, R, S₀, γ, H)
S 所有状态的集合 A 动作集合
T T(s'|s,a) 转移到 s' 的概率 R R(s,a,s') 奖励
S₀ 初始状态分布 γ 折扣因子 (0..1)
H 视界(回合长度)
- 状态描述世界的情况。如果 agent 看不到全部,就称为 POMDP,它看到的叫作观测(observation)
- 马尔可夫性:未来只取决于当前状态,与历史无关
- 转移函数和奖励合起来称为环境的模型,通常假设不随时间变化
- 动作可以是离散的(左/右)或连续的(方向盘角度 0–30°)
要点
- 所有强化学习问题都可以写成 MDP:状态、动作、转移、奖励、γ
- 第 3 课假设 agent 知道 T 和 R;从第 4 课起,agent 不再知道
import gymnasium as gym
env = gym.make("FrozenLake-v1", is_slippery=True)
P = env.unwrapped.P # P[state][action] = [(prob, next_state, reward, done), ...]
print("ຈຳນວນ state:", env.observation_space.n) # 16
print("ຈຳນວນ action:", env.action_space.n) # 4: ຊ້າຍ, ລົງ, ຂວາ, ຂຶ້ນ
for prob, s_next, r, done in P[14][2]: # state 14, ກົດ "ຂວາ"
print(f"p={prob:.2f} -> s'={s_next:2d} r={r} ຈົບ={done}")
输出结果
ຈຳນວນ state: 16 ຈຳນວນ action: 4 p=0.33 -> s'=14 r=0 ຈົບ=False p=0.33 -> s'=15 r=1 ຈົບ=True p=0.33 -> s'=10 r=0 ຈົບ=False
- #DeepRL
- #ReinforcementLearning
- #PythonສຳລັບຄົນLaos
- #AI
- #ບອກຕໍ່ຄວາມຮູ້