Go Down

Topic: Solid state 'neoron' with logic gates etc (Read 790 times) previous topic - next topic

boylesg

Mar 27, 2018, 05:07 am Last Edit: Mar 27, 2018, 05:16 am by boylesg
This is from a debate I started on Dr Karl's Self Service Science Forum (facebook)

The subject - is it realistic to create Star Wars C3P0 AI (applied to driverless cars) with the current generation of digital computers.

My (and seems a number of other eminent scientists) argument is no.

Because the current computer architecture was specifically designed to solve a particular problem, i.e. complex linear (in the sense of sequences of steps) calculations that were once carried out by the Blechley Park 'computers'.

However the intelligence required to drive a car is far closer to evolutionary intelligence that enables complex multicultural organisms to survive in nature. And the physical architecture of the biological computers (aka brains) is FUNDAMENTALLY different.

It is clearly possible to replicate particular strands of human intelligence for particular niche tasks where there is a high degree of control over the variables, e.g. flying a plane or driving a train. But many would argue that this is as far as we are likely to get with current technology.

But what current AI researchers are doing by trying to replicate C3PO, is attempting to shoe horn programmed neural networks into a hardware architecture and the programming languages specifically designed for the original goal of carrying out laborious mathematical calculations more efficiently than the human computers.

I then speculated that C3P0 level AI would probably be more realistic on a different type of hardware, perhaps one that more resembles the architecture of the physical neural networks in brains.

So my questions is this....

Is it feasible to construct solid state neuron using ONLY logic gates etc.  

For example, one that has 8 inputs and 1 output and outputs HIGH if 4 or more of the inputs are HIGH.

There are summing amplifiers that do something similar and multi input logic gates do something similar, so my gut feeling is that it might be possible.

The 8 inputs would be analogous to the dendrites of a real neuron and the output would be analogous to the axon of a real neuron.    

Any ideas as to how you would go about it?

Ultimately the AI CPU might be based on these solid state neurons - another layer of complexity over the current basic building blocks of computers - the flip flop. And conscious intelligence is regarded as an emergent property of the brain architecture and function.

As to how you would design a programming language to drive such an architecture - no ideas I am afraid.
     

Grumpy_Mike

#1
Mar 27, 2018, 05:39 am Last Edit: Mar 27, 2018, 05:41 am by Grumpy_Mike
Quote
Is it feasible to construct solid state neuron using ONLY logic gates etc
Yes, that is how the origional neural networks were made. Plus any computer is, at the end of the day, simply a collection of logic gates.

There is nothing magical about a neutron network made from gates and you get exactly the same results as you do from simulating a neutron on a computer. The disadvantage of using just gates is that you don't get to preserve what has been learned when you turn off the power and you have to start the learning process all over again. The other thing is that the network you create like this has a fixed wiring where as you can simulate the neutron connections on a processor.

If you want bigger or faster networks then implement them with a FPGA.

Quote
Because the current computer architecture was specifically designed to solve a particular problem,
No it wasn't.

pert

I don't know whether it was intentional or a typo, but I like the term "neoron".

boylesg

I don't know whether it was intentional or a typo, but I like the term "neoron".
Typo.

boylesg

#4
Mar 27, 2018, 07:51 am Last Edit: Mar 27, 2018, 07:55 am by boylesg
Yes, that is how the origional neural networks were made. Plus any computer is, at the end of the day, simply a collection of logic gates.

There is nothing magical about a neutron network made from gates and you get exactly the same results as you do from simulating a neutron on a computer. The disadvantage of using just gates is that you don't get to preserve what has been learned when you turn off the power and you have to start the learning process all over again. The other thing is that the network you create like this has a fixed wiring where as you can simulate the neutron connections on a processor.

If you want bigger or faster networks then implement them with a FPGA.
No it wasn't.
Gates in current computer are not really arranged in the way I am suggesting. They are arranged more in a linear cascading manner.

From my phsyiology 201, neurons work in a fundamentally different way. More on an analog like weighting system. If the sum of all the inputs on the dendrites reaches a certain threshold then the neuron will initiate and impulse that then travels along its axon which connects to multiple other neurons through their dendrites.

And inputs on some dendrites might be suppressing (negative) in nature while on others the signals might be promoting (positive).

So I would suggest that such architecture would not be suitable for operating regular computer hardware etc. But rather specifically to process language and decision making based on multiple simultaneous and weighted inputs, e.g. the car is about to run into a pole versus the car is about to get T-boned by a train.

boylesg

And the solid state neuron I am talking about is a sort of a cross between a logic gate and a summing amplifier.

Perhaps if I implement in code what I have in mind....

Code: [Select]

int nIn1 = 2, nIn2 = 3, nIn3 = 4, nIn4 = 5, nIn5 = 6, nIn6 = 7, nOut = 8;

void setup()
{
  pinMode(nIn1, INPUT);
  pinMode(nIn2, INPUT);
  pinMode(nIn3, INPUT);
  pinMode(nIn4, INPUT);
  pinMode(nIn5, INPUT);
  pinMode(nIn6, INPUT);
  pinMode(nOut, INPUT);
}

void loop()
{
  int nCount = 0;
  for (int nI = nIn1; nI <= nIn6; nI++)
  {
     nCount += digitalRead(nI);
  }
  if (nCount >= 4)
    digitalWrite(nOut, HIGH);
  else
    digitalWrite(nOut, LOW);
}


Can this be hardwired with logic gates?

Grumpy_Mike

#6
Mar 27, 2018, 09:39 am Last Edit: Mar 27, 2018, 10:01 am by Grumpy_Mike
Quote
Gates in current computer are not really arranged in the way I am suggesting. They are arranged more in a linear cascading manner.
That doesn't matter, they are arranges as a Von Neumann machine who's purpous is to simulate any configuration of logic states. That is to make a programmable Turing machine.

Their is absolutely no difference between any arrangement of gates and a simulation of those gates. There is NO magic.

Quote
Can this be hardwired with logic gates?
Of course it can.
Draw the truth table of that program and wire gates to implement that truth table. The truth table will have 64 lines.

MarkT

So my questions is this....

Is it feasible to construct solid state neuron using ONLY logic gates etc.   

I would say you need a random element as well to be non-deterministic.  In fact modelling almost anything in the real world needs randomness, although you could argue pseudo-randomness is enough, and that is deterministic
and can be built from logic gates.

One thing to note, digital logic is far more proficient in emulating neural networks than neural networks are at emulating digital logic - make of that what you will.

Modern areas in computation research look at chemical/biochemical and quantum methods of computation, its
a very wide area, but its all compuation - perhaps the most fundamental split is quantum/non-quantum.
[ I DO NOT respond to personal messages, I WILL delete them unread, use the forum please ]

boylesg

#8
Mar 27, 2018, 03:48 pm Last Edit: Mar 27, 2018, 03:52 pm by boylesg
I would say you need a random element as well to be non-deterministic.  In fact modelling almost anything in the real world needs randomness, although you could argue pseudo-randomness is enough, and that is deterministic
and can be built from logic gates.

One thing to note, digital logic is far more proficient in emulating neural networks than neural networks are at emulating digital logic - make of that what you will.

Modern areas in computation research look at chemical/biochemical and quantum methods of computation, its
a very wide area, but its all compuation - perhaps the most fundamental split is quantum/non-quantum.
I just thought it might be a fun long term project for our little Raspberry Pi Hackers group to work, in addition to a community service sort of project.

I figured one thing we could try is to try and create a really simple solid state neural network to simulate a flat worm that has an eye spot/photodiode that causes it to flee from shadow and another photodiode that simulates a stomach that seeks food.

I wonder what sort emergent complexity in behavior you would get?

Perhaps a more complex organism could be simulated by linking a simple neural network like this to a microntroller representing a central nervous system with some basic programmed rules relating to inputs from the solid state neural networks.

INTP

Op-amps would make sense.

But in trying to recreate a neuron network, you find yourself having to introduce bottlenecks and hindrances to match the resolution periods of actual neurons.

Making a model neuron is easy. Focusing on that is like focusing on the wires and traces of a system. But wherever information pools and gets stored is kind of a big threshold to cross. How does a mass of neurons retain information? Your electrical/mechanical system will store data in the usual binary systems. But if neurons are wires that store information, you'd be looking at information tenuously stored in wire capacitance.

boylesg

#10
Mar 27, 2018, 04:57 pm Last Edit: Mar 27, 2018, 04:58 pm by boylesg
Op-amps would make sense.

But in trying to recreate a neuron network, you find yourself having to introduce bottlenecks and hindrances to match the resolution periods of actual neurons.

Making a model neuron is easy. Focusing on that is like focusing on the wires and traces of a system. But wherever information pools and gets stored is kind of a big threshold to cross. How does a mass of neurons retain information? Your electrical/mechanical system will store data in the usual binary systems. But if neurons are wires that store information, you'd be looking at information tenuously stored in wire capacitance.
The information would be stored in the connection. What I am proposing here would be akin to hardwired instinctive behavior and not learning.

It is a case of starting off with the absolute basics and building from there.

So in the case of a simulated flat worm it might be the case that a motor might spin clockwise in response to the 'shadow' photodiode thus simulating fleeing, and anti-clockwise in response to the 'food' photodiode.

If the arrangement was wheeled the forwards and backwards.

Some how you would have the outputs of the photodiodes going to an ADC. If you can get or make a simple ADC that outputs high on a series of pins sequentially according the the input voltage, e.g. 0 0 0 0 0 0 0 0 for 0V, 1 1 1 1 0 0 0 0 for 2.5V and 1 1 1 1 1 1 1 1 for 5V etc, then you could take those as inputs to the dendrites of your simulated neuron. Say 8 positive inputs from the food photodiode and 8 negative inputs from the  'shadow' photodiode.

The sum of all the inputs in the neuron's dendrites determines what it outputs on its 'axon' and then this determines if the motor spins clockwise or anti-clockwise.

Come to think of it it might be quicker and simpler to simulate the neuron with an ATiny or something like it. No need to invent a totally new component.

Would also make it easier to add other 'senses' and responses, e.g. steering to the wheeled device.

At any rate it would be fascinating to see what sort of emergent behavior your might get.

Go Up