Searching for models of Artificial Neurons using Cartesian Genetic Programming
Abstract
Most contemporary connectionist approaches to AI use an Aritifical Neural Network (ANN) approach which is similar to Rosenblatt's Perceptron neuron model. This is true for contemporary ANNs tuned using backpropagation gradient descent, and for most Neuroevolutionary approaches. Although other artificial neuron models such as spiking neurons exist, they are often less computationally efficient. In neuron model design there has typically been a performance-biological accuracy trade off. This thesis does not attempt to solve this dichotomy, but rather to take a step to the side, and apply the biological principles of evolution to neuron model design, in the hopes that evolved models can be efficient due to being based on the computers actual computational primitives while also exhibiting more advanced behaviour than Rosenblatt-type neuron models. Such a development could be viewed as part of a wider trend in Aritficial Intelligence where leveraging computational search tends to outperform human design.
In this work neuron models are evolved by first defining an incompletely specified abstract model, and then using evolutionary search in the form of a variant of Cartesian Genetic Programming (CGP) to evolve complete specifications. The incomplete neuron specification defines what neurons can do rigidly, but not when, by dividing neuron behaviour into separate actions and using CGP to evolve the control programs for these actions. The thesis primarily focuses on the One-Pole Balancing control problem as a test problem.
The results show that the evolved neurons are able to form network structures which perform better than taking random actions in the one-pole balancing problem. Results for different iterations of the software is presented as a design case study, discussing primarily causes for observed program behavior and verifying these hypotheses through changes in the next iteration. Although the developed algorithm has several flaws, such as not maintaining population diversity within runs and some core design features not being useful in practice, the results still indicate that further research into the evolution of lifetime behaviour neurons would yield further results. Nåtidens konneksjonistiske Kunstig Intelligensmetoder pleier å bruke \emph{Aritifial Neural Network} (ANN) metoder, med neuron-modeller som ligner på Rosenblatt's Perceptron. Dette gjelder både for ANNs trent med gradientnedstigning (gradient descent) og bakoverpropagasjon (backpropagation), og mange neuroevolusjonære metoder. Det finnes andre neuronmodeller som spiking neurons, men de trenger ofte mer datakraft for tilsvarende resultat (dersom tilsvarende resultat er mulig for neuronmodellen). I neuronmodelldesign har det tradisjonelt vært nødvendig å vektlegge utregningseffektivitet opp mot biologisk nøyaktighet. Denne masteroppgaven prøver ikke å løse dette vektleggingsproblemet, men heller å ta et skritt til siden og se på designproblemet fra en annen vinkel. Istedetfor å direkte ta inspirasjon fra biologiske neuroner, så undersøker denne oppgaven om man kan ta inspirasjon fra biologisk evolusjon og utvikle fungerende neuronmodeller. Slike utviklede neuronmodeller kan kanskje både være effektive, da de kan utvikles til å ta nytte av effektive operasjoner på datamaskiner, og ha mer avansert oppførsel enn Perceptron-lignende modeller. Dette kan ses på som en del av en større trend innen Kunstig Intelligens der datamaskinsøk ofte produserer bedre resultat enn direkte menneskelig design.
I denne oppgaven er neuronmodeller utviklet ved å først definere enn inkomplett spesifikasjon (en abstract modell), og å deretter bruke evolusjonært søk til å finne komplette spesifikasjoner ved å bruke Cartesian Genetic Programming (CGP). Dette gjøres ved å definere hvilke handlinger neuroner kan gjøre, og deretter bruke CGP til å utvikle kontrollprogram for å styre neuronene. Oppgaven undersøker hovedsakelig metoden ved å teste den på One-Pole Balancing-kontrollproblemet.
Det vises at utviklede neuroner kan forme nettverkstrukturer som implementer løsninger på One-Pole Balancing som er bedre enn å ta tilfeldige handlinger. Forskjellige iterasjoner av programvaren undersøkes, og presenteres for til dels å få fram viktige hensyn med design av neuronevolusjonære algoritmer, samt å bruke endringer til algoritmen til å teste og forstå den bedre. Selv om algoritmen har flere nedsider, for eksempel at den ikke beholder diversitet i befolkningen og at evolusjon viser at noen av designelementene ikke er nyttige, så viser resultatene likevel at videre forskning på evolusjon av livstidsoppførselsneuroner kan gi videre forskningsresultater.