Artificial Neural Network training based on memristors crossbar

An Artificial Neural Network (ANN) is a computational model inspired by the structure and function of the human brain. ANNs are a subset of machine learning algorithms that teaches computers to process data using interconnected nodes or neurons in a layered structure that resembles the human brain. In the field of image classification, ANNs are used to identify and categorize objects or scenes within an image. The interconnected ANN nodes, or "neurons, " process and transmit information. Each neuron receives input from multiple other neurons, processes the information, and then transmits the output to other neurons in the network. In this way, ANNs can recognize complex patterns and relationships within data. In the context of image classification, the input to an ANN is typically an array of pixel values that represent an image. The ANN then processes this information, using multiple hidden layers, to produce an output class label that indicates which object or scene is present in the image. To train an ANN for image classification, a large labelled dataset of images is used to teach the network how to recognize different objects or scenes. The network's output is then compared to the actual class labels and the weights of the connections between neurons are adjusted to minimize the error. ANNs are a powerful tool for image classification tasks, allowing computers to automatically recognize and categorize objects in images with high accuracy.

Objectives:

  1. Being familiar with the neural networks and knowing how it works.
  2. Software preparation: learning how to use Python or Matlab to run Tensorflow and training some datasets like Cfar 10/100, MNIST and so on.
  3. neural network training: based on above preparation, you are expected to know how to training some dataset and modify some parameters in it and then optimize the algorithms and training results;
  4. Simulation: setting up a crossbars (circuits) on Cadence's Spectre and apply the training techniques you learnt into the hardware simulation (simulated neural network based on hardware where some data of them will be extracted from experiments we do) . you will have good command of training some networks with some datasets and try to optimize the hardware-based network performance.

[1] S.I. Yi, J.D. Kendall, R.S. Williams, S. Kumar, Activity-difference training of deep neural networks using memristor crossbars, Nature Electronics, (2022).
[2] M. Prezioso, F. Merrikh-Bayat, B.D. Hoskins, G.C. Adam, K.K. Likharev, D.B. Strukov, Training andoperation of an integrated neuromorphic network based on metal-oxide memristors, Nature, 521 (2015) 61-64.
[3] F. Cai, J.M. Correll, S.H. Lee, Y. Lim, V. Bothra, Z. Zhang, M.P. Flynn, W.D. Lu, A fully integrated reprogrammable memristor–CMOS system for efficient multiply–accumulate operations, Nature Electronics, 2 (2019) 290-299