0Pricing
Python Academy · Lektion

Deep Q-Learning

Neuronale Netze für bestärkendes Lernen verwenden

Deep Q-Learning ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.

Was ist Deep Q-Learning?

Deep Q-Learning

Deep Q-Learning ist eine Erweiterung von Q-Learning, die ein neuronales Netz verwendet, um die Q-Tabelle zu approximieren. Dadurch kann Reinforcement Learning auf Umgebungen mit großen oder kontinuierlichen Zustands-Aktions-Räumen skaliert werden.

Deep Q-Learning — Illustration 1

Warum Deep Q-Learning?

Warum Deep Q-Learning?

Deep Q-Learning begegnet den Einschränkungen des herkömmlichen Q-Learning:

  • Verarbeitet Zustandsräume mit vielen Dimensionen, zum Beispiel Bilder.
  • Macht es überflüssig, große Q-Tabellen im Speicher abzulegen.
  • Verallgemeinert mithilfe neuronaler Netze über Zustände hinweg.

Der DQN-Algorithmus

Der DQN-Algorithmus

Deep Q-Learning verwendet ein neuronales Netz namens Q-Network, um die Q-Werte zu approximieren. Die wichtigsten Schritte sind:

  1. Initialisieren Sie das Q-Network mit zufälligen Gewichten.
  2. Interagieren Sie mit der Umgebung, um Erfahrungstupel (state, action, reward, next_state) zu sammeln.
  3. Aktualisieren Sie das Q-Network mithilfe der Bellman-Gleichung:

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

Das Q-Network erstellen

Das Q-Network erstellen

Das Q-Network ist ein einfaches neuronales Feedforward-Netz, das den aktuellen Zustand als Eingabe erhält und Q-Werte für alle möglichen Aktionen ausgibt:

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 verwendet eine Technik namens Experience Replay, um das Lernen zu verbessern:

  • Speichern Sie Erfahrungen (state, action, reward, next_state) in einem Speicherpuffer.
  • Stichproben von Erfahrungs-Batches werden zufällig ausgewählt, um das Q-Network zu trainieren.
from collections import deque

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

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

Das Q-Network trainieren

Das Q-Network trainieren

Wir trainieren das Q-Network mit den Erfahrungen aus dem Speicherpuffer:

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)

Zielnetzwerke

Zielnetzwerke

Um das Training zu stabilisieren, verwendet DQN ein Zielnetzwerk:

  • Ein separates Netzwerk zum Berechnen der Ziel-Q-Werte wird beibehalten.
  • Die Gewichte des Q-Networks werden regelmäßig in das Zielnetzwerk kopiert.

Vorteile von Deep Q-Learning

Vorteile von Deep Q-Learning

Deep Q-Learning bietet mehrere Vorteile:

  • Verarbeitet Zustandsräume mit vielen Dimensionen, etwa Bilder.
  • Verallgemeinert mithilfe neuronaler Netze über Zustände hinweg.
  • Kann komplexe Aufgaben wie Atari-Spiele und die Steuerung von Robotern lösen.

Zusammenfassung und nächste Schritte

Zusammenfassung und nächste Schritte

In dieser Lektion haben Sie:

  • die Grundlagen von Deep Q-Learning untersucht.
  • ein Q-Network zur Approximation von Q-Werten erstellt.
  • Experience Replay und Zielnetzwerke für stabiles Training besprochen.

Als Nächstes untersuchen wir OpenAI Gym und wenden Reinforcement Learning in simulierten Umgebungen an.

Deep Q-Learning — Illustration 10

Häufig gestellte Fragen

Ist die Lektion „Deep Q-Learning“ kostenlos?

Ja — der vollständige Text von „Deep Q-Learning“ 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 „Deep Q-Learning“?

Neuronale Netze für bestärkendes Lernen verwenden 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 4 von 5.

Wie lange dauert die Lektion „Deep Q-Learning“?

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