0Pricing
Python Academy · Lektion

Q-Tabelle in Python implementieren

Ein einfaches Beispiel für Q-Learning

Q-Tabelle in Python implementieren ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 5. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 5 Lektionen.

Q-Learning in Python implementieren

Q-Learning in Python implementieren

In dieser Lektion implementieren wir einen einfachen Q-Learning-Algorithmus in Python. Der Agent lernt, sich in einer Gitterwelt zu bewegen und seine Belohnungen zu maximieren.

Q-Tabelle in Python implementieren — Illustration 1

Die Umgebung definieren

Die Umgebung definieren

Wir definieren eine einfache 4×4-Gitterwelt, in der der Agent in der oberen linken Ecke startet und die untere rechte Ecke erreichen muss, um eine Belohnung zu erhalten.

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

Die Q-Tabelle initialisieren

Die Q-Tabelle initialisieren

Die Q-Tabelle wird für alle Zustands-Aktions-Paare mit Nullen initialisiert.

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

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

Den Q-Learning-Algorithmus implementieren

Den Q-Learning-Algorithmus implementieren

Wir verwenden die folgenden Parameter:

  • α (Lernrate): Steuert, wie stark neue Informationen alte überschreiben.
  • γ (Diskontfaktor): Gewichtet zukünftige Belohnungen im Verhältnis zu unmittelbaren Belohnungen.
  • ε (Explorationsrate): Gleicht Exploration und Exploitation aus.
# 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

Die erlernte Policy bewerten

Die erlernte Policy bewerten

Nach dem Training bewerten wir die Policy, indem wir den in der Q-Tabelle gespeicherten optimalen Aktionen folgen:

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

Die Q-Tabelle visualisieren

Die Q-Tabelle visualisieren

Wir können die Q-Tabelle visualisieren, um die erlernten Werte für jedes Zustands-Aktions-Paar zu verstehen:

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

Vorteile von Q-Learning

Vorteile von Q-Learning

Q-Learning bietet mehrere Vorteile:

  • Einfach und leicht zu implementieren.
  • Kann mit stochastischen Umgebungen umgehen.
  • Konvergiert bei ausreichender Exploration zur optimalen Policy.

Einschränkungen von Q-Learning

Einschränkungen von Q-Learning

Q-Learning hat einige Einschränkungen:

  • Skaliert nicht gut für Umgebungen mit großen Zustands-Aktions-Räumen.
  • Das Lernen kann in komplexen Umgebungen langsam sein.
  • Erfordert eine klar definierte Zustands-Aktions-Darstellung.

Zusammenfassung und nächste Schritte

Zusammenfassung und nächste Schritte

In dieser Lektion haben Sie:

  • einen einfachen Q-Learning-Algorithmus in Python implementiert.
  • einen Agenten mithilfe einer Q-Tabelle darauf trainiert, sich in einer Gitterwelt zu bewegen.
  • die erlernte Policy bewertet und die Q-Tabelle visualisiert.

Als Nächstes untersuchen wir Deep Q-Learning, das neuronale Netze verwendet, um Umgebungen mit großen Zustands-Aktions-Räumen zu verarbeiten.

Q-Tabelle in Python implementieren — Illustration 10

Häufig gestellte Fragen

Ist die Lektion „Q-Tabelle in Python implementieren“ kostenlos?

Ja — der vollständige Text von „Q-Tabelle in Python implementieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 5 Lektionen.

Was lerne ich in „Q-Tabelle in Python implementieren“?

Ein einfaches Beispiel für Q-Learning Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 5.

Wie lange dauert die Lektion „Q-Tabelle in Python implementieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlegende Konzepte des bestärkenden Lernens
  2. Das Konzept der Q-Tabelle
  3. Q-Tabelle in Python implementieren
  4. Deep Q-Learning
  5. OpenAI Gym erkunden
← Zurück zu Python Academy