0
$\begingroup$

I used to work with layered neural networks, where, given certain inputs, the output is produced layer-by-layer.

With NEAT, a neural network may assume any topology, and they are no longer layered. So, how do we compute the output of such a neural network? I understand time-steps must be taken into account, but how? Should I keep the inputs until all hidden neurons are processed and output is produced? Should I wait for the output to stabilize?

$\endgroup$

1 Answer 1

2
$\begingroup$

The networks in NEAT are still implicitly layered. There are neurons that need to be evaluated before other neurons can be evaluated and so this gives us our layers.

If you don't know the structure of your network then you can use Kahn's algorithm to find an arbitrary (by arbitrary I just mean one of the possible partially ordered sets) ordering of the nodes in the network. Then you evaluate your neurons in the order given to you by Kahn's algorithm. This works because the ordering of your network (which is a directed acyclic graph) is a partially ordered set.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .