  The recently proposed Multi-Layer Convolutional Sparse Coding (ML-CSC) model,
consisting of a cascade of convolutional sparse layers, provides a new
interpretation of Convolutional Neural Networks (CNNs). Under this framework,
the computation of the forward pass in a CNN is equivalent to a pursuit
algorithm aiming to estimate the nested sparse representation vectors -- or
feature maps -- from a given input signal. Despite having served as a pivotal
connection between CNNs and sparse modeling, a deeper understanding of the
ML-CSC is still lacking: there are no pursuit algorithms that can serve this
model exactly, nor are there conditions to guarantee a non-empty model. While
one can easily obtain signals that approximately satisfy the ML-CSC
constraints, it remains unclear how to simply sample from the model and, more
importantly, how one can train the convolutional filters from real data.
  In this work, we propose a sound pursuit algorithm for the ML-CSC model by
adopting a projection approach. We provide new and improved bounds on the
stability of the solution of such pursuit and we analyze different practical
alternatives to implement this in practice. We show that the training of the
filters is essential to allow for non-trivial signals in the model, and we
derive an online algorithm to learn the dictionaries from real data,
effectively resulting in cascaded sparse convolutional layers. Last, but not
least, we demonstrate the applicability of the ML-CSC model for several
applications in an unsupervised setting, providing competitive results. Our
work represents a bridge between matrix factorization, sparse dictionary
learning and sparse auto-encoders, and we analyze these connections in detail.
