Making a Mechanical Perceptron

Look, this is a perceptron sitting inside a neural network. It’s almost the very first step you take when you start learning machine learning.

But what if you could actually hold it in your hand? What if “weight” isn’t a number that gets stored somewhere, but is actually the position of a slider on an arm? What if “bias” is a spring literally leaning the whole system toward one answer? What if “activation” is just some structure snapping once it crosses a critical state?

I want to make a mechanical perceptron. And by this, I don’t mean loading the process of computation onto some physical or electronic structure. I mean the structure of the hardware IS the logic of the computation.

Sketch of a mechanical perceptron concept

Sorry, this sketch might not be very rigorous. I’m not yet an expert in fabrication. My undergrad background is in CS, which is exactly why I’m so drawn to neural networks and how to actually understand them. I’ve been constantly thinking about and exploring this one theme: how do we make our understanding of science more intuitive. This idea of a mechanical perceptron is actually a continuation of an earlier project of mine. I once built an interactive webpage that gave viewers a huge amount of freedom to adjust every perceptron’s parameters inside a neural network, and watch the prediction change in real time. But looking back on it now, that project was still trapped inside the digital. At its core, it never actually challenged your cognitive framework.

I’m very intrigued by the idea that the intersection between fields can deepen your understanding of each one on its own. Actually, once you put the logic of different disciplines side by side, you start noticing something surprising: the same abstract operation can show up wearing completely different physical clothes. For example, I’ve read a paper which uses fluidic computation to replace basic circuit elements like diodes, resistors, and capacitors. And in my plan to build this mechanical perceptron, I am also seeking to explore the relationship between computation and physics. What do they have in common, and how should they be bridged, or used to inspire one another.

The Structure

Here are a few simple, still-rough fragments of what I’m currently thinking for this structure:

Input can be a force acting on the central axle of the mechanical perceptron, and weight is really just the distance between where that force is applied and the central axle — something you can slide and adjust. Input times weight is the torque that gets produced, and if we wire multiple inputs onto the same axle, the torques just add themselves up. That’s the summation.

Bias can be a spring, forward or reversed, giving it some pre-loaded resistance. The activation function can be a carefully designed structure — something like a bistable compliant mechanism — which stores strain energy inside itself, and once it crosses a critical point, flips over into another stable state.

Sketch of the bistable activation mechanism

See, our interpretation is being formed right there, in the translation between systems. If we get even wilder, we could link multiple neurons electronically, sending one sensor’s output into the next input, so that we could build an actual network. You could just play with it freely, and see what kind of surprise it gives you.