Search code examples
machine-learningartificial-intelligencedifferencereinforcement-learningevolutionary-algorithm

What is the relation between NEAT and reinforcement learning?


As far as I know, NEAT (NeuroEvolution of Augmenting Topologies) is an algorithm that uses the concept of evolution to train a neural network. On the other hand, reinforcement learning is a type of machine learning with the concept of "rewarding" more successful nodes.

What is the difference between these two fields as they seem to be quite similar? Or is NEAT derived from reinforcement learning?


Solution

  • In short they have barely anything in common.

    NEAT is an evolutionary method. This is a black box approach to optimization of functions. In this case - performance of the neural net (which can be easily measured) wrt. to its architecture (which you alter during evolution).

    Reinforcement learning is about agents, learning policies to behave well in the environment. Thus they solve different, more complex problem. In theory you could learn NEAT using RL, as you might pose the problem of "given a neural network as a state, learn how to modify it over time to get better performance". The crucial difference will be - NEAT output is a network, RL output is a policy, strategy, algorithm. Something that can be used multiple times to work in some environment, take actions and obtain rewards.