Saturday, 26 January 2013

Notes on MOO (multi objective optimisation) + Extending sensorimotor contingencies beyond the pairwise

Glad to have Alex Churchill on board thinking about how to apply MOO to Darwinian neurodynamics.

Forget learning of inverse and forward models for now. We've discovered some pairwise SM contingencies. The question I want to think about now is how to extend these to groups of coordinated motor actions predicting groups of coordinated sensors. What does the part in red mean?

Consider for example two motors m1 and m2 and two sensors s1 and s2. Lets imagine that m1-s1 constitute one primitive smc (detected by the mutual information algorithm I described previously), and that so does m2-s2.

SM PAIR 1 : m1-s1

SM PAIR 2 : m2-s2

Possible interactions:

m1 does not influence s2 and m2 does not influence s1. They are entirely independent sm contingencies, i.e. knowing m1 does NOT help you predict s2 at all.

          s1      s2
m1    +        -

m2    -         +


Knowing m1 helps you predict s2 as well, but knowing m2 does not help predict s1.


          s1      s2 
m1    +        +

m2    -         +

Vice versa 

          s1      s2 
m1    +        -

m2    +         +

Knowing m1 helps predict s2 as well and knowing m2 helps predict s1 as well. 

          s1      s2 
m1    +        +

m2    +         +

Is there any sense in which one of these interaction matrices is inherently more desirable? 


Fitness function 0: One can use a naive approach and simply consider the joint probabilities of the motors being in particular bins, and label each bin with a unique state number, and map this to the joint probability bins of the sensors that are also uniquely numbered, e.g. 

00  01 10 11 may be the possible states of two motors

and 

00 01 10 11 may be the possible states of two sensors

The MI between these states is then the new fitness. This can be extended to many motors and sensors. 

In fact, the python library below I've already been using trivially extends to the above case. 

http://robince.github.com/pyentropy/examples.html

I'll try to implement the above in MB14 (next post)

Fitness function 1: One possibility is that the simpler the function mapping m to s the better, e.g. if m is the input layer and s the output layer of a FFNN, then the smaller the hidden layer the more interesting the higher order smc between multiple motors and sensors. This translates to the fitness of a {m,s} tuple where m is a set of motors and s is a set of sensors, is being the inverse of the number of hidden nodes in a FFNN that attempts to predict s from m. Hold on, that won't work because you've got to take into account the accuracy of the prediction of the s vector. So, the ff should be something like accuracy x simplicity or accuracy + simplicity ???? 

Fitness function 2: The fitness of a {m,s} tuple could be the total amount of pairwise MI between the m and s vectors, i.e. we'd try to find {m,s} tuples where the motors maximally influenced the sensors. What the hell kind of behaviour would this result in??? no idea!!! 

Fitness function 3: Perhaps the Granger causality between the motors and sensors should be maximised? Problem might be the issues with calculating this for non-stationary time series which typically such systems are... 




No comments:

Post a Comment