Python implementation of Restricted Boltzmann Machine without using any high level library. Used numpy for efficient matrix computations. Used Contrastive Divergence for computing the gradient. Implemented gradient based optimization with momentum. Trained on MNIST data for demonstration of it’s use. Check out the repository for more details.
A character-level LSTM implemented using PyTorch. Can generate random text. It was trained on Mark Twain’s books. It learnt word spellings and use of words quite well. But doesn’t produce very meaningful sentences. Just tried for fun, inspired by reading Andrej Karpathy’s blog “The Unreasonable Effectiveness of Recurrent Neural Networks”.
Badminton Stroke Classification
This was a part of the Data Analytics course at IISc. In this project our goal was to create model that can classifiy the type of badminton stroke (5 classes). The data was time series sensor data of accelerometer and gyroscope sensors collected by ourselves using a device attached to the player’s wrist. We tried several classical machine learning models. For this we generated 281 features like average, max, skewness, etc. We also tried LSTM with different architectures. The best results we found was using gradient boosting with 80% accuracy.
MACHINE LEARNING COURSE PROJECT:
Explored different methods for embedding graph nodes like deepwalk, node2vec, etc. Performed various experiments like link prediction and label classification on real world datasets.
Topological Data Analysis on Dynamic graphs
Course project for Computational Geometry and Topology. Worked on TDA on time-varying graphs. Extracting persistence diagrams of each snapshot and comparing their paiwise Bottleneck/Wasserstein distances. Obtained a timeline plotting first dimension of classical MDS against time. This gave us the insight of the variations in the data over time. Also helps in finding one-time events. Used TDA libraries like: Gudhi, Dionysus 2, TDA package in R, etc.
1D Landscape Profile
Feature selection using Genetic Algorithm
[BTech Final year project] The objective of the project was to reduce the number of features in a machine learning data set using the genetic algorithm as the optimization technique. Selecting the suitable features while keeping the accuracy of the classifier as high as possible.
Pacman Maths Game
This game was developed during the internship at IITB, with the purpose of testing the gamification framework. This game is inspired by the classic Pac-Man game. The player is given a maths problem and 5 seconds time to solve that question. After the time ends, the player has to control the Pac-Man to reach to the correct answer ball. And of course escaping from the ghosts. The ghosts(two of four) follows the Pac-Man. It serches for the shortest path to Pac-Man. Play the game from link below (not for mobile).
Space Drift is an Android Game which I developed during my 5th semester of college. This game is a simple one tap infinite game, in which user have to tap the screen to change the direction of the spaceship. The spaceship always keeps rotating in either left or right. You have to protect it from colliding with the spherical asteroids moving around randomly. I built this game as a learning experience. No game engine or framework was used. Everything was done from scratch. I used Android Studio for the whole project. The game does not contain any images, everything is drawn from the basic primitives available as canvas methods. The challenging part was implementing collision detection, for which I used SAT(Separating Axis Theorem).