Python Academy · Oppitunti

Q-taulun toteuttaminen Pythonissa

Yksinkertainen esimerkki Q-oppimisesta

Oppitunti 3/510 vaihetta

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.

Q-taulun toteuttaminen Pythonissa — kuvitus 1

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] = 10

Q-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 - 1

Opitun 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.

Q-taulun toteuttaminen Pythonissa — kuvitus 10
Aloita maksutta

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

  1. Vahvistusoppimisen peruskäsitteet
  2. Q-taulun käsite
  3. Q-taulun toteuttaminen Pythonissa
  4. Syvä Q-oppiminen
  5. OpenAI Gymin tutkiminen
← Takaisin: Python Academy