Lær AI med Python · leksjon

Dyp Q-læring

Bruk av nevrale nettverk i forsterkende læring.

Leksjon 4 av 510 trinn

Dyp Q-læring er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 4 av 5. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 5 leksjoner.

Hva er Deep Q-læring?

Deep Q-læring

Deep Q-læring er en utvidelse av Q-læring som bruker et nevralt nettverk til å tilnærme Q-tabellen. Dette gjør at forsterkende læring kan skaleres til miljøer med store eller kontinuerlige tilstands- og handlingsrom.

Dyp Q-læring — illustrasjon 1

Hvorfor Deep Q-læring?

Deep Q-læring håndterer begrensningene ved tradisjonell Q-læring:

  • Håndterer høydimensjonale tilstandsrom, for eksempel bilder.
  • Unngår behovet for å lagre store Q-tabeller i minnet.
  • Generalisérer på tvers av tilstander ved hjelp av nevrale nettverk.

DQN-algoritmen

Deep Q-læring bruker et nevralt nettverk kalt Q-Network til å tilnærme Q-verdiene. Hovedtrinnene er:

  1. Initialiser Q-Network med tilfeldige vekter.
  2. Samhandle med miljøet for å samle erfarings-tupler (state, action, reward, next_state).
  3. Oppdater Q-Network ved hjelp av Bellman-ligningen:

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

Bygge Q-Network

Q-Network er et enkelt fremoverkoblet nevralt nettverk som tar den gjeldende tilstanden som inndata og returnerer Q-verdier for alle mulige handlinger:

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

Deep Q-læring bruker en teknikk kalt experience replay for å forbedre læringen:

  • Lagre erfaringer (state, action, reward, next_state) i en minnebuffer.
  • Trekk tilfeldig ut grupper med erfaringer for å trene Q-Network.
from collections import deque

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

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

Trening av Q-Network

Vi trener Q-Network ved hjelp av erfaringene fra minnebufferen:

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ålnettverk

For å stabilisere treningen bruker DQN et målnettverk:

  • Oppretthold et separat nettverk for å beregne mål-Q-verdier.
  • Kopier med jevne mellomrom vekter fra Q-Network til målnettverket.

Fordeler med Deep Q-læring

Deep Q-læring har flere fordeler:

  • Håndterer høydimensjonale tilstandsrom, som bilder.
  • Generalisérer på tvers av tilstander ved hjelp av nevrale nettverk.
  • Kan løse komplekse oppgaver som Atari-spill og robotstyring.

Oppsummering og neste trinn

I denne leksjonen har vi:

  • Utforsket grunnleggende Deep Q-læring.
  • Bygget et Q-Network for å tilnærme Q-verdier.
  • Diskutert experience replay og målnettverk for stabil trening.

Deretter skal vi utforske OpenAI Gym og bruke forsterkende læring i simulerte miljøer.

Dyp Q-læring — illustrasjon 10
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «Dyp Q-læring» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Dyp Q-læring», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 5 leksjoner.

Hva lærer jeg i «Dyp Q-læring»?

Bruk av nevrale nettverk i forsterkende læring. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 5.

Hvor lang tid tar leksjonen «Dyp Q-læring»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende konsepter innen forsterkende læring
  2. Q-Table-konseptet
  3. Implementering av Q-tabell i Python
  4. Dyp Q-læring
  5. Utforsk OpenAI Gym
← Tilbake til Lær AI med Python