Classification on Modified MNIST Digits

Code and Report
Project for applied machine learning course
Machine Learning CNN python tensorflow keras

Abstract

This project aims to perform a classification task on the modified figures based on the MNIST dataset. Each figure contains two digits and an operator indicated by the first letter of the operation, i.e. ‘A’ or ‘a’ for addition and ‘M’ or ‘m’ for multiplication. Our task is to build a model that correctly predicts the result of the mathematical operation on each input figure. For this purpose, we have implemented a baseline logistic regression classifier, two fully connected feedforward neural networks and a convolutional neural network (CNN). Other techniques have also been attempted to boost the performance including cost-sensitive learning and data augmentation. Here is the link for Kaggle competition page. Our team, called “Definitely need a Titan X”, has achieved the first place on the leaderboard with 98.8% accuracy.

Data

Here are some samples of training data. The data is stored in pixel value of 0 - 255. The labels of training data are the numerical results of addition or multiplication.

Sample inputs Sample inputs Sample inputs Sample inputs Sample inputs Sample inputs Sample inputs Sample inputs Sample inputs Sample inputs