Sparse PCA and dictionary learning