Critic नेटवर्क
Actor-Critic तरीकों के लिए दो अलग-अलग न्यूरल नेटवर्क चाहिए होते हैं.
Actor नेटवर्क की आर्किटेक्चर REINFORCE में उपयोग किए गए policy नेटवर्क जैसी ही है, इसलिए आप PolicyNetwork क्लास को फिर से उपयोग कर सकते हैं.
हालाँकि, critic नेटवर्क कुछ ऐसा है जिसे आपने अभी तक लागू नहीं किया है. Critic का लक्ष्य state value फंक्शन \(V(s_t)\) का अनुमान लगाना होता है, न कि Q-Networks द्वारा अनुमानित action value फंक्शन \(Q(s_t, a_t)\) का.
अब आप Critic नेटवर्क मॉड्यूल लागू करेंगे, जिसे आप A2C में उपयोग करेंगे.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Deep Reinforcement Learning
अभ्यास निर्देश
- दूसरी fully connected लेयर के लिए वांछित dimension भरें ताकि वह एक state value आउटपुट करे.
- Critic नेटवर्क के माध्यम से forward pass से लौटाए गए value को प्राप्त करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
class Critic(nn.Module):
def __init__(self, state_size):
super(Critic, self).__init__()
self.fc1 = nn.Linear(state_size, 64)
# Fill in the desired dimensions
self.fc2 = nn.Linear(____)
def forward(self, state):
x = torch.relu(self.fc1(torch.tensor(state)))
# Calculate the output value
value = ____
return value
critic_network = Critic(8)
state_value = critic_network(torch.rand(8))
print('State value:', state_value)