Classifying Dog Breeds in Images

Description

In this project, I was given 12,775 images of 10 breeds of dogs. I experimented with convolutional neural networks (CNNs) to first classify just two breeds of dog: collies and golden retrievers. With just 8 filters and a patience of 5, the CNN performed extremely well with a training AUROC of 0.9958 and validation AUROC of 0.9419.

Next, I performed transfer learning and data augmentation to handle all 10 breeds. I experimented with freezing various layers in the CNN after transfer learning, which proved statistically useful. Also, I tried rotating and changing the RGB images to grayscale and including them in the dataset. These augmented datasets outperformed the original dataset, especially the ones including grayscale images. These changes informed my decision for the parameters of my model I submitted for testing on a wittheld test suite. Scores were hidden on this test suite.

GitHub Repository

If you’d like to see the code, please let me know! I’m unable to make the repository fully public as this project has material from my coursework from my machine learning course EECS 445 at the University of Michigan. The github can be found here.