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

ลูปการฝึก DRL

เพื่อให้ agent สามารถเรียนรู้จากสภาพแวดล้อมได้ซ้ำ ๆ จำเป็นต้องสร้างลูปการฝึกขึ้นมา

อัลกอริทึม DRL ส่วนใหญ่มีโครงสร้างหลักร่วมกัน ดังนี้:

  1. วนลูปผ่านแต่ละ episode
  2. วนลูปผ่านแต่ละขั้นตอนภายใน episode
  3. ในแต่ละขั้นตอน ให้เลือก action คำนวณค่า loss และอัปเดตเครือข่าย

มีฟังก์ชัน select_action() และ calculate_loss() เตรียมไว้ให้แล้วเพื่อให้โค้ดทำงานได้ รวมถึง Network และ optimizer ที่กำหนดไว้จากแบบฝึกหัดก่อนหน้าก็พร้อมใช้งานเช่นกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Deep Reinforcement Learning ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ให้ลูปด้านนอก (วนผ่าน episode) ทำงานทั้งหมดสิบ episode
  • ให้ลูปด้านใน (วนผ่านขั้นตอน) ทำงานจนกว่า episode จะสิ้นสุด
  • ดำเนิน action ที่ select_action() เลือกในสภาพแวดล้อม env
  • เมื่อสิ้นสุดการวนซ้ำในลูปด้านใน ให้อัปเดต state ก่อนเริ่มขั้นตอนถัดไป

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

env = gym.make("LunarLander-v2")
# Run ten episodes
for episode in ____:
    state, info = env.reset()
    done = False    
    # Run through steps until done
    while ____:
        action = select_action(network, state)        
        # Take the action
        next_state, reward, terminated, truncated, _ = ____
        done = terminated or truncated        
        loss = calculate_loss(network, state, action, next_state, reward, done)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()        
        # Update the state
        state = ____
    print(f"Episode {episode} complete.")
แก้ไขและรันโค้ด