# Sparse coding with learnable dictionaries

November 18, 2014 — March 2, 2023

Adaptive dictionaries for sparse coding. How is this different from matrix factorisation, you ask? It is not. AFAICT these are emphases of the same thing.

(Bruno A. Olshausen and Field 1996) kicked this area off by arguing sparse coding tricks are revealing of what the brain does.

For a walk through of one version of this, see Theano example of dictionary learning by Daniel LaCombe, who bases his version on (Ngiam et al. 2011; Hyvärinen, Hurri, and Hoyer 2009; Hahn et al. 2015).

See (Mairal, Bach, and Ponce 2014) for some a summary of methods to 2009 in basis learning.

Question: how do you do adaptive sparse coding in a big data / offline setting?

TRANSFORM LEARNING: Sparse Representations at Scale.

We have proposed several methods for batch learning of square or overcomplete sparsifying transforms from data. We have also investigated specific structures for these transforms such as double sparsity, union-of-transforms, and filter bank structures, which enable their efficient learning or usage. Apart from batch transform learning, our group has investigated methods for online learning of sparsifying transforms, which are particularly useful for big data or real-time applications.

Huh.

### 0.1 Codings with desired invariances

I would like to find bases robust against certain transformations, especially phase/shift-robust codings, although doing this naively can be computationally expensive outside of certain convenient bases. (Sorry, that’s not very clear; I need to return to this section to polish it up. 🏗)

One method is “Shift Invariant Sparse coding”, (Blumensath and Davies 2004) and there are various extensions and approximations out there. (Grosse et al. (2007) etc) One way is to include multiple shifted copies of your atoms, another is to actually shift them in a separate optimisation stage. Both these get annoying in the time domain for various reasons. (Lattner, Dorﬂer, and Arzt 2019) presents an adaptive sparse coding method preserving desired invariants.

spams does a huge variety of off-the-shelf sparse codings, although none of them are flexible. Nonetheless it does some neat things fast.

SPAMS (SPArse Modeling Software) is an optimization toolbox for solving various sparse estimation problems.

- Dictionary learning and matrix factorization (NMF, sparse PCA,…)
- Solving sparse decomposition problems with LARS, coordinate descent, OMP, SOMP, proximal methods
- Solving structured sparse decomposition problems (l1/l2, l1/linf, sparse group lasso, tree-structured regularization, structured sparsity with overlapping groups,…).

## 1 References

*Independent Component Analysis and Blind Signal Separation*.

*IEEE Transactions on Signal Processing*.

*arXiv:1701.06106 [Cs, Stat]*.

*Proceedings of the 27th International Conference on Machine Learning (ICML-10)*.

*arXiv:1105.5307 [Cs]*.

*The Twenty-Third Conference on Uncertainty in Artificial Intelligence (UAI2007)*.

*Multimedia Tools and Applications*.

*ISMIR*.

*Neural Computation*.

*Natural Image Statistics: A Probabilistic Approach to Early Computational Vision.*

*Advances in Neural Information Processing Systems 27*.

*Neural Computation*.

*Proceedings of the 20th Conference of the International Society for Music Information Retrieval*.

*NIPS*.

*Neural Computation*.

*Proceedings of the 26th Annual International Conference on Machine Learning*. ICML ’09.

*The Journal of Machine Learning Research*.

*Sparse Modeling for Image and Vision Processing*.

*The Annals of Statistics*.

*Advances in Neural Information Processing Systems 24*.

*Network (Bristol, England)*.

*Nature*.

*Current Opinion in Neurobiology*.

*Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence*. IJCAI’16.

*Proceedings of the IEEE*.

*Proceedings of the 38th International Conference on Machine Learning*.

*SIAM Journal on Imaging Sciences*.

*IEEE Transactions on Pattern Analysis and Machine Intelligence*.

*Annual Review of Neuroscience*.

*arXiv:1701.01207 [Cs, Math, Stat]*.

*IEEE Transactions on Signal Processing*.