| Action: mrdata wants to make artificial neurons | 17:42 | |
| azonenberg_work | mrdata: how so? | 17:42 |
|---|---|---|
| mrdata | i was thinking that a neuron is like a generic gate with a resistor network | 17:43 |
| azonenberg_work | i dont know neurology enough to know how they work lol | 17:43 |
| mrdata | where the resistor values can be modified | 17:43 |
| mrdata | basically, an axon fires when its chemical potential reaches a threshold; but synapses can enhance of inhibit this | 17:44 |
| mrdata | so analogously, a transistor will non-linearly amplify its inputs; the resistor network simulates the synapses | 17:45 |
| mrdata | ^^ synapses enhance *or* inhibit, that is | 17:46 |
| mrdata | so, each generic gate generates a pulse when it fires; a transistor with a small capacitor on its output can do that | 17:47 |
| mrdata | and, neurons tend to fire spontaneously also; so pulse rate and timing is probably the more significant | 17:48 |
| azonenberg_work | hmm | 17:49 |
| azonenberg_work | I know there is work being done in the field but i'm not familiar with it myself | 17:49 |
| mrdata | i've read a few papers; most are either attempting to simulate artificial neurons in large AI frameworks in lisp, or studying precise behaviour of real life neurons in microbiological sense | 17:51 |
| azonenberg_work | i see | 17:52 |
| mrdata | but i havent seen attempts to build programmable gate arrays, of them yet | 17:52 |
| azonenberg_work | So you want to build an FPGA-like programmable brain? | 17:52 |
| mrdata | that would be nice | 17:52 |
| mrdata | the problem is, the connections architecture, which is of crucial significance, is unknown | 17:53 |
| mrdata | but, if the thing i build can be a physical manifestation of some of the artificial neural networks made with genetic algorithms, then the connections architecture can be decided by the genetic algorithms | 17:54 |
| azonenberg_work | Very interesting | 17:55 |
| mrdata | the important step will be, how to adequately represent the behaviour, both in an FPGA, and in a simulator | 17:55 |
| mrdata | so that they map | 17:55 |
| azonenberg_work | not sure if its possible in an fpga | 17:56 |
| azonenberg_work | this project sounds analog | 17:56 |
| mrdata | homecmos to the rescue | 17:57 |
| mrdata | goal: build and make scalable artificial neurons | 17:57 |
| azonenberg_work | lol | 19:23 |
| azonenberg_work | Worthy goal, just not an easy one | 19:23 |
| mrdata | indeed | 19:24 |
| mrdata | but this was predicted to occur; and so it should be done | 19:24 |
| Action: mrdata would be satisfied with a network of half a dozen axons, to start | 19:25 | |
| mrdata | with re-programmable connections and strengths | 19:25 |
| azonenberg_work | You're probably talking a couple hundred transistors | 19:26 |
| azonenberg_work | definitely possible but at least a year out | 19:27 |
| mrdata | why not 6 transistors? | 19:33 |
| azonenberg_work | I'm assuming you will need a few more than that in order to amplify inputs | 19:34 |
| cheater | it's that simple only if you don't model channeling, receptors, etc | 19:34 |
| azonenberg_work | and act as resistors | 19:34 |
| azonenberg_work | then programmable drive strength will be a task in itself | 19:34 |
| azonenberg_work | probably means having four or five transistors that you can turn on one, two, three, four, or all | 19:34 |
| azonenberg_work | hooked up in parallel | 19:35 |
| azonenberg_work | And in any case i have yet to make even one working transistor | 19:35 |
| azonenberg_work | i havent even attemptd them as my MEMS focus has kept me from buying the materials | 19:35 |
| Action: mrdata bets each synapse is a small capacitor and resistor; and a single axon will have no more than 2 transistors | 19:36 | |
| azonenberg_work | but a variable resistor or a fixed? | 19:37 |
| mrdata | since a not gate is modeled as a single NPN | 19:37 |
| azonenberg_work | and if you are doing cmos, remember you need two for everything as a push-pull | 19:37 |
| azonenberg_work | you generally cannot drive high and low with a single transistor | 19:38 |
| mrdata | the resistor and/or the capacitor may be variable | 19:38 |
| azonenberg_work | variable caps are highly nontriial | 19:38 |
| azonenberg_work | nontrivial* | 19:38 |
| azonenberg_work | variable resistors a bit less so, you have a big resistive element and transistors to short out each segment on request | 19:38 |
| mrdata | ok, i imagine fixed capacitance will do | 19:39 |
| mrdata | but R must be variable | 19:39 |
| mrdata | can be quantized | 19:39 |
| mrdata | to about 250 or so values | 19:39 |
| azonenberg_work | 256? You can do that with whats basically an 8 bit DAC | 19:40 |
| azonenberg_work | or digital port | 19:40 |
| mrdata | ok | 19:40 |
| azonenberg_work | pot* | 19:40 |
| azonenberg_work | you have a N/2 ohm segment you can short out when r[7] is low | 19:41 |
| azonenberg_work | an N/4 ohm segment you short when r[6] is low | 19:41 |
| azonenberg_work | up to an n/256 ohm segment you short when r[0] is low | 19:41 |
| azonenberg_work | so eight transistors and eight resistive elements | 19:41 |
| mrdata | ok, so each neuron becomes a couple transistors for the axon, and an 8-bit DAC, and stuff, for each synapse | 19:41 |
| azonenberg_work | plus latches for each transistor to hold the on/off state | 19:41 |
| azonenberg_work | you are looking at eight switching transistors, eight D flipflops, and an 8-segment resistor | 19:42 |
| mrdata | ok. latched | 19:42 |
| azonenberg_work | or atlternatively, a sample-and-hold circuit (analog flipflop, pretty much) | 19:42 |
| azonenberg_work | and eight comparators | 19:42 |
| azonenberg_work | going to the transsitors | 19:42 |
| azonenberg_work | that way you can control the resistance by an analog input | 19:42 |
| azonenberg_work | You might even be able to have the S&H output go straight to the gate of a transistor operated inthe linerar region | 19:43 |
| azonenberg_work | linear* | 19:43 |
| azonenberg_work | and use it as the resistive element | 19:43 |
| azonenberg_work | that'd probably be the best option | 19:43 |
| azonenberg_work | So you have a capacitor, some kind of feedback circuit that compensates exactly for leakage by recharging as it leaks | 19:44 |
| azonenberg_work | and a single transistor | 19:44 |
| azonenberg_work | to form your latchable variable resistor | 19:44 |
| azonenberg_work | then one more transistor connecting your control input to the capacitor so you can charge or discharge it on demand | 19:44 |
| mrdata | and all these are in simplest possible elements that can be printed onto a die | 19:46 |
| azonenberg_work | transistors are easy, caps arent bad | 19:46 |
| azonenberg_work | not sure how the sample-and-hold works | 19:47 |
| mrdata | in real life, there are many synapses for each axon; 100:1 may be common | 19:49 |
| mrdata | but in a small device of half a dozen, full connection is 6:1 (including back-propagation) | 19:50 |
| mrdata | and these values should be brought to output. so about 6 inputs, 36 outputs, and some lines to program it | 19:54 |
| azonenberg_work | lol yes, that will be nontrivial to construct | 19:56 |
| azonenberg_work | Very interesting research project for sure | 19:56 |
| azonenberg_work | But my process is a couple years from being able to build it i think | 19:57 |
| mrdata | noted | 19:59 |
| mrdata | i will try breadboarding it first, ithink | 19:59 |
| mrdata | just to verify the circuitry on a small scale | 20:00 |
| mrdata | it will be important for the simulator to give pretty-close to identical results to the physical device | 20:00 |
| mrdata | otherwise the connections architecture cant be evolved | 20:01 |
| azonenberg_work | You will likely have to train on the physical hardware | 20:02 |
| mrdata | yes | 20:02 |
| azonenberg_work | especially if using a homebrew process with lots of variation between parts | 20:02 |
| azonenberg_work | the device's little variations will become almost a part of the program | 20:03 |
| mrdata | i expect they will, yes | 20:03 |
| mrdata | so, so long as the variations are "small enough" that they may be compensated-for with minor training, the connections architecture will be common to both simulator and physical device | 20:04 |
| azonenberg_work | Well, i suggest that you test it out on a breadboard because its quite a ways from being IC-able | 20:04 |
| azonenberg_work | at least on my process | 20:04 |
| azonenberg_work | I'd love to see results | 20:04 |
| mrdata | sure. i can throw these ideas into a circuit simulator even before that | 20:05 |
| mrdata | even before i spend $ on parts | 20:06 |
| azonenberg_work | yep | 20:06 |
| mrdata | cant promise timing, but i have some time before xmas | 20:07 |
| mrdata | a bunch of these might be what i need http://www.analog.com/static/imported-files/data_sheets/AD5200_5201.pdf | 20:28 |
| --- Fri Sep 30 2011 | 00:00 | |
Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!