Spiking Neuronal Net (SNN) with Java

Introduction and Project Goals

In spiking neural networks (SNNs), the dynamics and behavior of neurons are determined by several important parameters and mechanisms. In addition to the threshold value that triggers the firing of a neuron, there are other important parameters that influence the temporal dynamics and the return to the resting value. In contrast to conventional neural networks, which work with continuous values, spiking neural networks work with discrete impulses or "spikes". They are modeled on the way the biological nervous system works.

Although I want to stay very close to biology, it is necessary to use the functions and terms of computer science. A neuron consists of several biological functional units such as dendrite, soma, axon and synapse. See e.g. Wikipedia: Wiki/Neuron. In technical modeling, these become objects that interact functionally with each other. From the point of view of computer science, these are objects of concrete instances of classes that are connected to each other by relations and functions. The aim is to achieve asynchronous communication as far as possible during implementation. The network is created recurrently, i.e. the data streams, i.e. potentials, can flow as required. Any combination of connections is possible: axo-axonic, axo-dendritic, axo-somatic, axo-synaptic and also inhibitory or excitatory.

An important topic is the learning of new content, which I realized with the 'Reinforcement Learning' (RL) concept. RL essentially consists of 3 components, namely the environment (e.g. a car race) with its possible actions (e.g. steering and accelerating the vehicle), the status (e.g. speed, position) and the SNN with its receptors (e.g. eye) and effectors (muscles). In RL, the agent assumes the role of a mediator between the environment and the network. It must assign the signals from the environment to the receptors, convert the effectors into actions and translate them accordingly. There is therefore no additional instance that, for example, adjusts the parameters (e.g. weights). The agent must interpret the feedback (e.g. position in the race) from the environment and tell the SNN how the action has affected the environment. The environement therefore calculates a delta value and transmits it to specialized feedback neurons (e.g. delta - distance to the leading vehicle).

The SNN cannot determine the delta calculation for the RL itself. It results from interaction with the environment. The environment, which receives values from the SNN, can decide whether the value had a positive or negative influence. Based on this, the environment of the SNN App can determine a delta and communicate it to the SNN via the mediator. Reacting promptly is also a learning step. The environment must therefore always provide feedback on whether the times have been adhered to.