I wish to write a bot that can use screen footage to play a game, specifically for the game 'Nidhogg'.
To that end I have determined that a CNN should do the feature detection and a feedforward neural network should determine the action to take.
For this question I wish to focus on the CNN.
My idea was to first train the CNN as an autoencoder to aid in unsupervised pattern recognition and to add hidden layers after every epoch, but I am unsure whether this would actually be faster or lead to higher accuracy (as opposed to immediately training all hidden layers at once).
The reason I am unsure is because I imagined the following scenario:
Input > Hidden1 > Output
If the output layer needs to approximate the input layer is it not wasteful to let it have its own weights backpropagated when it actually tries to determine the 'inverse' function of the hidden layer? Is it possible to 'directly' determine an inverse function for a layer even if consists of multiple filters?
If so, say I've trained my first hidden layer so that the error is minimal and use it as an input layer whilst I add another hidden layer; can I repeat my strategy?
Input > Hidden1 > Output
Input(Hidden1) > Hidden2 > Output