Zkratka proReinforcement Learningreinforcement learning: rynfórsment lérningTakéRL, Zpětnovazební učení, Posilované strojové učeníPokročilý
Definice
Posilované učení je přístup strojového učení, ve kterém se agent učí rozhodovat opakovanou interakcí s prostředím a jediným vodítkem mu je číselná odměna za provedené akce. Cílem není napodobit správné odpovědi z označených dat, ale najít strategii, která maximalizuje součet odměn v čase, včetně odložených důsledků.
Odměna místo správné odpovědi
Posilované učení řeší úlohy, kde nikdo dopředu neví, jaká akce je v dané situaci nejlepší. Na rozdíl od učení s učitelem nemá model k dispozici dvojice vstup a očekávaný výstup. Dostane jen prostředí, sadu možných akcí a signál odměny, který mu říká, jestli se právě děje něco dobrého. Zbytek si musí odvodit sám z vlastní zkušenosti.
Formálně se úloha popisuje jako Markovův rozhodovací proces: stav prostředí, akce agenta, přechodová pravděpodobnost do dalšího stavu a odměna. Agent hledá strategii (policy), tedy pravidlo, které stavu přiřazuje akci. Kvalitu strategie měří očekávaný diskontovaný součet budoucích odměn, kde diskontní faktor gama určuje, jak moc agenta zajímá vzdálená budoucnost oproti okamžitému zisku.
Problém odloženého kreditu
Odměna typicky nepřijde hned. V šachu se výsledek dozvíte po desítkách tahů, v e-shopu se nákup uskuteční až po sérii doporučení. Agent tedy musí přiřadit zásluhu konkrétním dřívějším rozhodnutím, což je jádro celého oboru. Metody jako Q-learning nebo temporal difference učení řeší tenhle problém tak, že si udržují odhad hodnoty stavu a průběžně ho opravují podle toho, co se ukázalo být lepší, než čekaly.
Průzkum versus využití
Agent, který vždycky vybere akci s nejvyšším známým odhadem hodnoty, se zasekne na první průměrně dobré strategii. Agent, který zkouší pořád náhodné akce, se nikdy nezlepší. Tenhle kompromis mezi průzkumem (exploration) a využitím (exploitation) nemá univerzální řešení. V praxi se používá epsilon-greedy volba, entropická regularizace nebo optimistická inicializace hodnot.
Kde se posilované učení skutečně používá
Nasazení mimo výzkum je vzácnější, než by se z popularity oboru zdálo. Prosadilo se tam, kde existuje spolehlivý simulátor: robotika, řízení chlazení datacenter, plánování v logistice, herní AI. Druhou velkou oblastí je doladění jazykových modelů metodou RLHF, kde odměnu vytváří samostatný model natrénovaný na lidských preferencích.
Hlavní překážkou je vzorková náročnost. Hluboké RL potřebuje řádově miliony interakcí, což je v reálném světě neúnosné, protože každý pokus stojí čas, peníze nebo poškozený hardware. Proto se trénuje v simulaci a řeší se pak přenos do reality. Druhá past je odměnová funkce: agent optimalizuje přesně to, co je napsané, ne to, co jste mysleli. Špatně navržená odměna vede k reward hackingu, kdy model najde degenerovanou strategii s vysokým skóre a nulovou užitečností.
Vztah k neuronovým sítím
Klasické RL pracovalo s tabulkou hodnot pro každý stav, což u velkých prostorů selhává. Hluboké posilované učení nahrazuje tabulku neuronovou sítí, která hodnotu nebo strategii aproximuje. Tím se otevřely úlohy s obrazovým vstupem, ale přibyla nestabilita trénování: cíl se mění zároveň s modelem, takže se používají triky jako replay buffer a cílová síť.
Příklady z praxe
Doporučování obsahu jako víceruký bandita
Zpravodajský web musí rozhodnout, který ze šesti článků ukáže na hlavní stránce. Klasické A/B testování by muselo běžet týden na fixním rozdělení provozu, zatímco bandit algoritmus průběžně přesouvá zobrazení k článkům s vyšší mírou prokliku a menší část provozu si nechává na průzkum. Ztráta z testování slabých variant je díky tomu výrazně nižší.
import random Q = {a: 0.0 for a in clanky} # odhad mira prokliku N = {a: 0 for a in clanky} EPS = 0.1 def vyber(): if random.random() < EPS: return random.choice(clanky) # pruzkum return max(Q, key=Q.get) # vyuziti def aktualizuj(a, odmena): # odmena = 1 klik, 0 bez kliku N[a] += 1 Q[a] += (odmena - Q[a]) / N[a]Reward hacking v simulaci robotického ramene
Tým trénuje rameno, aby přesunulo kostku do cílového čtverce, a odměnu definuje jako zápornou vzdálenost kostky od cíle. Agent objeví, že místo uchopení stačí kostku odpálit prudkým pohybem, takže proletí cílem a v jednom snímku má minimální vzdálenost. Skóre roste, úloha se ale neplní. Oprava spočívá v odměně za setrvání kostky v cíli po stanovený počet kroků.
Časté omyly
- MýtusPosilované učení je vlastně jen učení s učitelem, kde místo štítku dáváme odměnu.
- Ve skutečnostiPosilované učení nedostává informaci o tom, která akce byla správná, jen o tom, jak dobrý byl výsledek. Navíc data nejsou pevná: agent svým chováním určuje, jaké situace vůbec uvidí, takže rozdělení trénovacích dat se během učení mění.
- MýtusRL zvládne cokoli, když mu dáme dost výpočetního výkonu.
- Ve skutečnostiRL potřebuje prostředí, ve kterém lze levně a mnohokrát chybovat, a měřitelnou odměnu. Bez věrného simulátoru nebo obrovského objemu logovaných interakcí je nasazení v provozu nepraktické a levnější přístup bývá klasická predikce s ručně navrženým pravidlem.
- MýtusRLHF u jazykových modelů znamená, že model dostává odměnu přímo od lidí.
- Ve skutečnostiLidé v RLHF obvykle jen porovnávají dvojice odpovědí. Z těchto preferencí se natrénuje samostatný odměnový model a teprve ten dává během optimalizace číselný signál, protože živý člověk by nikdy nestihl ohodnotit potřebný počet vzorků.
Časté dotazy
- Kolik dat potřebuje posilované učení oproti klasickému modelu?
- Posilované učení bývá vzorkově výrazně náročnější než učení s učitelem. Zatímco klasifikátor se něco naučí z desítek tisíc označených příkladů, hluboké RL agenty se běžně trénují na milionech až miliardách kroků interakce s prostředím. Důvod je v tom, že odměna nese mnohem méně informace než konkrétní správná odpověď a agent se navíc musí naučit i důsledky vlastních rozhodnutí. Proto se prakticky vždy trénuje v simulaci, případně se využívají offline metody učící se z dříve nasbíraných záznamů provozu.
- Jak navrhnout odměnovou funkci, aby agent nepodváděl?
- Odměnová funkce má odměňovat skutečný cíl, ne jeho snadno měřitelnou náhražku. Osvědčuje se odměňovat až splněný stav udržený po několik kroků, přidávat penalizace za nežádoucí chování, omezovat prostor akcí a nové strategie ručně prohlédnout ve vizualizaci před dalším kolem trénování. Užitečnou technikou je také reward shaping ve tvaru, který zachovává optimální strategii. Praktickým pravidlem zůstává, že každou neobvykle rychle rostoucí odměnu je potřeba považovat za podezření na chybu v definici úlohy, dokud se neprokáže opak.
- Jaký je rozdíl mezi on-policy a off-policy metodami?
- On-policy metody, například PPO nebo SARSA, se učí ze zkušeností vytvořených právě tou strategií, kterou zlepšují. Jsou stabilnější, ale starší data musí zahodit. Off-policy metody jako Q-learning nebo DQN se dokážou učit i z dat pořízených jinou strategií, takže mohou opakovaně využívat replay buffer a jsou vzorkově úspornější. Za to platí vyšší náchylností k divergenci při kombinaci s aproximací neuronovou sítí. Volba mezi nimi je hlavně kompromis mezi cenou získání dat a stabilitou trénování.
- Dá se posilované učení nasadit přímo v produkci na živých uživatelích?
- Posilované učení lze v produkci nasadit, ale zpravidla jen v omezené formě banditů nad malým počtem variant, kde je odměna rychlá a měřitelná, například proklik nebo konverze. Plné RL s dlouhým horizontem se v živém provozu učí obtížně, protože chybné strategie stojí reálné peníze a zpětná vazba přichází pozdě. Bezpečnější postup je natrénovat strategii offline z historických logů, ověřit ji odhadem mimo provoz a teprve poté ji pustit na malý podíl provozu s pojistkou v podobě pravidel.
Zdroje
- Reinforcement learning(otevře se v novém okně)
- Reinforcement Learning (DQN) Tutorial(otevře se v novém okně)
- Playing Atari with Deep Reinforcement Learning(otevře se v novém okně)
- Proximal Policy Optimization Algorithms(otevře se v novém okně)
- Markov decision process(otevře se v novém okně)