# An Integrated Photorefractive Analog Matrix-Vector Multiplier for Machine Learning +
## 1 Introduction  
Artificial Intelligence (AI) and Machine Learning (ML) have become key drivers for a wide range of applications. The Artificial Neural Network (ANN) is a corner stone of ML (Figure 1a). Computationally, the synaptic signal propagation between its neuron layers with sizes N and M involves a matrix-vector multiplication (MVM) with an NxM matrix and thus involves NxM multiply-accumulate (MAC) operations. Synaptic signal propagation is required for both inference and training. AI applications are growing in complexity and the associated ANNs are growing in size [1]. Consequently, the compute demand in AI is growing at an exponential rate that traditional digital compute architectures cannot keep up with [2, 3]. Analog crossbar arrays can efficiently accelerate and scale MVM operations (Figure 1b) [4, 5, 6]. The crossbar array consists of input and output channels. At each channel intersection, a tunable analog coupling element is placed, representing a matrix coefficient. Once the matrix is programmed, MVM operations are executed directly by setting the analog amplitudes of the input vector. The vector-matrix product is retrieved by  
Figure 1: (**a**) The feedforward Artificial Neural Network (ANN) is a cornerstone of Artificial Intelligence. (**b**) The analog crossbar array is a chip architecture to efficiently accelerate the synaptic signal transfer between the neuron layers. Conceptually, it directly emulates the synaptic interconnect layer. the readout of the output channels. Then, the compute effort of the ANN signal propagation scales only linearly with network size. In principle, the nonlinear activation operation is not performed by the crossbar array (Figure 1a), and matrix operations are targeted only. Analog nonlinear elements could be added to the outputs of the array to include this functionality. However, the nonlinear activation can be performed digitally, while maintaining linear compute scaling with network size. The acceleration of vector operations yields lower-order efficiency gains. In digital computing, memory transfers are particularly energy costly, and meaningful efficiency improvements can only be achieved by limiting them [7]. The analog crossbar array prevents repeated NxM memory transfers of the synaptic weights by storing them locally in the tunable coupling elements (Figure 1b). ANNs are trained before they can be deployed for inference. The training involves the tuning of the synaptic weights in order to realize the correct mapping of the input state to the desired output state. This is achieved by iteratively feeding training data into the network, assessing the output error compared to the desired target, and reducing the error by tuning the synaptic weights. The optimal tuning direction of the weights is along the gradient of the error function, which can be resolved by the back propagation algorithm (Figure 2) [8]. The training is completed once the iterative process has converged and thus when the error function has been minimized. ANN training is computationally intensive and is an important target for acceleration [4]. A crossbar array to accelerate ANN inference needs to support the forward propagating MVM operation solely (Figure 2a). A crossbar array to accelerate ANN training by back propagation needs to support the transposed matrix and scaled outer product operation too (Figure 2b). The transposed matrix operation requires the possibility to swap the roles of the input and output channels (Figure 1b). The outer product operation requires weights that can be updated linearly by the vector signals. If the weight update response is nonlinear, the update is inaccurate and not along the gradient descent direction. Then, the convergence of the error function will either require more training iterations or is hindered altogether. Evidently, an analog crossbar array for ANN training and inference has more elaborate hardware design requirements compared to a strictly forward-propagating array for inference only.