Gépi tanuló algoritmus megismerése genetikus algoritmus és neurális háló használatával

OData támogatás
Konzulens:
Dr. Asztalos Márk
Automatizálási és Alkalmazott Informatikai Tanszék

A mesterséges intelligenciának több megközelítése létezik. Manapság a neurális háló egy aktív fejlesztés alatt álló terület és számtalan felhasználása létezik, mint képek osztályozása, ajánlási algoritmusok, szövegfeldolgozás és önvezető autó. A háló tanítására egy kevésbé elterjedt módszer a genetikus algoritmus (GA) használata, ezt nevezi a szakirodalom neuroevolúciós algoritmusnak (NA). A GA előnye a diszkrét optimalizációs problémák megoldásában rejlik, így a GA által használt keresési módszert a háló felépítésének meghatározására alkalmazható a NA-ban, amire a mélytanulási módszer nem ad megoldást.

A NA-ra megvalósítására már több megoldás is létezik, az általam megvizsgált algoritmusok közül a NEAT nevű algoritmus tűnt a legmegbízhatóbbnak, szakdolgozatomban ezt implementáltam le.

Az implementáció Kotlin-ban készült el a NEAT leírása alapján, aminek a célja egy működőképes NA prezentálása volt. A program objektum-orientált szemléletben lett elkészítve, aminek az egyik legfőbb funkciója az összes hiperparaméter külsőleg való konfigurálása, ami Java „annotation-processor” segítségével lett megvalósítva.

A működés helyességét egy külső tesztelő program bizonyítja, ami TypeScript nyelven a Kotlin program futása során készült logokat grafikonokon ábrázolja. Erre az algoritmus nemdeterminisztikussága miatt volt szükség.

Végül egy demo játék mutatja be az algoritmus egy lehetséges felhasználását, ami Unity játékmotorban íródott C# nyelven.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.