สถาปัตยกรรมของ Q-Network
ใกล้จะถึงเวลาฝึก Deep Reinforcement Learning agent ตัวแรกแล้ว! ก่อนจะเริ่ม training loop แบบสมบูรณ์ได้ คุณต้องมีสถาปัตยกรรมโครงข่ายประสาทเทียมเพื่อขับเคลื่อนการตัดสินใจและความสามารถในการเรียนรู้ของ agent
ในแบบฝึกหัดนี้จะนำสถาปัตยกรรมทั่วไปที่กำหนดไว้ในแบบฝึกหัดก่อนหน้ามาปรับใช้
torch และ torch.nn ถูก import ไว้ในแบบฝึกหัดนี้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Reinforcement Learning ด้วย Python
คำแนะนำการฝึกหัด
- สร้าง instance ของเลเยอร์ซ่อนแรก โดยรับข้อมูลนำเข้าเป็น state ของสภาพแวดล้อม ซึ่งมีมิติเท่ากับ
state_size - สร้าง instance ของเลเยอร์เอาต์พุต ซึ่งให้ค่า Q-value สำหรับแต่ละ action โดยมีมิติเท่ากับ
action_size - เติมส่วนของเมธอด
forward()ให้สมบูรณ์ โดยใช้ฟังก์ชัน activationtorch.reluในตัวอย่างนี้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class QNetwork(nn.Module):
def __init__(self, state_size, action_size):
super(QNetwork, self).__init__()
# Instantiate the first hidden layer
self.fc1 = nn.Linear(____, ____)
self.fc2 = nn.Linear(64, 64)
# Instantiate the output layer
self.fc3 = nn.Linear(____, ____)
def forward(self, state):
# Ensure the ReLU activation function is used
x = ____(self.fc1(torch.tensor(state)))
x = ____(self.fc2(x))
return self.fc3(x)