Scroll Top

Project Highlights

Interact and learn more my latest projects.

>

ABOUT MY PROJECTS

Welcome

This is a dedicated space to show off my proudest work. This substrata of personal projects shows my learning processes as I hone my skills in developing my own interest. Accompanying each project are readings, code and videos showing what I have been working on when school gets boring. Hope you enjoy.

Deep Neuroevolutionary Algorithms

Basic Approach

Genetic Algorithm Playing Tetris

Evolution is natures way of extracting the best of the best. For billions of years, evolution brought the single celled organism to the you reading this website. The darwinian evolution processes is now used to develop complex computer systems namely Genetic Algorithmic programs that base their power on the iterative processes of evolution.

Noraml machine learning algorithms requires, hyperparamets such as learning rate, neural connections and number of layers of deepnets to be hard coded by the programer. What if those values aren't optimized? What if the computer can decide how complex its brain is? Welcome to Deep Neuroevolutionary Programming.

 

My Code and Controls

Watch the AI play tetris and EVOLVE in front you! I coded the AI portion in Javascript (surprising, I know ) and wrote the code for the evolutionary process. I did not however, code the tetris game it self. I just built ontop of a prexisting project. Check out the my github for all the code.

 

Load Fully Evolved Archive: [CTRL] | Speed Up: [E] | Slow Down: [D]

Toggle AI: [A] | Move Shape: [Arrow Keys] | Rotate Shape: [Up Arrow]

Drop Shape: [Down Arrow] | Save State: [Q] | Load State: [W]

Drop Shape: [Down Arrow]| Save State: [Q] | Load State: [W]

Get Archive: [G] | Load Archive: [R] | Pick Shape: [I,O,T,S,Z,J,L]

 

 Github Video

 

NeuroEv Tetris Ai

 

Neural Evolution of Augmented Topologies

Evolving The Brain

Lets take this one step further. Lets evolve the brain. A paper (NEAT's and TWEAN's) published in 2002 outlined a type of genetic algorithm which leverages the power of ANN's and evolution. Based on the paper I created my own simulation. The simulation replicates the use of the iterative approach to fine tune the artificial neural networks. I built the project ontop a prexisitng simulation engine. The neural network was created by Tensorflow.js and javascript.

 

The demo later on evolves an agent population to improve its ability to walk across the screen. The weights and nodes of the neural net is crossed between the different elite organisms. This is my first example of Deep Neuroevolution.

 

The neural architecture is a simple 3 layer ANN the network connections is decided based on evolution. To the right is a sample of the code for the neural network. The predict function does a forward pass through the neural network.

 

 Demo  Article Github Code Video

DeepQ Networks

Reinforcement Learning Algorithms

DQN and Space Invaders

The goal of the project was to develop a model which uses both CNN's and Q-Learning to leverage Deep Q Learning to train an agent to incrementally improve their gameplay. Points wise, the bot went from 0 - 450 points in 50 games, not too shabby. The image below shows a snipet of this progression in 30x speed. Furthermore, to the right is the main body of the Q-Learning process. The rest of the model can be found on my Github. Here

via GIPHY

Over the course of an hour, the was able to show promising results in preformance! The graph on the right shows the mapping of preformance (points) vs number of games . In short, every 3 frames of the game was fed into the model, processed through a CNN, then the following action (A prime) was fed further to calculate loss. Parameters are updated and actions are preformed. TL:DR it uses multiple Neural Nets along with the Q learning algorithm to compute best possible actions for the agent with zero knowledge of how the game works.

Above: shows the preformance (points) vs number of games.

 

 

Cancer Detection CNN's

Convolutional Neural Network

Cancer Detection Model

I built a convolutional neural network to detect microscope images and classify them as either cancerous, human tissue, or debris. The model is trained on a dataset of 5000 images with a pixel size of 150x150 (black and white). The Image to the right is what the computer sees in the first layer of my model. You can also find the complete neural structure of my model on my Github and all my code. Check out the source code of this website for all the tensorflow JS code. For more info take a peek at my presentation!

Below are a few pictures that my model accepts. 1. Right click to download the pictures and re-upload them to test my model yourself! 2. Upload the image to the website. 3. The predictions will tell you the type of cells the image contains Please note my model ONLY accepts 150x150 grayscale images

Downloadable Images

TUMOR STROMA COMPLEX ADIPOSE

Image

Predictions

     

     

    LSTM Algorithms

    AI ChatBot

    This was a very quick project made to introduce me to the area of NLP. The LSTM model, in summary, uses mutliple artificial neural nets and passes the weights forward to the next neural net. Whats special about ths network is it includes embeded words where the neural net finds connection between words. Attention layers help regulate the memory cells of the LSTM. Below is a snipet of a conversation with the bot. Once again, the code is in my github.

    The program was from a tutorial from pytorch.org which outlined a super indepth explination. To the right is an example of the code. Currenty LSTM's are still a new area for me. I'm still continuing look into this area of interest. To be continued...

    END

    That's All There's To See!

    Back Home