0Pricing
Learn AI with Python · Lekcja

Głębokie uczenie Q

Wykorzystanie sieci neuronowych do uczenia ze wzmocnieniem.

Głębokie uczenie Q to bezpłatna lekcja Learn AI with Python 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 Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 5 lekcji w sumie.

Czym jest Deep Q-learning?

Deep Q-learning

Deep Q-learning to rozszerzenie algorytmu Q-learning, które wykorzystuje sieć neuronową do aproksymacji tabeli Q. Dzięki temu uczenie ze wzmocnieniem można skalować do środowisk z dużymi lub ciągłymi przestrzeniami stanów i akcji.

Głębokie uczenie Q — ilustracja 1

Dlaczego Deep Q-learning?

Dlaczego Deep Q-learning?

Deep Q-learning eliminuje ograniczenia tradycyjnego algorytmu Q-learning:

  • Obsługuje wielowymiarowe przestrzenie stanów, na przykład obrazy.
  • Eliminuje konieczność przechowywania dużych tabel Q w pamięci.
  • Uogólnia wiedzę na różne stany za pomocą sieci neuronowych.

Algorytm DQN

Algorytm DQN

Deep Q-learning wykorzystuje sieć neuronową nazywaną siecią Q do aproksymacji wartości Q. Główne kroki to:

  1. Zainicjalizować sieć Q losowymi wagami.
  2. Nawiązać interakcję ze środowiskiem, aby zebrać krotki doświadczeń (state, action, reward, next_state).
  3. Zaktualizować sieć Q za pomocą równania Bellmana:

Q(s, a) ≈ r + γ max(Q(s', a'))

Budowanie sieci Q

Budowanie sieci Q

Sieć Q to prosta jednokierunkowa sieć neuronowa, która przyjmuje bieżący stan jako dane wejściowe i zwraca wartości Q dla wszystkich możliwych działań:

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')

Experience replay

Experience replay

Deep Q-learning wykorzystuje technikę nazywaną experience replay, aby usprawnić uczenie:

  • Przechowywać doświadczenia (state, action, reward, next_state) w buforze pamięci.
  • Losowo pobierać partie doświadczeń do trenowania sieci Q.
from collections import deque

# Initialize replay memory
memory = deque(maxlen=2000)

# Add experience to memory
memory.append((state, action, reward, next_state, done))

Trenowanie sieci Q

Trenowanie sieci Q

Sieć Q jest trenowana z użyciem doświadczeń z bufora 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ą:

  • Utrzymywać oddzielną sieć do obliczania docelowych wartości Q.
  • Okresowo kopiować wagi z sieci Q 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.
  • Uogólnia wiedzę na różne stany za pomocą 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:

  • Omówiono podstawy Deep Q-learning.
  • Zbudowano sieć Q do aproksymacji wartości Q.
  • Omówiono mechanizmy experience replay i sieci docelowych, które zapewniają stabilne uczenie.

W następnej kolejności omówimy OpenAI Gym i zastosujemy uczenie ze wzmocnieniem w symulowanych środowiskach.

Głębokie uczenie Q — ilustracja 10

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 Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 5 lekcji w sumie.

Co nauczysz się w „Głębokie uczenie Q”?

Wykorzystanie sieci neuronowych do uczenia ze wzmocnieniem. Ćwiczysz Learn AI with Python 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ąć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python 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 Learn AI with Python?

Tak. Każda lekcja Learn AI with Python 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

  1. Podstawowe koncepcje uczenia ze wzmocnieniem
  2. Koncepcja Q-Table
  3. Implementacja tablicy Q w Pythonie
  4. Głębokie uczenie Q
  5. Poznajemy OpenAI Gym
← Powrót do Learn AI with Python