Differentiable Sparse Coding