Optimizing a Spiking Neural Network for Autonomous Steering and Braking Behaviour of a Vehicle in a Simulated Environment
This thesis presents a Spiking Neural Network (SNN) that is capable of controlling a simulated autonomous vehicle executing a lane-keeping task and an overtaking task. The goal was to investigate how much spikes we minimally need to achieve accurate behaviour, consistently. Open-source simulator Carla (Dosovitskiy, Ros, Codevilla, Lopez, & Koltun, 2017) was used to deploy the algorithms in. The algorithms were written in the Python programming language (Sanner, 1999), for which Carla provides an Application Programming Interface (API). Our SNN was constructed in the Nengo framework (Bekolay et al., 2014), which is also accessible via a Python API. The independent variables are the amount of neurons per neural ensemble, as well as the intercept distribution within these ensembles. The amount of spikes that is needed for the proposed network to be informative enough for the car to drive, is 11.602.237,4 spikes per episode of 150.000 steps. This translates to 77,348 spikes per step in the simulator. Potentially, supervised machine learning methods can improve this number by incorporating precise spike timings (Taherkhani, Belatreche, Li, & Maguire, 2018). As with this thesis project, these models also suffer from the noise that arises with SNN’s. Recent studies introduce dynamic thresholds that can be trained (Zhang, Qu, Xie, & Kurths, 2017). Whether the sensory input data from a simulated vehicle can be translated into a classification problem, or whether these methods can expand in order to work with this data remains to be explored.
Faculteit der Sociale Wetenschappen