A collection of my projects
CS 238 & CS 221
Understanding and mastering strategic decision-making is a critical pursuit in artificial intelligence, with applications extending to fields such as game theory, decision science, and autonomous systems. By exploring the complexities of decision-making in a game characterized by imperfect information and individual play, this project seeks to contribute valuable insights into the broader realms of strategic artificial intelligence and competitive environments.
Generative Adversarial Networks (GANs) are a framework for teaching a DL model to capture the training data’s distribution in order to generate new data from that same distribution. They are made of two distinct models, a generator and a discriminator. My goal in this project was to form a direct extension of a GAN that explicitly uses convolutional and convolutional-transpose layers in the discriminator and generator, respectively. By training this model on the WikiArt dataset, I was able to produce resulting generated images that genuinely embody elements of real artwork.
GeoGuessing With Photo Localization and Deep Learning
Our goal was to utilize a trainable convolutional neural network (CNN) model to predict the geographical location of a set of images. By first thoroughly training the model with Google Street View images, we then put the model to the test by feeding it scraped images directly from GeoGuessr games based in the United States. Our model then decided on which states it believed that GeoGuessr had placed them in geographically.
Contrastive Self-Supervised Image Classification with SimCLR
Implemented a contrastive self-supervision model to learn image representations from unlabelled data and investigate its performance for an image classification downstream task. The overall outlined learning framework is semi-supervised and trained in two stages. First we implemented simCLR to extract image feature representations without using labels. Then, we used a labeled dataset to train a classifier on top of our learned feature backbone for the classification task.
Our research project aims to revolutionize NBA team performance prediction through advanced modeling and analysis of historical and current season data. We seek to understand the factors that influence a team's success and create an accurate prediction model by exploring team and player statistics. Our findings have implications for NBA enthusiasts, sports analysts, team owners, and sports bettors, providing improved decision-making and precise projections of team performance. Ultimately, our research has the potential to significantly impact the dynamic world of professional sports.
Recognizing shapes is an essential task in computer vision. An amalgamation of different application areas rely heavily on shape recognition, including robotics, healthcare, security systems, and assistance for the impaired. My goal with this project is to first provide a procedure for generating a few datasets of abstract 2D shapes (formed using Bezier curves). I then prepare the architecture for a simple convolutional neural network (CNN) to classify said shapes based on complexity.
CelebrityJumble is a Twitter bot that I created in Python. It utilizes Tweepy and the Twitter API along with OAuth to collect and reproduce tweets. On top of this, extensive error handling is needed in order to successfully run CelebrityJumble. I personally have CelebrityJumble on my laptop set to run 7 times a day automatically with Automator and the Unix crontab command. This tweets to the account @CelebrityJumble, which I made for this project.
Weather Scraper is a tool that fetches the current temperature and other useful information of any city in the United States. It's a data scraping project written in Python. Weather Scraper retrieves data using GeoPy, parses it through Beautiful Soup, and finally returns it to the user in a simplified form.
This project visualizes audio. Written in Java, Musical Visualizer utilizes the Processing graphical library with basic drawing and another library called Minim to analyze any audio file. I created and taught children about this project as an Online Instructor with iD Tech Camps.
Opening Night is a top-down game where one player must design a maze of traps for the other player to navigate. Player 1 acts as the trap setter, choosing where to place traps that will slow, stop or divert the other player. Player 2 is the trap navigator who must use limited light to navigate the traps all while being chased by the slow moving Player 1. Created in Unity; written in C#.
Swipe arrows left and right in this fast-paced arcade game! Swype is a unique arcade game where you have to swipe arrows in the designated direction before time runs out! Be careful though, if you swipe the wrong direction, you lose! Created with Android Studio; written in Java.
MindMap is a web application that can create a transcription from a video lecture that is then condensed and compiled into a simple to use and fun word-map diagram. MindMap utilizes the Google Cloud's Speech-to-Text API (through both Python and Java) in order to create a seamless transition in a fraction of the time that it would take to sit and watch the lecture.