0Pricing
Learn AI with Python · Lekcja

Implementacja tablicy Q w Pythonie

Prosty przykład uczenia Q.

Implementacja tablicy Q w Pythonie to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 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.

Implementowanie Q-learningu w Pythonie

Implementowanie Q-learningu w Pythonie

W tej lekcji zaimplementujemy w Pythonie prosty algorytm Q-learningu. Agent nauczy się poruszać po środowisku siatkowym, aby maksymalizować nagrody.

Implementacja tablicy Q w Pythonie — ilustracja 1

Definiowanie środowiska

Definiowanie środowiska

Zdefiniujemy prosty świat siatki o rozmiarze 4×4, w którym agent rozpoczyna działanie w lewym górnym rogu i musi dotrzeć do prawego dolnego rogu, aby otrzymać nagrodę.

import numpy as np

# Define the environment
num_states = 16  # 4x4 grid
num_actions = 4  # Up, Down, Left, Right

# Define rewards (-1 for each step, +10 for the goal)
rewards = np.zeros(num_states)
rewards[-1] = 10

Inicjalizacja tabeli Q

Inicjalizacja tabeli Q

Tabela Q jest inicjalizowana zerami dla wszystkich par stan–akcja.

# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))

print("Initial Q-Table:")
print(q_table)

Implementowanie algorytmu Q-learning

Implementowanie algorytmu Q-learning

Używane są następujące parametry:

  • α (współczynnik uczenia): Określa, w jakim stopniu nowe informacje zastępują stare.
  • γ (współczynnik dyskontowania): Określa wagę przyszłych nagród względem nagród natychmiastowych.
  • ε (współczynnik eksploracji): Zapewnia równowagę między eksploracją a eksploatacją.
# Parameters
alpha = 0.1  # Learning rate
gamma = 0.9  # Discount factor
epsilon = 0.1  # Exploration rate

# Q-Learning loop
num_episodes = 1000
for episode in range(num_episodes):
    state = 0  # Start at the first state
    done = False
    while not done:
        # Exploration or exploitation
        if np.random.rand() < epsilon:
            action = np.random.randint(num_actions)  # Explore
        else:
            action = np.argmax(q_table[state])  # Exploit

        # Transition to the next state
        next_state = (state + action) % num_states  # Simplified transition logic
        reward = rewards[next_state]

        # Update Q-value
        q_table[state, action] = q_table[state, action] + alpha * (
            reward + gamma * np.max(q_table[next_state]) - q_table[state, action]
        )

        # Move to the next state
        state = next_state
        done = state == num_states - 1

Ocena wyuczonej strategii

Ocena wyuczonej strategii

Po zakończeniu uczenia oceniamy strategię, wykonując optymalne działania zapisane w tabeli Q:

# Evaluate the policy
state = 0
optimal_path = [state]
while state != num_states - 1:
    action = np.argmax(q_table[state])
    state = (state + action) % num_states  # Simplified transition logic
    optimal_path.append(state)

print("Optimal Path:", optimal_path)

Wizualizacja tabeli Q

Wizualizacja tabeli Q

Można zwizualizować tabelę Q, aby zrozumieć wyuczone wartości dla każdej pary stan–akcja:

import matplotlib.pyplot as plt
import seaborn as sns

# Visualize Q-Table
plt.figure(figsize=(10, 8))
sns.heatmap(q_table, annot=True, fmt=".2f", cmap="coolwarm")
plt.title("Q-Table Heatmap")
plt.xlabel("Actions")
plt.ylabel("States")
plt.show()

Zalety algorytmu Q-learning

Zalety algorytmu Q-learning

Q-learning oferuje kilka korzyści:

  • Jest prosty i łatwy do zaimplementowania.
  • Może obsługiwać środowiska stochastyczne.
  • Przy wystarczającej eksploracji zbiega do optymalnej strategii.

Ograniczenia algorytmu Q-learning

Ograniczenia algorytmu Q-learning

Q-learning ma pewne ograniczenia:

  • Nie skaluje się dobrze do środowisk z dużymi przestrzeniami stanów i akcji.
  • Uczenie może przebiegać powoli w złożonych środowiskach.
  • Wymaga dobrze zdefiniowanej reprezentacji stanów i akcji.

Podsumowanie i kolejne kroki

Podsumowanie i kolejne kroki

W tej lekcji:

  • Zaimplementowano prosty algorytm Q-learning w Pythonie.
  • Wytrenowano agenta do poruszania się po świecie siatki z użyciem tabeli Q.
  • Oceniono wyuczoną strategię i zwizualizowano tabelę Q.

W następnej kolejności omówimy Deep Q-learning, który wykorzystuje sieci neuronowe do obsługi środowisk z dużymi przestrzeniami stanów i akcji.

Implementacja tablicy Q w Pythonie — ilustracja 10

Często zadawane pytania

Czy lekcja „Implementacja tablicy Q w Pythonie” jest bezpłatna?

Tak — pełny tekst „Implementacja tablicy Q w Pythonie” 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 „Implementacja tablicy Q w Pythonie”?

Prosty przykład uczenia Q. Ć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 3 z 5.

Ile czasu zajmuje lekcja „Implementacja tablicy Q w Pythonie”?

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