Syvä Q-oppiminen
Neuroverkkojen käyttäminen vahvistusoppimiseen
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.

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:
- Alusta Q-verkko satunnaisilla painoilla.
- Ole vuorovaikutuksessa ympäristön kanssa ja kerää kokemustuplia
(state, action, reward, next_state). - 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ä.

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
- Vahvistusoppimisen peruskäsitteet
- Q-taulun käsite
- Q-taulun toteuttaminen Pythonissa
- Syvä Q-oppiminen
- OpenAI Gymin tutkiminen