Python Academy · Lektion

Deep Q-learning

Använd neurala nätverk för förstärkningsinlärning.

Lektion 4 av 510 steg

Deep Q-learning är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 5. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 5 lektioner.

Vad är Deep Q-Learning?

Deep Q-Learning

Deep Q-Learning är en utvidgning av Q-Learning som använder ett neuronnät för att approximera Q-tabellen. Det gör att förstärkningsinlärning kan skalas till miljöer med stora eller kontinuerliga tillstånds- och åtgärdsrymder.

Deep Q-learning — illustration 1

Varför Deep Q-Learning?

Deep Q-Learning hanterar begränsningarna hos traditionell Q-Learning:

  • Hanterar tillståndsrymder med många dimensioner, till exempel bilder.
  • Eliminerar behovet av att lagra stora Q-tabeller i minnet.
  • Generalisar mellan tillstånd med hjälp av neuronnät.

DQN-algoritmen

Deep Q-Learning använder ett neuronnät som kallas Q-nätverk för att approximera Q-värdena. De viktigaste stegen är:

  1. Initiera Q-nätverket med slumpmässiga vikter.
  2. Interagera med miljön för att samla in erfarenhetstublerna (state, action, reward, next_state).
  3. Uppdatera Q-nätverket med hjälp av Bellman-ekvationen:

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

Bygga Q-nätverket

Q-nätverket är ett enkelt feedforward-neuronnät som tar det aktuella tillståndet som indata och matar ut Q-värden för alla möjliga åtgärder:

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

Erfarenhetsåteruppspelning

Deep Q-Learning använder en teknik som kallas experience replay för att förbättra inlärningen:

  • Lagra erfarenheter (state, action, reward, next_state) i en minnesbuffer.
  • Välj slumpmässigt ut batcher med erfarenheter för att träna Q-nätverket.
from collections import deque

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

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

Träna Q-nätverket

Vi tränar Q-nätverket med hjälp av erfarenheterna från minnesbufferten:

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)

Målnätverk

För att stabilisera träningen använder DQN ett målnätverk:

  • Underhåll ett separat nätverk för att beräkna målets Q-värden.
  • Kopiera regelbundet vikterna från Q-nätverket till målnätverket.

Fördelar med Deep Q-Learning

Deep Q-Learning har flera fördelar:

  • Hanterar tillståndsrymder med många dimensioner, till exempel bilder.
  • Generalisar mellan tillstånd med hjälp av neuronnät.
  • Kan lösa komplexa uppgifter som Atari-spel och robotstyrning.

Sammanfattning och nästa steg

I den här lektionen:

  • Utforskade vi grunderna i Deep Q-Learning.
  • Byggde vi ett Q-nätverk för att approximera Q-värden.
  • Diskuterade vi erfarenhetsåteruppspelning och målnätverk för stabil träning.

Härnäst utforskar vi OpenAI Gym och tillämpar förstärkningsinlärning i simulerade miljöer.

Deep Q-learning — illustration 10
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Deep Q-learning” gratis?

Ja – hela texten till ”Deep Q-learning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 5 lektioner.

Vad lär jag mig i ”Deep Q-learning”?

Använd neurala nätverk för förstärkningsinlärning. Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 5.

Hur lång tid tar lektionen ”Deep Q-learning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Grundläggande begrepp inom förstärkningsinlärning
  2. Q-tabellens koncept
  3. Implementera en Q-tabell i Python
  4. Deep Q-learning
  5. Utforska OpenAI Gym
← Tillbaka till Python Academy