{'fraction_non_alphanumeric': 0.02358490566037736, 'fraction_numerical': 0.0, 'mean_word_length': 5.004716981132075, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Very small spiking neural networks evolved to recognize a pattern in a continuous input stream

We obtained, with artificial evolution, very small (one or two interneurons, one output neuron) spiking neural networks (SNNs) recognizing a simple temporal pattern in a continuous input stream. The patterns the network evolved to recognize consisted of three different signals. In other words, the task was equivalent to searching in a stream (sequence) of three symbols (say, ABBCACBC.) for a specific subsequence (ABC). The fitness function we used rewarded spiking after the occurrence of the correct pattern (subsequence), and penalized spikes elsewhere. We found out that the networks did not go below two interneurons when they evolved to solve this task with a brief interval of silence between signals. However — surprisingly — for a longer interval of silences between signals the task could be accomplished with just one interneuron. We then analyzed how the spiking networks work by mapping the states of the network onto states of Finite State Machines — a general model of computation on time series. Our long term goal is to understand the mechanisms governing the neural networks that accomplish computational tasks in a way that is robust to noise and damage.