เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การกำหนดฟังก์ชัน 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
แก้ไขและรันโค้ด