Ainsteinx Logo
Ainsteinx
👤
ยินดีต้อนรับสู่ Ainsteinx
เข้าสู่ระบบ

เปลี่ยนภาษา

สกุลเงิน

หน้าแรก
บล็อก
บริการ
บทที่ 02 · พื้นฐาน

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 ไม่รู้
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
  • #ບອກຕໍ່ຄວາມຮູ້