  The task of learning a quantum circuit to prepare a given mixed state is a
fundamental quantum subroutine. We present a variational quantum algorithm
(VQA) to learn mixed states which is suitable for near-term hardware. Our
algorithm represents a generalization of previous VQAs that aimed at learning
preparation circuits for pure states. We consider two different ans\"{a}tze for
compiling the target state; the first is based on learning a purification of
the state and the second on representing it as a convex combination of pure
states. In both cases, the resources required to store and manipulate the
compiled state grow with the rank of the approximation. Thus, by learning a
lower rank approximation of the target state, our algorithm provides a means of
compressing a state for more efficient processing. As a byproduct of our
algorithm, one effectively learns the principal components of the target state,
and hence our algorithm further provides a new method for principal component
analysis. We investigate the efficacy of our algorithm through extensive
numerical implementations, showing that typical random states and thermal
states of many body systems may be learnt this way. Additionally, we
demonstrate on quantum hardware how our algorithm can be used to study hardware
noise-induced states.
