Repositories

A collection of Github Repositories in various languages

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

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#

General Repositories

The general repositories are a collection of Java and C# code bases which are used for college or personal use. Contains projects which are for fun or to perform college experiment, and even some large projects.



Ragial Notifier

An Android Application developed to act as a convenience for ragial.com, an item price tracking website for the popular MMORPG Ragnarok Online, developed by Gravity Inc. The entire application is developed with efficiently delivering notifications to users when an item they are tracking is on sale. This application is also very efficient when parsing ragial.com, so as to reduce the load on their servers.
Available at : Ragial Notifier for Android

Ragial Searcher

Ragial searcher is a Java library to parse and store data from ragial.com, often used the the online mmorpg, Ragnarok Online and used as a library in the Android Application - Ragial Notifier



Muktangan - Grade Assessment Tool

A C# Windows Form based application developed upon request of Muktangan. It calculates a students competencies in a format simple for teachers to manage. Co-developed with Ishaan Jain.



GetFresh

An Android Application developed to order dishes from the website getfresh.in in an efficient manner.

College Repository

A collection of practical assignments and projects that were taught over 4 years. The repository is divided into various semesters, and several subjects within those semesters.

Experimental Repositories

These repositories are under constant development and may not be stable for direct use without testing first. Experimental algorithms are implemented here, as well as perfectly working algorithms.


Basic Building Blocks

A repositary of various experiments, which involve various fields such as Sorting, Cryptography, Files, Networking and others. These are used in other projects after testing.

Blind Source Seperation using ICA

Implementation of Blind Souce Seperation using Independent Component Analysis in C# and Accord.NET library.

Hybrid Cryptography

This is a hybrid algorithm of Rotation Cipher, Ceaser Cipher, Variable Key Cipher and partially implements DES as well. Works well, but security is not tested.

Java 8086 Microprocessor

Partial implementation of the 8086 Architecture in Java. Requires implementation of the assembler and execution engine.

Other Projects

My Github account contains over 80 projects, ranging from Data Structures in Java, various algorithms, Neural Network and Machine Learning experiments. Several projects are libraries to other larger projects.

They can be found at : Somshubra Majumdar (titu1994)