Implementera en Q-tabell i Python
Ett enkelt exempel på Q-inlärning.
Implementera en Q-tabell i Python är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 3 av 5. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 5 lektioner.
Implementera Q-Learning i Python
I den här lektionen implementerar vi en enkel Q-Learning-algoritm i Python. Agenten lär sig navigera i en rutnätsvärld för att maximera sina belöningar.

Definiera miljön
Vi definierar en enkel rutnätsvärld på 4×4 där agenten börjar i det övre vänstra hörnet och måste nå det nedre högra hörnet för att få en belöning.
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] = 10Initiera Q-tabellen
Q-tabellen initieras med nollor för alla tillstånd–åtgärdspar.
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)Implementera Q-Learning-algoritmen
Vi använder följande parametrar:
- α (Inlärningshastighet): Styr hur mycket ny information ersätter gammal.
- γ (Diskonteringsfaktor): Vägar framtida belöningar i förhållande till omedelbara belöningar.
- ε (Utforskningsgrad): Balanserar utforskning och utnyttjande.
# 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 - 1Utvärdera den inlärda policyn
Efter träningen utvärderar vi policyn genom att följa de optimala åtgärder som lagrats 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)Visualisera Q-tabellen
Vi kan visualisera Q-tabellen för att förstå de inlärda värdena för varje tillstånd–åtgärdspar:
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()Fördelar med Q-Learning
Q-Learning erbjuder flera fördelar:
- Enkelt och lätt att implementera.
- Kan hantera stokastiska miljöer.
- Konvergerar till den optimala policyn vid tillräcklig utforskning.
Begränsningar med Q-Learning
Q-Learning har vissa begränsningar:
- Skalar inte väl till miljöer med stora tillstånds- och åtgärdsrymder.
- Inlärningen kan vara långsam i komplexa miljöer.
- Kräver en väldefinierad representation av tillstånd och åtgärder.
Sammanfattning och nästa steg
I den här lektionen:
- Implementerade vi en enkel Q-Learning-algoritm i Python.
- Tränade vi en agent att navigera i en rutnätsvärld med hjälp av en Q-tabell.
- Utvärderade vi den inlärda policyn och visualiserade Q-tabellen.
Härnäst utforskar vi Deep Q-Learning, som använder neurala nätverk för att hantera miljöer med stora tillstånds- och åtgärdsrymder.

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
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”Implementera en Q-tabell i Python” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”Implementera en Q-tabell i Python”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 5 lektioner.
Vad lär jag mig i ”Implementera en Q-tabell i Python”?
Ett enkelt exempel på Q-inlärning. Ni övar på Lär Er AI med Python 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 Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python 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 3 av 5.
Hur lång tid tar lektionen ”Implementera en Q-tabell i Python”?
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 Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-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
- Grundläggande begrepp inom förstärkningsinlärning
- Q-tabellens koncept
- Implementera en Q-tabell i Python
- Djup Q-inlärning
- Utforska OpenAI Gym