Markov Decision Processes

Reinforcement Learning with Gymnasium ใน Python

Fouad Trad

Machine Learning Engineer

MDP

  • จำลองสภาพแวดล้อม RL ในเชิงคณิตศาสตร์

ภาพแสดงสภาพแวดล้อมที่ซับซ้อน (เมืองอัจฉริยะ) และส่วนประกอบที่ต้องดึงออกมา ได้แก่ สถานะ การกระทำ รางวัล และความน่าจะเป็นของการเปลี่ยนสถานะ

Reinforcement Learning with Gymnasium ใน Python

MDP

  • จำลองสภาพแวดล้อม RL ในเชิงคณิตศาสตร์

ไดอะแกรมแสดงการดึงส่วนประกอบ MDP (สถานะ การกระทำ รางวัล และความน่าจะเป็นของการเปลี่ยนสถานะ) จากสภาพแวดล้อมที่ซับซ้อน เพื่อแก้ปัญหาด้วยเทคนิค RL แบบอิงโมเดล

Reinforcement Learning with Gymnasium ใน Python

คุณสมบัติ Markov

  • สถานะในอนาคตขึ้นอยู่กับ สถานะปัจจุบัน และ การกระทำ เท่านั้น

ภาพแสดงกระดานหมากรุกพร้อมลูกศรแสดงการเดินที่เป็นไปได้

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP

  • เอเจนต์ต้องไปถึงเป้าหมายโดยไม่ตกลงในหลุม

ภาพแสดงสภาพแวดล้อม Frozen Lake

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - สถานะ

  • ตำแหน่งที่เอเจนต์สามารถอยู่ได้

ภาพแสดงตำแหน่งของเอเจนต์ในสภาพแวดล้อม Frozen Lake 3 ตำแหน่ง

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - สถานะปลายทาง

  • ทำให้ episode สิ้นสุดลง

ภาพแสดงสถานะปลายทางในสภาพแวดล้อม Frozen Lake

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - การกระทำ

  • ขึ้น ลง ซ้าย ขวา

ภาพแสดงการกระทำใน Frozen Lake พร้อมป้ายกำกับ: 0-ซ้าย, 1-ลง, 2-ขวา, 3-ขึ้น

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - การเปลี่ยนสถานะ

  • การกระทำไม่จำเป็นต้องนำไปสู่ผลลัพธ์ที่คาดไว้เสมอไป

ภาพแสดงเอเจนต์อยู่มุมบนซ้ายของกริด Frozen Lake กำลังจะเคลื่อนที่ไปทางขวา

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - การเปลี่ยนสถานะ

  • การกระทำไม่จำเป็นต้องนำไปสู่ผลลัพธ์ที่คาดไว้เสมอไป

ภาพแสดงว่าเอเจนต์สามารถเคลื่อนที่ไปทางขวาได้

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - การเปลี่ยนสถานะ

  • การกระทำไม่จำเป็นต้องนำไปสู่ผลลัพธ์ที่คาดไว้เสมอไป

ภาพแสดงว่าเอเจนต์อาจเคลื่อนที่ลงได้เช่นกัน

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - การเปลี่ยนสถานะ

  • การกระทำไม่จำเป็นต้องนำไปสู่ผลลัพธ์ที่คาดไว้เสมอไป

ภาพแสดงว่าเอเจนต์อาจอยู่ในตำแหน่งเดิมได้เช่นกัน

Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - การเปลี่ยนสถานะ

  • การกระทำไม่จำเป็นต้องนำไปสู่ผลลัพธ์ที่คาดไว้เสมอไป

ภาพแสดงว่าเมื่อเอเจนต์เลือกเคลื่อนที่ไปขวา จะมีความน่าจะเป็นที่จะไปขวา ลง หรืออยู่ที่เดิม

  • ความน่าจะเป็นของการเปลี่ยนสถานะ: โอกาสที่จะเข้าถึงสถานะหนึ่ง เมื่อกำหนดสถานะและการกระทำ
Reinforcement Learning with Gymnasium ใน Python

Frozen Lake ในรูปแบบ MDP - รางวัล

  • ได้รับรางวัลเฉพาะเมื่อถึงสถานะเป้าหมาย

ภาพแสดงเอเจนต์ในสถานะเป้าหมาย

Reinforcement Learning with Gymnasium ใน Python

สถานะและการกระทำใน Gymnasium

import gymnasium as gym


env = gym.make('FrozenLake', is_slippery=True)
print(env.action_space)
print(env.observation_space)
print("Number of actions: ", env.action_space.n)
print("Number of states: ", env.observation_space.n)
Discrete(4)

Discrete(16)
Number of actions: 4
Number of states: 16
Reinforcement Learning with Gymnasium ใน Python

รางวัลและการเปลี่ยนสถานะใน Gymnasium

env.unwrapped.P: dictionary ที่มีคีย์เป็นคู่ (สถานะ, การกระทำ)

print(env.unwrapped.P[state][action])
[
  (probability_1, next_state_1, reward_1, is_terminal_1), 
  (probability_2, next_state_2, reward_2, is_terminal_2), 
  etc.
]
Reinforcement Learning with Gymnasium ใน Python

รางวัลและการเปลี่ยนสถานะใน Gymnasium - ตัวอย่าง

state = 6
action = 0

print(env.unwrapped.P[state][action])
[(0.3333333333333333, 2, 0.0, False), 
(0.3333333333333333, 5, 0.0, True), 
(0.3333333333333333, 10, 0.0, False)]

ภาพแสดงหมายเลขการกระทำ: 0-ซ้าย, 1-ลง, 2-ขวา, 3-ขึ้น

ภาพแสดงเอเจนต์ในสถานะที่ 6 โดยสถานะถูกนับจากบนซ้ายไปล่างขวาทีละแถว

Reinforcement Learning with Gymnasium ใน Python

มาฝึกกันเถอะ!

Reinforcement Learning with Gymnasium ใน Python

Preparing Video For Download...