Hydraulic neuron model

I recently came across a web page that described a computer working with water instead of electricity. There is a very smart idea of a logical gate with two input jets of water and two outputs: when there is no input water, there is no output; when there is one input, the water flows through ouput #1; when there are two input jets, they collide and the water gets diverted to output #2. Therefore output #1 is a XOR gate and output #2 is an AND gate.

I was wondering how to make a hydraulic model of a neuron (which would be analog rather than digital). It could be an interesting educational tool. You could imagine a container where water would flow from the top, analog to the input current, and the water level would be the membrane potential v. In this simple configuration, it corresponds to the perfect integrator model: dv/dt=I/C, where I is the input flow (in units of volume/time) and C is the area of the container section. I chose C for this parameter because it clearly plays the role of the membrane capacitance.

Now a simple way to implement the current leak is to cut a hole at the bottom of the container. Then the water flow through that hole is proportional to \sqrt{v}, where a is the area of the hole. So we get the following equation:

Cdv/dt=I-k \sqrt{v}

where k is a proportionality factor. If the hole is cut at level v_0 (rather than at the bottom), we obtain:

Cdv/dt=I-k \sqrt{[v-v_0]^+}

which is a nonlinear leaky neuron model ([x]^+=max(0,x)).

The hard problem now is to implement spiking. Here I think we need mechanical elements: when the level reaches some mechanical element at the top, it would trigger the opening of a sink at the bottom, which would remain open as long as water flows through it (or as long the weight of water is above some critical level). Alternatively, when the weight of the water reaches a critical threshold, then the sink at the bottom opens, and it remains open as long as water is flowing (but I am not sure how to implement that property).

Any idea?


p.s.: to have a linear leaky neuron instead of nonlinear, one idea is to have the area a change with v as \sqrt{v}. To achieve that, one can imagine that the floor is mounted on a spring, so that the area of the hole increases with the weight of the water. If the width of the hole goes as 1/\sqrt{x} (where x is the vertical position on the hole), then the flow through the hole is proportional to v. If we want to avoid the rectification ([v-v_0]^+), i.e., if we want water to flow in when the level is below v_0, then we need to immerse the container in a very large (ideally infinite) container with water level v_0.

2 réflexions au sujet de « Hydraulic neuron model »

  1. Hi Romain,

    I thought we already talked about that. A way to simply implement spiking will be to devise this system:
    1- You take a tube, with only one hole (the other is closed).
    2- The tube is free in rotation, like a pendulum. So there should be a fixed stick crossing the tube.
    3- The hole should be on the upper side. So, you can put a little weight on the closed side of the tube, or you should choose well where the stick should cross the tube.
    4- There is a wall which supports the tube. It prevents it to be too unstable, or fall on both directions.
    5- You constantly pour water into the tube.
    6- Then, it should work!

    I think it's a classical fountain that you can find in gardens, made of bambou. Actually, i'd like to devise such a system. Would you be up to either?


    PS: but a more tricky thing would be to mimick propagation, or threshold modulation...

  2. Hi Jonathan,

    I remember you wanted to do it with high school students but I didn't know you actually thought about the details! That's a clever idea. Does all the water falls down when the tube turns?
    If I understand it well, the value of the threshold is determined by the vertical position of the stick, so maybe threshold adaptation can be implemented by a mechanism that changes that position (for example if the stick is attached to something that floats in another (leaky) container, and some of the water from the spike pours in that container...).

    It would be really cool to have propagation too... Basically when a spike is produced (water pouring), then a "packet" of water should pour into each target neuron. It sounds like a simple mechanical system could do it. For example, imagine a big container with water above the target neuron. When the source neuron "spikes", its water pushes a mechanical element that opens a hole in the target container. When the source neuron has finished spiking, the hole is closed again. By changing the size of the hole, you could set the synaptic weight.


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *