การกำหนดฟังก์ชัน epsilon-greedy
ในการเรียนรู้เสริมแรง (RL) กลยุทธ์ epsilon-greedy คือการสร้างสมดุลระหว่างการสำรวจ (exploration) และการใช้ประโยชน์จากความรู้ที่มีอยู่ (exploitation) วิธีนี้จะเลือก action แบบสุ่มด้วยความน่าจะเป็น epsilon และเลือก action ที่ดีที่สุดที่รู้จักด้วยความน่าจะเป็น 1-epsilon การสร้างฟังก์ชัน epsilon_greedy() มีความสำคัญอย่างมากสำหรับอัลกอริทึมอย่าง Q-learning และ SARSA เนื่องจากช่วยให้ agent เรียนรู้ได้อย่างมีประสิทธิภาพ ทั้งในแง่ของการสำรวจสภาพแวดล้อมและการใช้ประโยชน์จาก reward ที่รู้จักแล้ว และนี่คือเป้าหมายของแบบฝึกหัดนี้
ไลบรารี numpy ได้ถูก import เป็น np แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Reinforcement Learning with Gymnasium ใน Python
คำแนะนำการฝึกหัด
- ภายในฟังก์ชัน ให้เขียนเงื่อนไขที่เหมาะสมสำหรับการให้ agent สำรวจสภาพแวดล้อม
- เลือก
actionแบบสุ่มเมื่ออยู่ในโหมดสำรวจ (exploration) - เลือก
actionที่ดีที่สุดตามq_tableเมื่ออยู่ในโหมดใช้ประโยชน์ (exploitation)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
epsilon = 0.2
env = gym.make('FrozenLake')
q_table = np.random.rand(env.observation_space.n, env.action_space.n)
def epsilon_greedy(state):
# Implement the condition to explore
if ____ < ____:
# Choose a random action
action = ____
else:
# Choose the best action according to q_table
action = ____
return action