Reputation: 926
I want to implement neural network which would guess whether user will pick true or false.
What would be most appropriate design? I'm a newbie on such things, but I think of the following:
have 128 inputs, for 128 previous guesses (memory if you will).
First input is the latest guess, second is previous, third is 2 turns back and etc.
I'm thinking of having hidden fully connected layer of 256 nodes and the final single layer for the output.
This is how I'd represent my inputs: 0 - not yet guessed, 0.5 - the guess was false, 1 - the guess was true
And this is the value of the outputs: 0 is false and 1 is true (I'd convert this to input format when output becomes the input)
Now, the main fear I have with this design is that inputs are moving. That is, the first input in first guess will be second in another guess, third in another and I fear there will be no reusability and logic will be duplicated and guesses will be rock solid.
Is my fear baseless? Should I just let neural network do the thinking for me and be done with it?
I remember I saw something in youtube once for memory in neural network to feed inputs one by one. Is this the wrong way I am doing this and there's special way for having memory in neural net?
If my design is wrong what design would you suggest?
Upvotes: 0
Views: 1329
Reputation: 5355
First things first, you should be asking yourself why you want to use neural networks. Have you tried simpler (fewer parameters) models first, for example Hidden Markov Models? Do you have enough data to be training a network beyond a couple of layer?
Assuming that you've sure that you want to use a neural network then we should start at the begin, i.e. the input. Your input is a categorical feature, so should be encoded in a way that is suitable. One common way to encode these features is one-hot encoding. So in your case your inputs would look like:
NYG = [1, 0, 0]
T = [0, 1, 0]
F = [0, 0, 1]
Once you have your input data formated you can think about a network architecture. While there's a few ways to tackle every problem it sounds like you might want to use Recurrent neural networks, which can output a classification based on a sequence of inputs. I'd suggest starting with a couple of smallish layers (64 nodes) of LSTM cells and see how you get on, then you can think about how to grow from there (if you have enough data).
I really can't stress enough that you shouldn't just jump into neural networks. They can be very useful, or they can add massive confusion where it's just not needed.
Upvotes: 1