# Arbitrarily big neural network

If neurons and synapses can be implemented using transistors, what prevents us from creating arbitrarily large neural networks using the same methods with which GPUs are made?

In essence, we have seen how extraordinarily well virtual neural networks implemented on sequential processors work (even GPUs are sequential machines, but with huge amounts of cores).

One can imagine that using GPU design principles - which is basically to have thousands of programmable processing units that work in parallel - we could make much simpler "neuron processing units" and put millions or billions of those NPUs in a single big chip. They would have their own memory (for storing weights) and be connected to a few hundred other neurons by sharing a bus. They could have a frequency of for example 20 Hz, which would allow them to share a data bus with many other neurons.

Obviously, there are some electrical engineering challenges here, but it seems to me that all big tech companies should be exploring this route by now.

Many AI researchers say that super intelligence is coming around the year 2045. I believe that their reasoning is based on moores law and the number of neurons we are able to implement in software running on the fastest computers we have.

But the fact is, we today are making silicon chips with billions of transistors on them. SPARK M7 has 10 billion transistors.

If implementing a (non-programmable) neuron and a few hundred synapses for it requires for example 100 000 transistors, then we can make a neural network in hardware that emulates 100 000 neurons.

If we design such a chip so that we can simply make it physically bigger if we want more neurons, then it seems to me that arbitrarily large neural networks is simply a budget question.

Are we technically able to make, in hardware, arbitrarily large neural networks with current technology?

Remember: I am NOT asking if such a network will in fact be very intelligent. I am merely asking if we can factually make arbitrarily large, highly interconnected neural networks, if we decide to pay Intel to do this?

The implication is that on the day some scientist is able to create general intelligence in software, we can use our hardware capabilities to grow this general intelligence to human levels and beyond.

• Yes it is feasible but not practical. Hardware models evolves based on the needs of computational models of the problems, if you start with the hardware model first then it may not fit with the computational model that you come up with. – Ankur Oct 24 '16 at 6:51
• @Ankur Artificial general intelligence does not need you to describe the computational model in detail. – frodeborli Oct 24 '16 at 11:04
• @frodeboril Then how are you supposed to implement it? – Ankur Oct 24 '16 at 12:57
• @Ankur Maybe we are talking past each other. I believe if you implement a huge spiking neural network where every neuron is connected to 10000 other nearby neurons, it will be able to learn anything.The problem with such a huge network, I believe, is that it will need much more diverse training before it becomes useful. Perhaps similar to a human baby. It will take time before it can understand what a face is, and depth, and understand that the phase difference in sound tells the direction of where that sound comes from etc. After that, it will be able to learn to drive as quickly as humans. – frodeborli Oct 24 '16 at 15:25
• @frodeboril We have no idea how the "causal processes" of the brain give rise to the behavioural concepts like learning, memory etc. Just copying the causal processes of brain will not give you any kind of intelligence. – Ankur Oct 29 '16 at 6:45

The approach you describe is called neuromorphic computing and it's quite a busy field.

IBM's TrueNorth even has spiking neurons.

The main problem with these projects is that nobody quite knows what to do with them yet.

These projects don't try to create chips that are optimised to run a neural network. That would certainly be possible, but the expensive part is the training not the running of neural networks. And for the training you need huge matrix multiplications, something GPUs are very good at already. (Google's TPU would be a chip optimised to run NNs.)

To do research on algorithms that might be implemented in the brain (we hardly know anything about that) you need flexibility, something these chips don't have. Also, the engineering challenge likely lies in providing a lot of synapses, just compare the average number of synapses per neuron of TrueNorth, 256, and the brain, 10,000.

So, you could create a chip designed after some neural architecture and it would be faster, more efficient, etc …, but to do that you'll need to know which architecture works first. We know that deep learning works, so google uses custom made hardware to run their applications and I could certainly imagine custom made deep learning hardware coming to a smartphone near you in the future. To create a neuromorphic chip for strong AI you'd need to develop strong AI first.

• Thank you. I believe that huge spiking neural networks will behave very intelligently. So if somebody gets an idea (breakthrough) allowing a hardware neuron to connect to 10000 or more neurons efficiently - it would be merely a question having enough silicon to create arbitrarily big neural networks - and perhaps super intelligence. Which implies it could happen today, already have happened in some lab at IBM - or will happen in 20 years. It means we don't have to wait for Moores law. – frodeborli Oct 24 '16 at 11:26

If neurons and synapses can be implemented using transistors,

I hope you are not talking about the neural networks which are currently winning all competitions in machine learning (MLPs, CNNs, RNNs, Deep Residual Networks, ...). Those were once used as a model for neurons, but they are only very loosely related to what happens in real brain cells.

Spiking networks should be much closer to real neurons. I've heard that the Hodgkin-Huxley model is quite realistic. However - in contrast to the models I named above - there seems not to be an effective training algorithm for spiking networks.

what prevents us from creating arbitrarily large neural networks

• Computational resources: Training neural networks takes a lot of time. We are talking about ~12 days with a GPU cluster for some CNN models in computer vision.
• Training data: The more variables you add to the model, the more data you need to estimate those. Neural networks are not magic. They need something they can work with.

But the fact is, we today are making silicon chips with billions of transistors on them. SPARK M7 has 10 billion transistors.

If implementing a (non-programmable) neuron and a few hundred synapses for it requires for example 100 000 transistors, then we can make a neural network in hardware that emulates 100 000 neurons.

It's not that simple:

• Asynchonosity: Biological neural networks work asynchronously. This means one neuron might be active while all others are not active.
• Emulation: You assume it would only need one cycle to simulate a biological neuron. However, it needs many thousand cycles. You can't simply use more computational units, because some things are not parallelizable. For example, think of the function f(x) = sin(x*x + 1). For a human, there are basically three computations: r1 = x*x, r2 = r1 + 1, r3 = sin(r2). Even if you have 3 people working on calculating the result, you will not be faster than the single fastest person in this group is. Why? Because you need the results of the last computation.
• Think differently: One atmel CPU running at 1 mhz consumes about 35 µA. 2 billion such CPUs would only consume about 2000 watts and weight 6 tons, and each such CPU should be able to emulate at least 10 neurons at full speed. This solves the three problems of computational resources, asynchronousity and emulation. Training data; simply continously feed it with pixel data from a 3D FPS game, along with sound and connect some neurons to the controls. Use VR goggles and allow humans to interact with the machine inside the game. – frodeborli Oct 24 '16 at 11:54
• You seem to think that you get a speed-up of n when you use n processors. This is not the case (see Parallelization of Artificial Spiking Neural Networks on the CPU and GPU). Also: 2 billion CPUs would cost a lot. – Martin Thoma Oct 24 '16 at 14:44
• I suggest you to read some of the publications in the area (e.g. A Large-Scale Spiking Neural Network Accelerator for FPGA Systems, Supervised learning in Spiking Neural Networks with Limited Precision: SNN/LP might be starters) – Martin Thoma Oct 24 '16 at 14:44
• I am well aware of the challenges of parallelization. It is a fact for traditional computers. However, there is no need for synchronization here. This would be a distributed system neurons, each running independently and not synchronized with other neurons - so it scales linearly much like the Internet. Scaling problems might arise from having too many neurons. Perhaps a human brain has an optimal size, and this may also apply to neural networks. – frodeborli Oct 24 '16 at 15:34
• No one is going to spend billions of dollars to make a giant networked computer to run a neural network we don't know how to train. Sending video and audio data into your proposed machine won't do anything. Before people will attempt anything at that scale, there is a lot of theoretical and practical work to demonstrate that it would be worthwhile. – antlersoft Jul 18 '17 at 20:51

While a single transistor could approximate the basic function of a single neuron, I cannot agree that any electronic element could simulate the synapses/axons. Transistors are etched on a flat surface, and could be interconnected only to adjacent or close by transistors. Axons in the brain span huge distances (compared to the size of the neuron itself), and are not restricted to a two dimensional surface. Even if we were able to approach the number of transistors on a processor to the number of neurons in a brain, we are no where near as number of connections. It could also be argued that the analogue signals in the brain carry more information per unit of time, compared to the binary impulses on a chip. Furthermore, the brain actually have plasticity i.e. connections between neurons can be weakened/discarded or straightened/created, while a CPU cannot do that.

• Silicon chips are built in many layers, allowing a lot of flexibility on the interconnectivity between neurons. Also, electricity travel quickly - allowing us to share the signal paths by multiplexing. I can imagine several ways to allow high connectivity between both nearby and somewhat distant neurons. Plasticity would be emulated by having a higher degree of connectivity - since a discarded synapse behaves identically to a synapse that multiplies by zero. – frodeborli Oct 23 '16 at 23:55

You may want to consider this list:

10 important differences between brains and computers:

1. Brains are analog , computers are digital
2. The brain uses content-addressable memory
3. The brain is a massively parallel machine; computers are modular and serial
4. Processing speed is not fixed in the brain; there is no system clock
5. Short-term memory is not like RAM
6. No hardware/software distinction can be made with respect to the brain or mind
7. Synapses are far more complex than electrical logic gates
8. Unlike computers, processing and memory are performed by the same components in the brain
9. The brain is a self-organizing system
10. Brains have bodies
• You are making many assumptions and I disagree with many of them. Recurrent neural networks have most of the properties you describe. The body does not have to exist, we merely have to feed the sensory neurons so that this brain belives it has a body - assuming that I want this brain to have a body. – frodeborli Oct 23 '16 at 23:14