Visual Introduction to Self Supervised Learning
amitness.com
amitness.com
And Lilian Weng blog on self-supervision [2]
.. CPC is .. translating a generative modeling problem to a classification problem... uses cross-entropy loss to measure how well the model can classify the “future” representation amongst a set of unrelated “negative” samples...
[1] https://ankeshanand.com/blog/2020/01/26/contrative-self-supe...
[2] https://lilianweng.github.io/lil-log/2019/11/10/self-supervi...
To succeed, the encoder needs to be able to extract the underlying, useful information (called slow features) contained in the patch and discard the noise as this will make the retrieval process much easier.
This yields an encoder that gives pretty good representations of your inputs and you can then finetune some additional layers on top of it for your final task.
1) Transfer learning -- start with self supervised model and either fine tune parameters or freeze parameters + add another layer to train your task (with way fewer params/necessary labels since you already learned about the input distribution)
2) Nearest neighbor/clustering -- no need to label all classes, simply fetch similar examples (eg find semantically similar sentences in a corpus).