Overslaan naar hoofdinhoud
OpenAI
Bezig met laden...

We hebben een hiërarchisch algoritme voor versterkend leren ontwikkeld dat handelingen op hoog niveau aanleert die nuttig zijn voor het oplossen van een reeks taken, waardoor taken die duizenden tijdstappen vereisen snel kunnen worden opgelost. Wanneer ons algoritme wordt toegepast op een reeks navigatieproblemen, ontdekt het een reeks handelingen op hoog niveau voor lopen en kruipen in verschillende richtingen, waardoor de agent nieuwe navigatietaken snel onder de knie krijgt.

Mensen lossen ingewikkelde uitdagingen op door ze op te splitsen in kleine, beheersbare onderdelen. Pannenkoeken bakken bestaat uit een reeks handelingen op hoog niveau, zoals bloem afmeten, eieren kloppen, het mengsel in de pan doen, het fornuis aanzetten enzovoort. Mensen zijn in staat om snel nieuwe taken te leren door deze geleerde componenten achter elkaar te zetten, zelfs als de taak miljoenen handelingen op een laag niveau vereist, zoals individuele spiercontracties.

Aan de andere kant werken de huidige methoden voor versterkend leren met brute kracht door te zoeken naar handelingen op een laag niveau, waardoor een enorm aantal pogingen nodig is om een nieuwe taak op te lossen. Deze methoden worden erg inefficiënt bij het oplossen van taken die een groot aantal tijdstappen in beslag nemen.

Onze oplossing is gebaseerd op het idee van hiërarchisch versterkend leren, waarbij agenten ingewikkeld gedrag voorstellen als een korte reeks handelingen op hoog niveau. Hierdoor kunnen onze agenten veel moeilijkere taken oplossen: terwijl de oplossing misschien 2000 handelingen op laag niveau vereist, verandert het hiërarchische beleid dit in een reeks van 10 handelingen op hoog niveau en het is veel efficiënter om de reeks van 10 stappen te doorzoeken dan de reeks van 2000 stappen.

Meta-leren van gedeelde hiërarchieën

Stroomdiagram van observaties die het beleid doorlopen en omgezet worden in handeling

Ons algoritme, meta-leren van gedeelde hiërarchieën (meta-learning shared hierarchies, MLSH), leert een hiërarchisch beleid waarbij een masterbeleid schakelt tussen een reeks subbeleidslijnen. De master selecteert elke N tijdstappen een handeling, waarbij we N=200 kunnen nemen. Een subbeleidslijn uitgevoerd voor N tijdstappen vormt een handeling op hoog niveau en voor onze navigatietaken komen subbeleidslijnen overeen met lopen of kruipen in verschillende richtingen.

In het meeste eerdere werk is hiërarchisch beleid expliciet met de hand ontworpen. In plaats daarvan willen we deze hiërarchische structuur automatisch ontdekken door interactie met de omgeving. Vanuit het perspectief van meta-leren definiëren we een goede hiërarchie als een hiërarchie die snel een hoge beloning bereikt bij training op ongeziene taken. Daarom is het MLSH-algoritme gericht op het leren van subbeleidslijnen die snel leren op voorheen ongeziene taken mogelijk maken.

We trainen op een verdeling over taken, delen de subbeleidslijnen en leren een nieuw hoofdbeleid voor elke taak in de steekproef. Door herhaaldelijk nieuwe masterbeleidslijnen te trainen, vindt dit proces automatisch subbeleidslijnen die de leerdynamiek van de masterbeleidslijnen aanpassen.

Experimenten

Bezig met laden...

In onze AntMaze-omgeving wordt een Mujoco Ant-robot in een verdeling van 9 verschillende doolhoven geplaatst en moet hij van de startpositie naar het doel navigeren. Ons algoritme is succesvol in het vinden van een diverse set van subbeleidslijnen die achter elkaar gezet kunnen worden om de doolhoftaken op te lossen, uitsluitend door interactie met de omgeving. Deze set van subbeleidslijnen kan dan gebruikt worden om een grotere taak te beheersen dan die waarop ze getraind zijn (zie video aan het begin van dit bericht).

Bezig met laden...

Code

We geven de code(opent in een nieuw venster) vrij voor het trainen van de MLSH-agenten, evenals de MuJoCo-omgevingen die we hebben gebouwd om deze algoritmen te evalueren.

Auteurs

Kevin Frans, Jonathan Ho, Peter Chen, Pieter Abbeel