Description
In the reference paper, arbitrary convex compact contraints can be imposed on the dictionary atoms, as long as one can compute the euclidean projection (e.g l2 ball, elastic-net ball, fused-lasso ball, etc.). For example, sparsity can be a crucial constraint if we know from prior knowledge that the dictionary atoms / components should be sparse.
Proposal
The idea would be to allow the DictionaryLearning and MiniBatchDictionaryLearning estimators take strings (e.g "enet ball") or function handles (e.g compute_fused_lasso_projection(locals())), to allow it customize the way the dictionary atoms are updated.
Waiting for
PR #9036 merged.