Neural networks are usually taught with math, code, and diagrams full of arrows. That is fine, I guess. But sometimes it feels like people are saying, “Don’t worry, the loss goes down, ” and hoping you will stop asking questions.
I wanted to make something you could actually touch.
I wanted to build a machine where:
- the input is physical,
- the weights are physical,
- the neurons are physical,
- and the whole idea of “training” stops feeling like invisible computer wizardry.
So I made the MNIST Machine.
It is a box with glowing buttons, knobs, and displays that lets me train a tiny digit-recognition neural network by hand. It does not do this efficiently. That would be ridiculous. It does it in a way that helps people understand what is going on.
And to me, that is more interesting.
What It DoesHere is how it works:
- I press buttons on a 5×5 grid to draw a number, like a 3.
- I pick one of 5 hidden neurons.
- I turn 25 knobs to change the weights going into that neuron.
- I use another set of knobs to affect the output layer.
- I press the correct output button, like “3.”
- The machine shows the loss on a segment display.
- I keep adjusting the weights until the loss gets smaller.
So basically, I am doing the job of gradient descent by hand, just so I can understand it better.
Why This Is CoolA lot of machine learning is hard to feel.
You hear words like:
- weight
- neuron
- activation
- loss
But those are just words until you can mess with them directly.
In this machine:
- a weight is a real knob,
- a neuron is a real button you can select,
- a digit is something you draw yourself,
- and the loss is a number that goes up when you mess things up and down when you finally stop doing that.
That makes the whole thing easier to understand, even for kids.
It turns machine learning into something more like a puzzle, or a game, or a tiny glowing robot that politely tells you that your homemade 3 is terrible.
Note: I am not including any schematics in this because my schematics are wrong! I had to cut some traces etc after I received the PCBs because I made some mistakes in the drawings. Here are some of the pictures I took while building the thing:
For the most part, I really enjoyed this project.
It was fun and ChatGPT helped a ton. I learned a lot about soldering and de-soldering, and how incredibly careful one must be when building a project like this.
For example, After I designed the boards in EasyEDA (which was fun to learn) and then I had the boards made and shipped to me, and after I had soldered everything, I used a heat vision camera and I noticed that one of the chips was super hot. It turns out I had accidentally switched the ground and the VCC for that one chip. That chip was fine but it ended up destroying a different chip. I replaced that second chip and it still didn't work, and it turns out that the problem was some weak soldering I had done to the Pi Pico like 5 years ago when I bought it. That part was a little frustrating and made me want to give up, but the rest was fun! I am very grateful that I got to make this project.







_3u05Tpwasz.png?auto=compress%2Cformat&w=40&h=40&fit=fillmax&bg=fff&dpr=2)
Comments