Projects

A selection of medium to large scale project I have worked on for school or work.

Faster ChatBot Arena Ratings

I developed a hyperoptimized version of the Bradley-Terry paired comparison model and contributed it to the ChatBot Arena codebase. This brought the runtime of computing the ratings from 19 minutes to 8 seconds. [blog post] [pull request] [dev repo]

Chatbot Arena leaderboard with ratings calculated by my code contribution.


Resolving Large Action Spaces in Text-based Games

In collaboration with Microsoft Research Montreal and Umass Amherst, I worked on a project applying reinforcement learning algorithms to text based games. We implemented extensions of A2C and DQN using LSTMs to encode states and generate natural language actions. We tested our algorithms in the Microsoft TextWorld environment. [report] [poster]

Neural architectures used to take in text descriptions of observations and inventory and generate probabilities over actions and Q values.


Word2VecS: Automatically Learning Multiple Word Senses

In my final project for CS 690D, Deep Learning for Natural Language Processing, I developed a method for learning seperate word representations in order to better represent words with multiple meanings. The embeddings learned the different contexts of words and worked well as inputs to downstream tasks. [report] [poster] [code]

Different vectors for the same word learn different contexts of the word.
Multi-sense embeddings give a slight edge on a sentiment analysis task.


Exploring Loss Functions for Object Localization

This was my final project for CS 682, Neural Nets. I trained neural networks to classify and locate objects in images. I experimented using alternative loss functions and trained an additional neural net to approximate the desired utility metric and used the network itself as a loss function. [report] [poster] [code]

bounding box images
Output location predictions for models trained with different loss functions.


Implementing Index Structures for High Dimensional Data

As a final project for CS 645, Databases, my teammates and I implemented VA-file and R*-tree data structures to accelerate nearest neighbor search on high dimensional data sets. We worked to reproduce the experiments in this paper. [report] [code]

Search performance of the data structures in the original paper compared to the results with our implementations.


Using Reinforcement Learning to Discover Adaptive Sepsis Treatments

As an intern at Lawrence Livermore National Laboratory, I worked on a project applying deep reinforcement learning algorithms to medical simulations of sepsis. The goal was to learn combinations of drugs which when applied to patients in specific medical states increase the expected health status of the patient over the course of their treatment. [poster]

Control loop for our reinforcement learning agent to interact with the medical simulation.


Designated Sinker

As a final project for EECS 467, Autonomous Robotics, my teammates and I made a robot which plays beer pong. It used an Xbox Kinect camera and computer vision techniques to locate the positions of target cups. We programmed the kinematics of 5 joint robotic arm to be to perform picking up and throwing motions. To throw the ball the correct distance, we fit a polynomial regression model from arm torque and speed to distance thrown and inverted it to map from desired distance to required torque and speed. [report] [poster]

In lab demonstration of our robot playing beer pong.