Fault Tolerant Distributed Swarm Intelligence using Neuromorphic Computing and Local Learning Principles

Supervisors:

Primary supervisor Dr Saeed Afshar

Description:

One of the biggest challenges to achieve ambient intelligence at edge, is the limited computational capacity of edge devices. Though deep learning has taken huge leaps in performance on various intelligent tasks, implementation of deep neural networks on edge devices remains a challenge due to the high energy requirements of deep learning accelerators. There are two fundamental challenges for the development of intelligent edge devices. One, deployment and inference of larger neural network models would require energy intensive hardware on the edge. Two, the current training methods for deep neural networks does not allow online training of neural networks on the edge devices without using GPUs. The effect of these bottlenecks is even more stark in devices like drones, which run on a tight budget both in terms of power and the payload capacity. Placing a powerful GPU that can train a neural network online on device, affects both constraints considerably. Therefore, it is desirable to develop distributed intelligent systems that can function on simpler computational architectures like micro-controllers yet that can adapt online in the light of new data and perform learning. The benefits of such a swarm-based intelligence architecture are twofold. One, with the intelligent computation being distributed, the system as a whole is tolerant to single point failures. Even if one of the system nodes goes down due to any reason, the rest of the participants in the swarm can cover the loss of one single node. Two, each single node in the swarm can run a much simpler computation than running an entire network. Any neural network can be described as a directed computational graph as shown in the Figure 1a. Each computational node in a neural network is usually a simple weighted sum followed by an activation function and can be implemented on many of the basic micro-controllers without any difficulty. Therefore, any neural network in theory can be implemented on a distributed network of relatively cheap micro-controller-based nodes each performing the operation of one such neuronal unit operating in parallel and using wireless communication like Figure 1b.

Figure 1: (a) Any neural network can be represented as a directed graph. (b) The directed graph can be distributed among a swarm of similar computational nodes for implementation.

Though theoretically it is possible to implement any neural network in this fashion, the operational mechanism of deep ANNs adds a lot of overhead on the computation as you need a master node that can control the flow of information through all the nodes. The forward and backward propagation of information in ANNs requires a cascade of synchronous operations happening in tandem with each other. The computation of all the neuronal units in a layer must be completed before passing the output activation of a layer to the next layer. Neuromorphic processing offers unique solutions in this space by using binary communication and local computation. Spiking Neural Network (SNN)s and their training algorithms developed recently have shown comparable performance with ANNs, without using energy intensive methods like error back-propagation. SNNs which are realistic models of nervous systems in biology can operate under low energy requirements owing to their sparser computation and communication properties. The SNN models are not limited by the synchronicity of computations like in ANNs and can be operated in a truly parallel fashion. During training, each computational node requires access to only the local information present at any node and can adapt itself using global reward signals that are broadcasted across the entire network (See ref. ODESA architecture). This allows us to build distributed swarm intelligence capable of performing complex tasks using relatively cheaper hardware at each node.

Outcomes:

This project will investigate combining swarm intelligence and neuromorphic processing principles of sparse and event-driven communication. The project is aimed at building intelligent systems distributed across a network of computational nodes with cheaper compute power. Various adaptation and local learning mechanisms for such distributed systems is explored on different tasks and compared with the current solutions for machine learning at edge.

  • Model a distributed learning system with various sensory capabilities and simulate the training and behaviour of the swarm.
  • A working prototype of a distributed learning system implemented with commercially available micro-controller hardware network. The options for asynchronous transmission of data and wired/wireless communication protocol are explored.
  • Investigation of algorithms to train and adapt the distributed network and benchmark their performance across different machine learning tasks.
  • Investigation of network robustness to adversarial attacks on the network using various forms of node failures. A detailed study on the advantages and disadvantages of such a system is performed.

Eligibility criteria:

Experience with C++, Python, MATLAB, or other equivalent languages for developing and testing the algorithms. Experience with computer vision algorithms and strong mathematical background.