Machine Learning Repositories
The machine learning repositories are a collection of Java, C# and Python code bases which are used for studying and applying machine learning algorithms to a variety of data sets to study and implement projects. Contains projects which are for learning and analysis, to perform college work such as bachelorette year project, and competition submissions on Kaggle.com
Neural Style Transfer
Using Deep Learning Convolutional Networks, the application draws the user provided content image in the style of the
art provided. Implementation of the paper "A Neural Algorithm of Artistic Style"
with improvements from Improving the Neural Algorithm of Artistic Style
. Also contains a Windows program to quickly manipulate the parameters of the script for rapid development of images.
Deep Columnar Convolutional Neural Network
DCCNN is a Convolutional neural network architecture which is inspired by the Multi Columnar Deep Neural Network of Ciresan (2012)
. Using improvements from recent papers such as Batch Normalization, Leaky Relu, Inception BottleNeck blocks and Convolutional Subsampling, the network uses very few parameters in order to acheive near state of the art performance on various datasets such as MNIST, CIFAR 10/100, and SHVN. Although it does not improve on the state of the art, it shows that smaller architectures with far fewer parameters can rival the performance of large ensemble networks.
Image Super Resolution in Keras
Image Super Resolution is a technique to obtain very accuracte up-sampled images as described in the paper Image Super-Resolution Using Deep Convolutional Networks
The image on the left is simple bilinear upsampling. In the middle is the implementation of the paper, the Super Resolution CNN (SRCNN). On the right is my implementation of a more advanced SRCNN, which is similar to Denoising Auto Encoders. Hence named Denoising Super Resolution CNN (DSRCNN)
Kaggle is a website for competitive machine learning contests, where a large number of contestents apply various machine learning techniques in order to maximise of minimize the objective functions as stipulated by the individual competions. The common languages used are generally Python (with Anaconda) or R
Participated in the BNP Paribas Cardif Claims Management contest and Expedia Hotel Recomendations contest and placed in the top 25% in both.
Wide Residual Network in Keras
Provides Python scripts to construct Wide Residual Networks in Keras. Implementation based on the paper "Wide Residual Networks".
Contains the weights of the WRN-16-8 model which has been trained on the CIFAR 10 data set. The model
acheives a score of 93.68%, slightly lower than the original paper (95.19%), but it can still improve.
Inception v4 in Keras
Provides Python scripts to construct the Inception-v4, Inception ResNet-v1 and Inception ResNet-v2 architecture in Keras. Implementation based on the paper "Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning"
Python - Data Science
A repository of python scripts which implement various Machine Learning algorithms. Also contains utility functions for statistics, linear mathematics, data mining, optimization algorithms (gradient and stochastic gradient descent), and visualization of data scripts.
Python - ML-Tools
ML-Tools is a library of python scripts that facilitate rapid analysis and visualisation of data using machine learning algorithms. It is build so that inclusion of any python script will automate various data cleaning and data validation scripts in just a few lines. This library is mainly used during Kaggle competitions in order to speed up rapid prototyping of ensemble of algorithms
Java - Adaptive Sorting Algorithm
Bachelorette year project, in which multiple sorting algorithms are analysed to identify the winning algorithm for a given array size and its degree of presortedness. In this project, various sorting algorithms are used to sort a large number of arrays in order to obtain the execution time of each of the algorithms for that given data array. These results are then used to compute the winning algorithm, which is then learned by the decision tree in the C# counterpart of this project.
Paper : "Adaptive Sorting using Machine Learning"
C# - Adaptive Sorting Algorithm
Bachelorette year project, in which multiple sorting algorithms are analysed to identify the winning algorithm for a given array size and its degree of presortedness. In this project, the results from the Java counterpart are analyzed and a Decision Tree is computed using Accord.NET tool in C#