Het doel van de Jumper is om een ml-agent te trainen die over een obstakel kan springen. De bedoeling is dat er ook nog een andere uitdaging wordt toegevoegd. In dit geval is dat een beloning die bonus punten opleverd.
In deze tutorial worden de methoden en resultaten besproken. Bij de methoden wordt besproken wat je moet installeren, wat de jumper doet en krijg je informatie over de observaties, acties en beloningen.
voor het project te laten werken moet je het volgende geinstalleerd hebben:
- Unity versie: 22.3.*
- Anaconda (conda): 24.1.2
- Python versie: 3.9.*
- ML-Agents Toolkit versie: 0.30.0
- PyTorch versie: 1.7.1
Je kan het project downloaden en opstarten met:
git clone https://github.com/AP-IT-GH/jumper-assignment-inge129116.git
De agent trainen kan in de scene testscene.
Er is een muur waaruit blokken vertrekken. Deze blokken gaan richting de Agent. De blokken kunnen hindernissen of beloningen zijn. De agent moet over de hindernissen springen. De beloningen mag hij wel raken. Het verschil kan hij zien via de tags van de objecten.
- eigen positie
- rayperceptionSensor3D (met tags)
De agent heeft 2 mogelijke acties. Hij kan springen of niet springen. Dit werkt met discrete actions.
Hij wordt beloond als:
- een hindernis niet geraakt wordt
- een beloning wel geraak wordt
Hij wordt gestraft als:
- de agent springt (dit is een kleine straf zodat hij niet constant springt.)
- een hindernis geraakt wordt.
- hindernis: obstakel waar de agent over moet springen
- beloning: kubus die de agent moet raken.
- Agent: een ML-Agent die getraind wordt om over hindernissen te springen.
Deze stijgt over het algemeen, dit betekent dat de agent beter wordt.
De episode eindigt wanneer een hindernis geraakt wordt, dus hoe langer de lengte van een episode hoe beter de agent bezig is.
Dit is hoe onzeker de agent is. Deze waarde daalt heel snel. Dit komt overeen met de snel stijgende waarde in het begin bij de Cumulative Reward. Bij een lage waarde voor entropy is de agent zeker van wat hij doet.
Het model leert in het begin heel snel. Daarna wordt het model zekerder en verandert het steeds minder. De waarde van de beloningen lijken nog niet perfect maar met deze training kan het model al goede resultaten halen. Hij springt over de meeste hindernissen en springt niet constant waardoor hij kan zien of er iets aankomt. Het model springt ook niet over de beloningen.