MDP: เครื่องยนต์ที่ขับเคลื่อนสภาพแวดล้อม
ภาษาคณิตศาสตร์ที่ใช้บรรยายทุกปัญหา RL
Markov Decision Process (MDP) คือกรอบคณิตศาสตร์สำหรับบรรยายปัญหาการตัดสินใจต่อเนื่องที่มีความไม่แน่นอน
โค้ดตัวอย่างดู MDP ของเกม FrozenLake: ลานน้ำแข็ง 4×4 เดินจากมุมซ้ายบนไปยังเป้าหมายมุมขวาล่างโดยไม่ตกหลุม น้ำแข็งลื่น: กดไปทางไหนก็มีโอกาสไปตามที่กดเพียง 1/3
MDP = (S, A, T, R, S₀, γ, H)
S เซต state ทั้งหมด A เซต action
T T(s'|s,a) โอกาสไป s' R R(s,a,s') รางวัล
S₀ การกระจาย state เริ่มต้น γ discount factor (0..1)
H horizon (ความยาวของเกม)
- State บอกสภาพของโลก ถ้า agent เห็นไม่ครบเรียกว่า POMDP และสิ่งที่เห็นเรียกว่า observation
- Markov property: อนาคตขึ้นกับ state ปัจจุบันเท่านั้น ไม่ขึ้นกับประวัติ
- Transition และ reward รวมกันเรียกว่า model ของ environment ปกติถือว่าไม่เปลี่ยนตามเวลา
- Action อาจเป็นแบบแยก (ซ้าย/ขวา) หรือต่อเนื่อง (มุมพวงมาลัย 0–30°)
สิ่งที่ควรจำ
- ทุกปัญหา RL เขียนเป็น MDP ได้: state, action, transition, reward, γ
- บทที่ 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
- #ບອກຕໍ່ຄວາມຮູ້