Syvä Q-oppiminen
Neuroverkkojen käyttäminen vahvistusoppimisessa.
Syvä Q-oppiminen on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.
Mitä syvä Q-oppiminen on
Syvä Q-oppiminen
Syvä Q-oppiminen on Q-oppimisen laajennus, jossa neuroverkkoa käytetään Q-taulukon approksimointiin. Näin vahvistusoppiminen voidaan skaalata ympäristöihin, joissa on paljon tai jatkuva tila-avaruus ja toimintoavaruus.

Miksi syvää Q-oppimista käytetään
Syvä Q-oppiminen ratkaisee perinteisen Q-oppimisen rajoituksia:
- Se käsittelee suuriulotteisia tila-avaruuksia, 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, jota kutsutaan nimellä Q-Network. Tärkeimmät vaiheet ovat:
- Alustetaan Q-Network satunnaisilla painoilla.
- Ollaan vuorovaikutuksessa ympäristön kanssa ja kerätään kokemustuplia
(state, action, reward, next_state). - Päivitetään Q-Network Bellmanin yhtälön avulla:
Q(s, a) ≈ r + γ max(Q(s', a'))
Q-Networkin rakentaminen
Q-Network on yksinkertainen eteenpäin syöttä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 oppimisen tehostamiseen käytetään tekniikkaa nimeltä kokemusten toisto:
- Kokemukset
(state, action, reward, next_state)tallennetaan muistipuskuriin. - Kokemuksista poimitaan satunnaisesti eriä Q-Networkin 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-Networkin kouluttaminen
Koulutamme Q-Networkia muistipuskurissa olevien 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:
- Ylläpidetään erillistä verkkoa kohde-Q-arvojen laskemista varten.
- Q-Networkin painot kopioidaan kohdeverkkoon säännöllisin väliajoin.
Syvän Q-oppimisen edut
Syvällä Q-oppimisella on useita etuja:
- Se käsittelee suuriulotteisia tila-avaruuksia, kuten kuvia.
- Se yleistää tilojen välillä neuroverkkojen avulla.
- Sen avulla voidaan 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-Networkin Q-arvojen approksimointia varten.
- Käsittelimme kokemusten toistoa ja kohdeverkkoja vakaan koulutuksen mahdollistamiseksi.
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
- 53
- Oppitunnit
- 225
Usein kysytyt kysymykset
Onko oppitunti ”Syvä Q-oppiminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Syvä Q-oppiminen”. 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 ”Syvä Q-oppiminen”?
Neuroverkkojen käyttäminen vahvistusoppimisessa. 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 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ä 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