Show HN: I built a game to help you learn neural network architectures
graphgame.sabrina.dev
graphgame.sabrina.dev
When I got to the second one without any stated goal or meaning, and it said "19 edges", I gave up.
If you play any game around building computers from logic gates, or any factory optimization game, the idea is to start with components, understand thoroughly their tiny single function, then begin to combine them in different ways.
So yeah - seeing a RNN would allow me to draw the connections, but what I want to understand (what would help me learn from this game) is to know what h(x) means. Before we even construct a network, we should have static inputs to play with those blocks to see what they do. Ideally, we should be asked to construct those blocks from other constituent parts (logistic functions? I dunno).
Edit: This no longer repros and only the correct solution works now from what I can tell.
It'd be nice if there were more explanation to prime you about the concept so you don't simply revert to guess and check.
No, that's something you've inferred from your domain knowledge.
There is a set of dots labeled "xt" in blue, a set of dots labelled "ht" in purple, and a set of dots labelled "yt" in green. Additionally there's a scoreboard with "0 clicks" in blue, "3 edges remaining" in red, and "0 extra edges" in green.
With a bit of color matching I might assume "yt" maps to "extra edges," but that could be a red herring, because I don't see how "clicks" maps to "xt" or where red and purple come in.
It could also help if "RNN" had been defined, but it wasn't...
the answer to RNN is non-trivial, but perhaps Recurrent in RNN might be of some use
At least for the first example:
You have a blue box labeled xt with a single node connector at the top. You have a purple box labeled ht with a node connector at the top and bottom. You have a green box labeled Yt with a node connector at the bottom.
The game tells you at the top you have 3 edges remaining.
Dragging a line from one node to another, releasing, and it turning green means you have placed a "correct" connection.
i.e. xt -> ht [bottom] will give you a green line.
Repeat until you have all edges solved for.
It's not spelling it out for you, but once you complete the "game" you'll at a very high level understand the moving pieces within the network, and the "flow" of data.
What NN stands for is left as an exercise for the reader.
All this game convinced me to do is to bury my head in the sand and hide from ML further.
I remember reading the original paper a while ago but always forget (pun intended) where to connect stuff
then I realized that memorizing it visually is not the best approach, it's better to think about it in this sorta loose fashion -- I remember there is forget gate, well it forgets previous stuff so there is probably some hadamard product somewhere, it probably needs some inputs and previous hidden states...there was some -1,1 forcing in candidate memory so probably needs tanh instead of sigmoid...and then piece by piece i can reconstruct it pretty closely
Also.
The hitbox for the connections. can you make them bigger. It is pretty difficult getting the mouse to hover just right to do the drag/drop.
>A simple RNN with a single hidden layer"
This applies everywhere, but especially if you are making a teaching tool... Spell out the damn acronyms/initialisms!
I shouldn't have to look at the last square, "Deep RNN", to piece together the what the first square, "RNN", means.
It did really get me a bit OCD that the deep RNN had the inputs at the top and the outputs at the bottom initally. The inputs have to be connected at the top edge so need to be at the bottom!! :)