Vahvistusoppiminen: opi toiminnan seurauksista
Vahvistusoppiminen (reinforcement learning, RL) kouluttaa agenttia tai toimintapolitiikkaa sen toimintoihin liittyvien palkkioiden avulla. Toimintapolitiikka (policy) valitsee teon; vuorovaikutus ympäristön kanssa tuottaa havaintoja ja palkkioita. Tavoite koskee odotettua kertynyttä palkkiota eikä vain annetun toimintoluokan jäljittelyä.
Toiminnot voivat muuttaa myöhempiä tilanteita. Heti hyvältä näyttävä teko voi estää paremman lopputuloksen, joten ansion jakaminen toimintaketjussa on keskeinen ongelma.
Vahvista tai heikennä valittua toimintoa
Neuroverkkopolitiikka voi tuottaa logitit eri toiminnoille. Toimintapolitiikan gradienttihäviö (policy-gradient loss) painottaa valittujen toimintojen logaritmisia todennäköisyyksiä etuestimaatilla (advantage): arviolla siitä, kuinka paljon parempi tulos oli kuin vertailuodotus.
PyTorch-funktio ottaa logitit muodossa batch × actions, valitut toimintotunnisteet ja yhden etuarvon riville. Se on tavallinen politiikkagradientin tavoite, ei kokonainen PPO-koulutin.
from torch.distributions import Categorical
def policy_loss(logits, actions, advantages):
policy = Categorical(logits=logits)
return -(policy.log_prob(actions) * advantages.detach()).mean()
Positiivinen etu kannustaa valittua toimintoa ja negatiivinen hillitsee sitä. Etuarvojen irrottaminen derivointiketjusta estää häviötä derivoimasta niiden arviointimenettelyä. Optimointialgoritmi päivittää tämän jälkeen politiikan parametreja logittien kautta.
Palkkio määrittelee koulutuspaineen
Palkkio voi tulla pelipisteistä, tarkistetusta ratkaisusta, ihmispalautteesta tai opitusta palkkiomallista. Jokainen valinta määrittelee parannettavaa toimintaa. Helposti laskettava piste voi jättää pois ihmisille tärkeitä asioita.
Kielimalli voi toimia tokenien toimintapolitiikkana, mikä yhdistää RL:n päättelykoulutukseen ja RLHF:ään. Agentin ajaminen työkaluilla on eri asia: se voi sopeutua havaintoihin tehtävän aikana ilman painopäivityksiä.