Thursday 29 November 2018

Seed Recall

Ok so its time to fess up about what Ive discovered. OMG. Seed recall is a discovery I made whilst experimenting with the RLnet - Neural Q Learner.

I noticed that the solution depened on the random seed. So I decided to test the theory that the randomly perturbed activation functions themselves encoded different solutions (and heres the big one) for the same prelearnt weights.

Heres what I did:

Learning:
seed random generator
init random weights or load previous weights
create seed during learning - using Random Decay (See previous post)
backpropogate solution 178 iterations
save seed
save weights

repeat for all solutions

Recall:
set random generator to null
load saved weights
load seed for solution - Apply seed directly to Activation function
backpropogate        58 iterations
view seed dependant solution

For each seed I got a unique solution. Ofcourse its early days but it may just be that different solutions to the same problem can be learnt and encoded by the same neural network using the different random seeds applied to the activation function for each neuron.

Whether this extends to other problems I have yet to discover. If the problems are similar and have the same dimensions then it is possible.

The problem I am using is that detailed in previous posts:

{{-1, -1, -1,-1,  0,-1},
            {-1, -1, -1, 0, -1, 1},
            {-1, -1, -1, 0, -1,-1},
            {-1,  0, -1,-1,  0,-1},
            {-1, -1, -1, 0, -1, 1},
            {-1,  0, -1,-1,  0, 1}};
6 States with 6 Actions

I now plan to Upscale the RLnet to do 120x120 and use a CNN layer.





No comments:

Post a Comment