through multiple layers. In [@Larochelle_Bengio08], multi-layer networks are not considered and only a single layer RBM is used.

In refs [@Lillicrap_etal16; @Nokland_etal16; @Baldi_etal16; @Neftci_etal17a], the backpropagation scheme is modified to use random fixed weights in the backward path. This relaxes one of the biologically unrealistic requirements of backpropagation which is weight symmetry between the forward and backward pathways. Errors are still non-local, however, as they are generated by the top layer. A learning mechanism that is able to generate error signals locally is the synthetic gradients mechanism [@Jaderberg_etal16; @Czarnecki_etal17] in which errors are generated by dedicated error modules in each layer based only on the layer’s activity and the label. The parameters of these dedicated error modules are themselves updated based on errors arriving from higher layers in order to make the error modules better predictors of the true, globally-derived, error signal. Our approach generates errors in a different manner through the use of a local classifier, and each layer receives no error information from the layer above.

Methods {#sec:model}
=======

We train multi-layer networks, with either convolutional or fully connected layers, based on local errors generated by random classifiers. Consider a fully connected $i^{th}$ hidden layer in a network 