Portfolio

Implementation of Machine Learning Algorithms

This started as part of a project for my graduate course - Machine Learning (CS536) and I extended it further for my own learning. In order to understand the workings of the different machine learning algorithms, I started implementing them using just Numpy and Python without the aid of any external libraries.

CODE

Image Colorizer using Neural Networks

This was the final project for my graduate course CS520 - Introduction to Artificial Intelligence. Given grayscale images, the goal was to produce a colorised version of these images. I used a neural network as our model but kept it very simple.

Also, I did not use any external library and created the neural network from scratch using just Numpy and Python. It can be used to create neural networks with different layers, different number of neurons in each layer and different activations for each layer (ReLU, Sigmoid and Linear).

CODE TECHNICAL REPORT

Minesweeper AI Bot

The project goal was to create a computer bot which can play Minesweeper at different difficulty levels. We created 3 different solvers:

Basic Solver - The basic solver is the most risk-free solver which will not think on its own but just play the safest moves possible. It will stop the game if there are no further safe moves possible.

CSP Solver: This is the main bot which plays the game just like humans. CSP refers to Constraint Satisfaction Problem since this is the main algorithm used by the agent. It plays the game just like a normal human - by creating different constraints for each square opened and each mine flagged. When it opens a cell or flags it, the knowledge base is updated and the constraints/equations are resolved.

Bonus CSP Solver: This is just en extension of the the CSP solver. Unlike a typical mineweeper game where the agent will know what lies behind a cell once it is opened, this solver will only get the information with some probability.

CODE TECHNICAL REPORT

Probablistic Search and Destroy

I need to write something about this. Work in progress.

CODE TECHNICAL REPORT

Maze Solver AI Bot - Analyzing Search Algorithms

This was second project for CS520 - Introduction to Artificial Intelligence. As the name suggests, the project goal was to create a computer bot which can play Minesweeper at different difficulty levels. We created 3 different solvers:

Basic Solver - The basic solver is the most risk-free solver which will not think on its own but just play the safest moves possible. It will stop the game if there are no further safe moves possible. It is a baseline model which we developed to evaluate the accuracy and effectiveness of the other complex models.

CSP Solver: This is the main bot which plays the game just like humans. CSP refers to Constraint Satisfaction Problem since this is the main algorithm used by the agent. It plays the game just like a normal human - by creating different constraints for each square opened and each mine flagged. When it opens a cell or flags it, the knowledge base is updated and the constraints/equations are resolved.

Bonus CSP Solver: This is just en extension of the the CSP solver. Unlike a typical mineweeper game where the agent will know what lies behind a cell once it is opened, this solver will only get the information with some probability. Hence, if it opens a cell, there is an 80% chance of the agent receiving the correct information.

CODE TECHNICAL REPORT

Python Packages Download - Data Visualisation Tool

The Python ecosystem is vast and far-reaching in both scope and depth. In this project we came up with an idea of analyzing the python package downloads all over the world. This project involves data collection, data analysis, visual interaction and UI implementation using Google Big Query, Dash and Python. For some time now PyPI have archived all of the logs generated by users. And not many have analyzed this logs.

CODE TECHNICAL REPORT PRESENTATION DEMO VIDEO