Spiking Neuronal Net (SNN) with Java

Autonomous Learning and Parameter Adjustment

Intelligent self-regulation

Typically, the AI is calibrated by assigning a learning unit to the neural network via an agent. The result of each iteration is examined and evaluated; then the connection weights are recalculated. This process repeats until the network produces the desired output. It has been shown that, with this method, even untrained learning units can be processed by the AI. After the learning cycle is completed, the network is essentially no longer trained.

This SNN implementation does not take that step. There is no natural analogue in which a higher-level entity directly influences cognitive structures. Evolution, however, can be regarded as an indirect agent: it does not intervene directly in thought patterns but enables the development of such structures. The reward pattern, in turn, originates from the environment.

With this approach, the environment becomes the feedback system in reinforcement learning. Only the environment can determine whether the task being learned is progressing in the right direction or has already been completed. The SNN functions as an algorithm that leverages the feedback delta to deliberately reorganize and optimize the network structure. This is accomplished through automatic adjustments of long-term plasticity (LTP) and short-term plasticity (STP), as well as by modifying the synaptic weights on the dendrites.

In the human brain, the learning process operates analogously through the environment: food is provided by the environment and can be interpreted by the brain as a reassessment of neural structures. The human learns: There is food here.

Parameters of the SNN

The parameters for STP and LTP are used in the calculation of the potential. The central calculation method is: $$pot_{n+1} = pot_n + (pot_{\text{target}} - pot_n) \cdot \alpha$$ $$\alpha = \frac{\Delta t}{\tau + \Delta t}$$ $$\tau = \frac{\Delta t_{\text{total}}}{\tau_{\text{dominator}}}$$

Formula symbolMeaning
$pot_n$Current potential
$pot_{n+1}$New potential
$pot_{target}$Target potential
$\alpha$Gradient factor
$\Delta t$Elapsed time between $pot_n$ and the recalculation
$\Delta t_{total}$The time until a target value is reached
$\tau_{dominator}$Constant that defines the gradient