Lær AI med Python · leksjon

Implementering av Q-tabell i Python

Et enkelt eksempel på Q-læring.

Leksjon 3 av 510 trinn

Implementering av Q-tabell i Python er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 3 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.

Implementering av Q-Learning i Python

I denne leksjonen skal vi implementere en enkel Q-Learning-algoritme i Python. Agenten skal lære å navigere i en rutenettverden for å maksimere belønningene sine.

Implementering av Q-tabell i Python — illustrasjon 1

Definere miljøet

Vi definerer en enkel rutenettverden på 4×4 ruter der agenten starter øverst til venstre og må nå nederst til høyre for å få en belønning.

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

Initialisering av Q-tabellen

Q-tabellen initialiseres med nuller for alle tilstands-handlingspar.

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

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

Implementering av Q-læringsalgoritmen

Vi bruker følgende parametere:

  • α (læringsrate): Bestemmer hvor mye ny informasjon overskriver gammel informasjon.
  • γ (diskonteringsfaktor): Vekter fremtidige belønninger i forhold til umiddelbare belønninger.
  • ε (utforskningsrate): Balanserer utforskning og utnyttelse.
# 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

Evaluering av den lærte policyen

Etter treningen evaluerer vi policyen ved å følge de optimale handlingene som er lagret i Q-tabellen:

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

Visualisering av Q-tabellen

Vi kan visualisere Q-tabellen for å forstå de lærte verdiene for hvert tilstands-handlingspar:

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

Fordeler med Q-læring

Q-læring har flere fordeler:

  • Enkelt og lett å implementere.
  • Kan håndtere stokastiske miljøer.
  • Konvergerer til den optimale policyen ved tilstrekkelig utforskning.

Begrensninger ved Q-læring

Q-læring har noen begrensninger:

  • Skalerer dårlig til miljøer med store tilstands- og handlingsrom.
  • Læringen kan gå sakte i komplekse miljøer.
  • Krever en veldefinert representasjon av tilstander og handlinger.

Oppsummering og neste trinn

I denne leksjonen har vi:

  • Implementert en enkel Q-læringsalgoritme i Python.
  • Trenet en agent til å navigere i en rutenettverden ved hjelp av en Q-tabell.
  • Evaluert den lærte policyen og visualisert Q-tabellen.

Deretter skal vi utforske Deep Q-læring, som bruker nevrale nettverk til å håndtere miljøer med store tilstands- og handlingsrom.

Implementering av Q-tabell i Python — 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 «Implementering av Q-tabell i Python» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Implementering av Q-tabell i Python», 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 «Implementering av Q-tabell i Python»?

Et enkelt eksempel på Q-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 3 av 5.

Hvor lang tid tar leksjonen «Implementering av Q-tabell i Python»?

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