Neural network simulatie

Vanuit een semester Games Programming binnen mijn opleiding tot software engineer aan Windesheim in Zwolle, heb ik een project ontwikkeld omtrent neurale netwerken. Het doel van het project is het aantonen van de toepassing en het trainen van een neuraal netwerk.

Binnen mijn samenwerking met dit bedrijf heb ik een systeem ontwikkeld om één van deze uitdagingen te overkomen.
Van belang was de applicatie te laten communiceren met het ERP-systeem Ridder.

technieken

De applicatie is een combinatie van twee verschillende technieken.
De UI is een WPF .NET 5.0 applicatie ontwikkeld om het gebruik van het neurale netwerk zo eenvoudig mogelijk te maken.
Binnen de UI bevindt zich een OpenGL element. Deze wordt gebruikt voor het visualiseren/renderen van alle componenten binnen de simulatie.

hoe werkt het

Het neurale netwerk wordt getraind doormiddel van een evolutionaire algoritme. Deze maakt gebruik van een aantal inputs waaronder de zes sensoren verbonden aan iedere auto binnen de simulatie.
De afstand van de auto tot het uiteinde van een sensor is één van de meest belangrijke inputs voor het trainen van het neurale netwerk.
Collision detection maakt het mogelijk te detecteren wanneer een sensor in aanraking komt met een element (bv. bomen, gras of gebouwen).
Het trainen van het neurale netwerk werkt doormiddel van generaties. Iedere auto binnen een generatie krijgt een score gebaseerd op de inputs binnen het netwerk.
Een hoge score zal toegekend worden aan een auto welke op relatief hoge snelheid binnen de wereld rondrijdt. Mocht een auto zich op gras bevinden, zal deze vertraagd worden. Dit resulteert in een lagere score.
Auto’s die in aanraking komen met elementen binnen de wereld (bomen/gebouwen) zullen gezien worden als ‘gecrashed’. Dit resulteert in een zeer lage score.

Het project is gebaseerd op een aantal technieken geleerd tijdens het semester. Het is een work in progress project waar zeker nog verbeteringen mogelijk zijn.

Interesse?

Neem dan contact op!