Python Academy · Oppitunti

Syvä Q-oppiminen

Neuroverkkojen käyttäminen vahvistusoppimiseen

Oppitunti 4/510 vaihetta

Syvä Q-oppiminen on ilmainen Python Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.

Mitä syvä Q-oppiminen on

Syvä Q-oppiminen

Syvä Q-oppiminen on Q-oppimisen laajennus, jossa Q-taulukon approksimointiin käytetään neuroverkkoa. Tämä mahdollistaa vahvistusoppimisen skaalautumisen ympäristöihin, joissa tila- tai toimintotilat ovat suuria tai jatkuvia.

Syvä Q-oppiminen — kuvitus 1

Miksi syvää Q-oppimista?

Syvä Q-oppiminen ratkaisee perinteisen Q-oppimisen rajoituksia:

  • Se käsittelee korkeadimensioisia tiloja, kuten kuvia.
  • Se poistaa tarpeen tallentaa suuria Q-taulukoita muistiin.
  • Se yleistää tilojen välillä neuroverkkojen avulla.

DQN-algoritmi

Syvässä Q-oppimisessa Q-arvojen approksimointiin käytetään neuroverkkoa nimeltä Q-verkko. Sen tärkeimmät vaiheet ovat:

  1. Alusta Q-verkko satunnaisilla painoilla.
  2. Ole vuorovaikutuksessa ympäristön kanssa ja kerää kokemustuplia (state, action, reward, next_state).
  3. Päivitä Q-verkko Bellmanin yhtälön avulla:

Q(s, a) ≈ r + γ max(Q(s', a'))

Q-verkon rakentaminen

Q-verkko on yksinkertainen eteenpäin syötettävä neuroverkko, joka ottaa nykyisen tilan syötteenä ja tuottaa Q-arvot kaikille mahdollisille toiminnoille:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# Define the Q-Network
q_network = Sequential([
    Dense(24, activation='relu', input_shape=(state_space_size,)),
    Dense(24, activation='relu'),
    Dense(action_space_size, activation='linear')
])

q_network.compile(optimizer='adam', loss='mse')

Kokemusten toisto

Syvässä Q-oppimisessa käytetään kokemusten toistoksi kutsuttua tekniikkaa oppimisen tehostamiseksi:

  • Tallenna kokemukset (state, action, reward, next_state) muistipuskuriin.
  • Poimi kokemuksista satunnaisesti eriä Q-verkon kouluttamista varten.
from collections import deque

# Initialize replay memory
memory = deque(maxlen=2000)

# Add experience to memory
memory.append((state, action, reward, next_state, done))

Q-verkon kouluttaminen

Koulutamme Q-verkon muistipuskurin kokemusten avulla:

import numpy as np

# Sample a batch of experiences
batch_size = 32
batch = random.sample(memory, batch_size)

# Train the Q-Network
for state, action, reward, next_state, done in batch:
    target = reward
    if not done:
        target += gamma * np.max(q_network.predict(next_state[np.newaxis, ...]))
    q_values = q_network.predict(state[np.newaxis, ...])
    q_values[0][action] = target
    q_network.fit(state[np.newaxis, ...], q_values, epochs=1, verbose=0)

Kohdeverkot

Koulutuksen vakauttamiseksi DQN käyttää kohdeverkkoa:

  • Pidä erillistä verkkoa kohde-Q-arvojen laskemista varten.
  • Kopioi Q-verkon painot kohdeverkkoon säännöllisin väliajoin.

Syvän Q-oppimisen edut

Syvällä Q-oppimisella on useita etuja:

  • Se käsittelee korkeadimensioisia tiloja, kuten kuvia.
  • Se yleistää tilojen välillä neuroverkkojen avulla.
  • Se voi ratkaista monimutkaisia tehtäviä, kuten Atari-pelejä ja robottien ohjausta.

Yhteenveto ja seuraavat vaiheet

Tässä oppitunnissa:

  • tutustuimme syvän Q-oppimisen perusteisiin.
  • rakensimme Q-verkon Q-arvojen approksimointia varten.
  • keskustelimme kokemusten toistosta ja kohdeverkoista vakaan koulutuksen menetelminä.

Seuraavaksi tutustumme OpenAI Gymiin ja sovellamme vahvistusoppimista simuloiduissa ympäristöissä.

Syvä Q-oppiminen — 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 ”Syvä Q-oppiminen” ilmainen?

Kyllä – oppitunnin ”Syvä Q-oppiminen” 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 ”Syvä Q-oppiminen”?

Neuroverkkojen käyttäminen vahvistusoppimiseen 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 4/5.

Kuinka kauan ”Syvä Q-oppiminen”-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