Ainsteinx Logo
Ainsteinx
👤
欢迎使用 Ainsteinx
登录

切换语言

货币

首页
博客
服务
第 02 课 · 基础

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 不再知道
deep-rl-ep02-mdp.py
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
  • #ບອກຕໍ່ຄວາມຮູ້