[Tutorial] Self-Supervision with FastAI

Hey guys!

I recently got started with fastpages and started my own blog! Feel free to check it out: Epoching’s Blog

My first blog post is on self-supervised learning, with FastAI2 :slight_smile:

Check it out here: Self-Supervision with FastAI

It’s a friendly coder introduction to rotation-based self-supervised pretraining. Let me know what you guys think! Feedback is appreciated :slight_smile:

Epoching (Amar Saini)

10 Likes

Nice work. I really like it a lot.

My critique would be that you picked an easy data set. MNIST is centered and has no rotation, but real data sets in the wild are not so clean (not centered, with rotation, and all sorts of other artifacts).
Additionally, you trained to predict the rotation using a lot of images, but could you learn the relevant convolutions with just a few images (maybe 50)? For applications where self-supervision could be really helpful, the data set size is normally small hence the desire to use self-supervision.

Again, this is great work. Thanks for sharing.

Thanks for the feedback! :slight_smile:

I do plan on playing with other (harder) datasets, and perhaps some other self-supervised learning methods as well, such as CPC (Contrastive Predicitive Coding).

Have any recommended datasets?

Traditionally, 3D datasets of CT or MRI are expensive to produce since they required highly specialized tools and technicians to run the machines. As a result, they are generally small.
So, maybe a 3D dataset of less than 50 samples.

I would also be curious to see the jigsaw paper implemented in fastai.

This paper might be interesting to look at as well.
http://openaccess.thecvf.com/content_ICCV_2019/html/Goyal_Scaling_and_Benchmarking_Self-Supervised_Visual_Representation_Learning_ICCV_2019_paper.html

2 Likes

Thanks for the great suggestions! I may try Jigsaw with FastAI next! :slight_smile:

1 Like