Q-taulukon toteuttaminen Pythonissa
Yksinkertainen esimerkki Q-oppimisesta.
Q-taulukon toteuttaminen Pythonissa on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 3/5. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 5 oppituntia.
Q-oppimisen toteuttaminen Pythonilla
Tässä oppitunnissa toteutamme Pythonilla yksinkertaisen Q-oppimisalgoritmin. Agentti oppii suunnistamaan ruudukkomaailmassa maksimoidakseen palkkionsa.

Ympäristön määrittäminen
Määrittelemme yksinkertaisen 4×4-ruudukkomaailman, 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-toiminto-parien 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): Säätää, kuinka paljon uusi tieto syrjäyttää vanhaa.
- γ (diskonttaustekijä): Määrittää tulevien palkkioiden painoarvon suhteessa välittömiin palkkioihin.
- ε (tutkimisaste): Tasapainottaa tutkimista ja opittujen toimintatapojen 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 politiikkaa 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, jotta ymmärrämme kunkin tila-toiminto-parin 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 soveltuu stokastisiin ympäristöihin.
- Se suppenee optimaaliseen politiikkaan, kun tutkimista on riittävästi.
Q-oppimisen rajoitukset
Q-oppimisella on joitakin rajoituksia:
- Se ei skaalaudu hyvin ympäristöihin, joissa on paljon tila-toiminto-pareja.
- Oppiminen voi olla hidasta monimutkaisissa ympäristöissä.
- Se edellyttää selkeästi määriteltyä tila-toiminto-esitystä.
Yhteenveto ja seuraavat vaiheet
Tässä oppitunnissa:
- Toteutimme yksinkertaisen Q-oppimisalgoritmin Pythonilla.
- Koulutimme agentin liikkumaan ruudukkomaailmassa Q-taulukon avulla.
- Arvioimme opitun politiikan ja visualisoimme Q-taulukon.
Seuraavaksi tutustumme syvään Q-oppimiseen, jossa neuroverkkojen avulla voidaan käsitellä ympäristöjä, joissa on paljon tila-toiminto-pareja.

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
- 53
- Oppitunnit
- 225
Usein kysytyt kysymykset
Onko oppitunti ”Q-taulukon toteuttaminen Pythonissa” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Q-taulukon toteuttaminen Pythonissa”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 5 oppituntia.
Mitä opin oppitunnilla ”Q-taulukon toteuttaminen Pythonissa”?
Yksinkertainen esimerkki Q-oppimisesta. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-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-taulukon 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ä Oppikaa tekoälyä Pythonilla-oppitunnilla?
Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-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-taulukon käsite
- Q-taulukon toteuttaminen Pythonissa
- Syvä Q-oppiminen
- OpenAI Gymiin tutustuminen