Projects

Disclaimer: I will try to keep this list updated, but please check my github for my latest projects.

General:

  • Coral Programming Language The Coral programming language is a blazingly-fast, gradually typed Python-like language with powerful optional typing for improved safety and performance. Coral performs type inference on optionally typed Python code and seamlessly optimizes type-inferred objects to be nearly as efficient as equivalent C-code, orders of magnitude faster than Python. Coral also enforces types at compile and runtime, catching errors where possible before code is run, and otherwise throwing errors at runtime.

  • Titan Simulation Library The Titan simulation library is a versitile CUDA-based physics simulation library that provides a GPU-accelerated environment for physics primatives like springs and masses. Library users can create masses, springs, and more complicated objects, apply constraints, and modify simulation parameters in real time, while the simulation runs asynchronously on the GPU.

Networks:

  • Char-RNN: My latest project is a general-purpose character-level Long Short-Term Memory (LSTM) RNN for learning from and interpreting text, which can be trained on any large text dataset with good performance and excellent results.

  • Tic Tac Toe: In this repository, I implement a number of reinforcement learning and minimax algorithms for playing tic-tac-toe, including Q-learning, alpha-beta pruning, heuristic evaluation functions, and the classical minimax algorithm.

  • Reinforcement Learning: These scripts demonstrate solutions to some classic reinforcement learning problems, and solve optimal control problems for OpenAI challenges. The k-armed-bandit script compares and visualizes algorithms for solving the classic problem in reinforcement learning.

  • Generative Adversarial Networks (GANs): These networks, trained on MNIST, CIFAR-10, and several face datasets, are capable of learning to produce unique image data from existing datasets. They work by pitting two neural networks against each other: one, a classifier, tries to tell which image is real and which is fake, while the other tries to generate more realistic images.

  • Deep Convolution Classifiers: These are simple, classical convolution networks trained on MNIST, CIFAR-10, and the ILSVRC datasets, which can classify even complex images with high accuracy into anywhere between 2 and 10000 classes.

  • Logistic/Linear Regression in Numpy: These scripts use backpropogation to perform linear and logistic regression, with an algorithm implemented from scratch in Numpy/Python.

Other side-projects include general python notes and module tutorials, and various scientific visualization tools. More small scripts and utilities will be added gradually.

Tensorflow/Keras Tutorials

  • MNIST CNN Classifier Tutorial: This notebook is a simple tutorial introduction to image classification in Keras, using the MNIST dataset. We cover fully connected networks, various CNNs, and hidden layer visualization to help understand how the model learns.

  • Introduction to SGD, Vectorization, and Linear Regression in Numpy: In this tutorial, we implement the “backpropogation” algorithm for a simple linear regression model on MNIST, first using an iterative approach (looping over the weights), and then trying a vectorized implementation in Numpy. We talk about the calculus of Stochastic Gradient Descent, and prepare for a logistic regression implementation in the next tutorial.

Other Work:

  • Image Preprocessing Script: A script which preprocesses image data and saves it in convenient formats, with a large number of options including resizing, greyscale conversion, and channel normalization.

  • Mandelbrot Generator: A small Mandelbrot generator, with arbitrary resolution and size.

  • Central Limit Theorem Demonstration: A small script which demonstrates the converge of the mean of samples from arbitrary distributions to a normal distribution.