Reproduce of Representation Learning with Contrastive Predictive Coding paper in image recognition task.
I trained CPC to encode image into a representation vector which significantly has lower dimension on augmented MNIST dataset. The linear model applied directly on pixel image only reached 54% accuracy. However, after transform into representation vector, the image recognition task achieved 90% accuracy. This show that good representation has been learned through the unsupervised learning process.
The TSNE visualization of representation vector on 10000 augmented test images:
- Build Docker image from Dockerfile
- Learn representation transformation model with
python main.py
- Run benchmark model on raw pixel with
python linear_benchmark.py
- Run linear CPC to compare with
python linear_cpc.py