  The brain, which uses redundancy and continuous learning to overcome the
unreliability of its components, provides a promising path to building
computing systems that are robust to the unreliability of their constituent
nanodevices. In this work, we illustrate this path by a computing system based
on population coding with magnetic tunnel junctions that implement both neurons
and synaptic weights. We show that equipping such a system with continuous
learning enables it to recover from the loss of neurons and makes it possible
to use unreliable synaptic weights (i.e. low energy barrier magnetic memories).
There is a tradeoff between power consumption and precision because low energy
barrier memories consume less energy than high barrier ones. For a given
precision, there is an optimal number of neurons and an optimal energy barrier
for the weights that leads to minimum power consumption.
