Q-taulun toteuttaminen Pythonissa
Yksinkertainen esimerkki Q-oppimisesta
Q-taulun toteuttaminen Pythonissa on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/5. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Python Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Python Academy-kurssilla on yhteensä 5 oppituntia.
Q-oppimisen toteuttaminen Pythonilla
Tässä oppitunnissa toteutamme yksinkertaisen Q-oppimisalgoritmin Pythonilla. Agentti oppii navigoimaan ruudukossa maksimoidakseen saamansa palkkiot.

Ympäristön määrittäminen
Määritämme yksinkertaisen 4×4-ruudukon, jossa agentti aloittaa vasemmasta yläkulmasta ja sen on päästävä oikeaan alakulmaan saadakseen palkkion.
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] = 10Q-taulukon alustaminen
Q-taulukko alustetaan nollilla kaikkien tila–toimintoparien osalta.
# Initialize the Q-Table
q_table = np.zeros((num_states, num_actions))
print("Initial Q-Table:")
print(q_table)Q-oppimisalgoritmin toteuttaminen
Käytämme seuraavia parametreja:
- α (oppimisnopeus): Määrittää, kuinka paljon uusi tieto korvaa vanhaa.
- γ (diskonttauskerroin): Painottaa tulevia palkkioita suhteessa välittömiin palkkioihin.
- ε (tutkimisaste): Tasapainottaa tutkimista ja hyödyntämistä.
# 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 - 1Opitun politiikan arviointi
Koulutuksen jälkeen arvioimme politiikan noudattamalla Q-taulukkoon tallennettuja optimaalisia toimintoja:
# 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)Q-taulukon visualisointi
Voimme visualisoida Q-taulukon ymmärtääksemme kullekin tila–toimintaparille opitut arvot:
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()Q-oppimisen edut
Q-oppimisella on useita etuja:
- Se on yksinkertainen ja helppo toteuttaa.
- Se pystyy käsittelemään stokastisia ympäristöjä.
- Se konvergoi optimaaliseen politiikkaan, kun tutkimista on riittävästi.
Q-oppimisen rajoitukset
Q-oppimisella on joitakin rajoituksia:
- Se ei skaalaudu hyvin ympäristöihin, joissa tila–toimintotiloja on paljon.
- Oppiminen voi olla hidasta monimutkaisissa ympäristöissä.
- Se edellyttää tarkasti määriteltyä tila–toimintoesitystä.
Yhteenveto ja seuraavat vaiheet
Tässä oppitunnissa:
- toteutimme yksinkertaisen Q-oppimisalgoritmin Pythonilla.
- koulutimme agentin navigoimaan ruudukossa Q-taulukon avulla.
- arvioimme opitun politiikan ja visualisoimme Q-taulukon.
Seuraavaksi tutustumme syvään Q-oppimiseen, jossa neuroverkkoja käytetään käsittelemään ympäristöjä, joissa tila–toimintotiloja on paljon.

Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 76
- Oppitunnit
- 320
Usein kysytyt kysymykset
Onko oppitunti ”Q-taulun toteuttaminen Pythonissa” ilmainen?
Kyllä – oppitunnin ”Q-taulun toteuttaminen Pythonissa” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Python Academy-kurssin, päivitä CoddyKit PROhon. Python Academy-kurssilla on yhteensä 5 oppituntia.
Mitä opin oppitunnilla ”Q-taulun toteuttaminen Pythonissa”?
Yksinkertainen esimerkki Q-oppimisesta Harjoittelet Python Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Python Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Python Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/5.
Kuinka kauan ”Q-taulun toteuttaminen Pythonissa”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Python Academy-oppitunnilla?
Kyllä. Jokainen Python Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Vahvistusoppimisen peruskäsitteet
- Q-taulun käsite
- Q-taulun toteuttaminen Pythonissa
- Syvä Q-oppiminen
- OpenAI Gymin tutkiminen