डीप Q लर्निंग परिचय

Python में Deep Reinforcement Learning

Timothée Carayol

Principal Machine Learning Engineer, Komment

Deep Q Learning क्या है?

 

 

Q(state, action) दर्शाने वाली इमेज, जहाँ state पृथ्वी से और action जॉयस्टिक से दर्शाया गया है

Python में Deep Reinforcement Learning

Q-Learning ताज़ा जानकारी

 

एक्शन-वैल्यू फंक्शन Q_pi(s,a): अगर state s में action a लें, और आगे पॉलिसी pi फॉलो करें, तो भविष्य के रिवार्ड्स का योग। Q_pi(s,a) = पॉलिसी pi के तहत भविष्य की ट्रैजेक्टरीज़ पर अपेक्षित मान, जहाँ R_tau दिया गया s_t=s और a_t=a

 

 

  • $Q$ का ज्ञान होने पर ऑप्टिमल पॉलिसी मिलेगी: $$ \pi(s_t) = {\arg\max}_a Q(s_t, a) $$

  • Q-learning का लक्ष्य: समय के साथ $Q$ सीखना

Python में Deep Reinforcement Learning

Q-Learning ताज़ा जानकारी

बेलमैन समीकरण (Q-learning में) एक नियतात्मक परिवेश में: Q_pi(s_t, a_t) = रिवार्ड r_t+1 + डिस्काउंट रेट gamma * a_t+1 पर अधिकतम Q_pi(s_t+1, a_t+1))

टेम्पोरल डिफरेंस टार्गेट, जिसे TD-target, Q-target या target Q-value भी कहते हैं: बेलमैन समीकरण की दाहिनी ओर, Q-learning अपडेट रूल के लिए टार्गेट वैल्यू। r_t+1 + gamma * a_t+1 पर अधिकतम Q_pi(s_t+1, a_t+1))

  • बेलमैन समीकरण: $Q$ के लिए रिकर्सिव सूत्र
  • बेलमैन समीकरण की दाहिनी ओर: "TD-target"
  • हर स्टेप के बाद बेलमैन से TD-target लेकर $\hat{Q}$ अपडेट करें

Q-learning अपडेट रूल: Q_new = (1-alpha) Q_old + alpha * TD-target

Python में Deep Reinforcement Learning

Q-नेटवर्क

4 states और 4 actions वाली Q-टेबल, यानी 16 सेल भरने हैं

Python में Deep Reinforcement Learning

Q-नेटवर्क

9 states और 4 actions वाली Q-टेबल, यानी 36 सेल भरने हैं

Python में Deep Reinforcement Learning

Q-नेटवर्क

दर्जनों states और 4 actions वाली Q-टेबल, लगभग ~100 सेल भरने हैं

Python में Deep Reinforcement Learning

Q-नेटवर्क

  • Deep Q Learning का मूल: एक न्यूरल नेटवर्क

दो हिडन लेयर्स वाला एक फुली कनेक्टेड न्यूरल नेटवर्क का चित्र

Python में Deep Reinforcement Learning

Q-नेटवर्क

  • Deep Q Learning का मूल: एक न्यूरल नेटवर्क

दो हिडन लेयर्स वाला फुली कनेक्टेड न्यूरल नेटवर्क, पिछली स्लाइड की पृथ्वी इमेज इनपुट लेयर में जाती हुई

Python में Deep Reinforcement Learning

Q-नेटवर्क

  • Deep Q Learning का मूल: एक न्यूरल नेटवर्क जो state से Q-values पर मैप करता है

पिछली स्लाइड का ही चित्र, आउटपुट लेयर के हर नोड को जॉयस्टिक की दिशा वाले action से जोड़ा गया। ऊपर = action 0, दाएँ = 1, नीचे = 2, बाएँ = 3.

  • जो नेटवर्क एक्शन-वैल्यू फंक्शन को लगभगित करता है उसे 'Q-network' कहते हैं
  • Q-networks, Deep Q Learning एल्गोरिदम जैसे DQN में आम हैं।
Python में Deep Reinforcement Learning

Q-नेटवर्क लागू करना

class QNetwork(nn.Module):

def __init__(self, state_size, action_size): super(QNetwork, self).__init__()
self.fc1 = nn.Linear(state_size, 64) self.fc2 = nn.Linear(64, 64) self.fc3 = nn.Linear(64, action_size)
def forward(self, state): x = torch.relu(self.fc1(torch.tensor(state))) x = torch.relu(self.fc2(x)) return self.fc3(x)
q_network = QNetwork(8, 4)
optimizer = optim.Adam(q_network.parameters(), lr=0.0001)
  • इनपुट आयाम state तय करता है
  • आउटपुट आयाम संभव actions की संख्या तय करती है

  • इस उदाहरण में:

    • 2 हिडन लेयर्स, हर एक में 64 नोड्स
    • ReLu एक्टिवेशन फंक्शन
Python में Deep Reinforcement Learning

अभ्यास करते हैं!

Python में Deep Reinforcement Learning

Preparing Video For Download...