Głębokie uczenie Q
Wykorzystanie sieci neuronowych w uczeniu ze wzmocnieniem
Głębokie uczenie Q to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 5. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 5 lekcji w sumie.
Czym jest Deep Q-Learning?
Deep Q-Learning
Deep Q-Learning to rozszerzenie Q-Learning, które wykorzystuje sieć neuronową do przybliżania tablicy Q. Dzięki temu uczenie ze wzmocnieniem można skalować do środowisk z dużymi lub ciągłymi przestrzeniami stanów i akcji.

Dlaczego Deep Q-Learning?
Dlaczego Deep Q-Learning?
Deep Q-Learning eliminuje ograniczenia tradycyjnego Q-Learning:
- Obsługuje wielowymiarowe przestrzenie stanów, na przykład obrazy.
- Eliminuje konieczność przechowywania dużych tablic Q w pamięci.
- Generalizuje na różne stany dzięki wykorzystaniu sieci neuronowych.
Algorytm DQN
Algorytm DQN
Deep Q-Learning wykorzystuje sieć neuronową nazywaną Q-Network do przybliżania wartości Q. Główne kroki to:
- Zainicjalizowanie Q-Network losowymi wagami.
- Interakcja ze środowiskiem w celu zebrania krotek doświadczeń
(state, action, reward, next_state). - Aktualizowanie Q-Network za pomocą równania Bellmana:
Q(s, a) ≈ r + γ max(Q(s', a'))
Budowanie Q-Network
Budowanie Q-Network
Q-Network to prosta, jednokierunkowa sieć neuronowa, która przyjmuje bieżący stan jako dane wejściowe i zwraca wartości Q dla wszystkich możliwych akcji:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# Define the Q-Network
q_network = Sequential([
Dense(24, activation='relu', input_shape=(state_space_size,)),
Dense(24, activation='relu'),
Dense(action_space_size, activation='linear')
])
q_network.compile(optimizer='adam', loss='mse')Replay doświadczeń
Replay doświadczeń
Deep Q-Learning wykorzystuje technikę nazywaną replay doświadczeń, aby usprawnić uczenie:
- Przechowuje doświadczenia
(state, action, reward, next_state)w buforze pamięci. - Losowo pobiera partie doświadczeń do trenowania Q-Network.
from collections import deque
# Initialize replay memory
memory = deque(maxlen=2000)
# Add experience to memory
memory.append((state, action, reward, next_state, done))Trenowanie Q-Network
Trenowanie Q-Network
Trenujemy Q-Network, korzystając z doświadczeń przechowywanych w buforze pamięci:
import numpy as np
# Sample a batch of experiences
batch_size = 32
batch = random.sample(memory, batch_size)
# Train the Q-Network
for state, action, reward, next_state, done in batch:
target = reward
if not done:
target += gamma * np.max(q_network.predict(next_state[np.newaxis, ...]))
q_values = q_network.predict(state[np.newaxis, ...])
q_values[0][action] = target
q_network.fit(state[np.newaxis, ...], q_values, epochs=1, verbose=0)Sieci docelowe
Sieci docelowe
Aby ustabilizować proces uczenia, DQN wykorzystuje sieć docelową:
- Utrzymujemy oddzielną sieć do obliczania docelowych wartości Q.
- Okresowo kopiujemy wagi z Q-Network do sieci docelowej.
Zalety Deep Q-Learning
Zalety Deep Q-Learning
Deep Q-Learning oferuje kilka korzyści:
- Obsługuje wielowymiarowe przestrzenie stanów, takie jak obrazy.
- Generalizuje na różne stany dzięki wykorzystaniu sieci neuronowych.
- Może rozwiązywać złożone zadania, takie jak gry Atari i sterowanie robotami.
Podsumowanie i kolejne kroki
Podsumowanie i kolejne kroki
W tej lekcji:
- Poznaliśmy podstawy Deep Q-Learning.
- Zbudowaliśmy Q-Network do przybliżania wartości Q.
- Omówiliśmy replay doświadczeń i sieci docelowe zapewniające stabilne uczenie.
Następnie poznamy OpenAI Gym i zastosujemy uczenie ze wzmocnieniem w symulowanych środowiskach.

Często zadawane pytania
Czy lekcja „Głębokie uczenie Q” jest bezpłatna?
Tak — pełny tekst „Głębokie uczenie Q” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 5 lekcji w sumie.
Co nauczysz się w „Głębokie uczenie Q”?
Wykorzystanie sieci neuronowych w uczeniu ze wzmocnieniem Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 5.
Ile czasu zajmuje lekcja „Głębokie uczenie Q”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawowe koncepcje uczenia ze wzmocnieniem
- Koncepcja tabeli Q
- Implementacja tabeli Q w Pythonie
- Głębokie uczenie Q
- Poznajemy OpenAI Gym