convnetjs
convnetjs copied to clipboard
What kind of neural network do I need?
Hello I am a beginner and not sure this is the correct place to post for 'support' so please forgive me ahead of time
I would like to present a scenario and ask which type of neural network I should be using to solve it and anything else I should be aware of when I implement it as a beginner to neural networks but apt user of javascript
I'm building something that would give me data about the game hearthstone, the data might look like this:
input:
turn_played:2
output:
card_id: EX_11
I've experimented with brainjs but that only accepts numerics as inputs/outputs
I would like to put those data points into the neural network so it gets an idea of what was played every turn for a game
then I would ask the neural net things like if turn 1 had a card id of EX_13 what is most likely to be the play on turn 2? Is there a neural network capable of guessing that information based on previous data?
Nice, neat application!
I think this would be pretty hard for someone with very little experience. I could wire it up with custom code, but don't think ConvNetJS supports such architecture.
As simple thing you could probably build a network that does prediction for the n-th step (individual network for each n). The way to input the data would be to discretize all cards to 1-of-k encodings. For example the card EX_13 would be the 234-th dimension, so the vector of numbers you pass in would be all zeros except for a single 1 on the 234-th position. If that makes sense?
Then you could also use brainjs, but this library is nicer :) You'd then have an architecture of form input softmax
,for example, for a simple linear classifier. If you add 'fc' layers in between you'd get more complex neural nets.
Btw if you were willing to learn much more about Neural Nets, you could try reading through our class notes http://cs231n.stanford.edu/syllabus.html . The class is technically about Computer Vision, but a lot of the stuff can be taken and directly applied to any kind of data (including this) in straight-forward manner.
How would the neural networks work together? The prediction/patterns would ideally come from knowing that players typically play certain cards in certain orders, wouldn't the neural networks be isolated from each other and not understand what was played in the turn before?
edit: Thank you for the reading material
I think a recurrent network would be best to model this problem, but it is beyond the scope of a beginner and beyond the scope of ConvNetJS. My project RecurrentJS could be used to build this, but only if you know your neural nets (e.g. the class).
Otherwise, the option I'm suggesting above is to have independent neural nets for each step. One net predicts the second card given first One net predicts the third card given first two (for example, by concatenating their 1-of-k vectors into a single input vector) etc.
I have a similiar question, so I will put it under the same issue. I am wondering what kind of a NN to use or even figure out how a problem like this could be approached.
So, can we have a neural network that given a number ( say 32 ) gives you back an equation ( 8*4 or 1+1+1+....32 times). It can give back only 1 answer or multiple ( whichever is simpler ). The problem I have with a NN in this scenario is that the number of possible outputs is unbounded. We know that the output is a sequence of 0-9, -,+,/ and * ( lets assume that ). Now, how do we build a NN which can produce outputs like these ?
Dear Andrej. Great work it is really impressive. I read your class notes and your presentation on neuraltalk. I was particularly interested on combining RNN or LSTM(=recurrentjs) with convnet. You talk as well about transfer learning. Do you have a js example or could you direct me to literature on transfer learning or combining LSTM with other algorithms. Thanks a lot for your help
many questions
is their any specific operation to be applied on pixel with we use filters
is part of image treated as filter, or we need to build it, or we have predefined filters.
if we have conv layer1 , conv layer2 .....etc.... , now are these layers fullyconnected or not