Projects
Automatic Curriculum Learning with Gradient Reward Signals
Collaborated with Junsang Yoon on a research project looking into using student gradients as a reward signal for teachers in the context of automatic curriculum learning; utilized gymnasium environments (PointMaze, AntMaze, and AdroitHandRelocate) along with soft actor-critic and policy gradient algorithms to conduct experiments
Can Custom Models Learn In-Context? An Exploration of Hybrid Architecture Performance on In-Context Learning Tasks
Collaborated with Nelson Lojo, Kesava Viswanadha, Christoffer Grondal Tryggestad, Derrick Han Sun, Sriteja Vijapurapu, August Rolfsen, and Anant Sahai on a paper exploring the ability of GPT-2, Llama, and Mamba hybrid architectures to perform in-context learning
Can Transformers Learn Sequential Function Classes In Context?
Collaborated with Emma Guo, Evan Hu, Reya Vir, and Ethan Hsiao on an investigation into the ability of transformers to in-context learn sequential function classes (recursive linear transformations, recursive randomly-initialized neural networks, etc.) as well as their robustness to label randomization during inference time
Coup Reinforcement Learning Agent
Implemented the deep Q-Learning reinforcement learning algorithm to train an agent to play the board game Coup; Utilized PyTorch to train the Q-Network and Matplotlib to visualize the results
Fun With Diffusion Models
Deployed the DeepFloyd IF diffusion model from Stability AI to sample new images, denoise existing images, run image-to-image translation, perform inpainting, and generate visual anagrams / hybrid images; implemented a diffusion model with a U-Net architecture from scratch to generate handwritten digits by training on the MNIST dataset
[Auto]Stitching Photo Mosaics
Automatically generate image mosaics given a set of images with a shared center of projection by generating homographies from detected correspondence points
Face Morphing
Given correspondence points between faces, calculated warping and averaged pixel values to create morph sequences between arbitrary faces
Fun with Filters and Frequencies
Applied various filters to process images, creating gradient magnitude edge images, sharpened images, hybrid images, and multiresolution blended images
Images of the Russian Empire
Utilized image processing techniques to automatically align and crop the photographs (with red, green, and blue filters) taken by Prokudin-Gorsky in the early 20th century of the Russian Empire
WhereToEat Chatbot
AI Chatbot created by team of 4 in the Cal Hacks AI Hackathon designed to assist with the restaurant selection process; the frontend was created with Next.js and deployed through Vercel; the backend was created with Python, utilizing the OpenAI and GoogleMaps APIs
Algorithm(s) and Complexity for Condorcet Consistent Voting
Collaborated with Amar Shah on a literature review of complexities for various Condorcet Consistent voting systems such as Dodgson, Kemeny, and Ranked Pairs; potential applications to simple stable voting
NP Hard Team Assignment
Researched solutions to the max k cut NP hard problem to design an algorithm to approximate a solution to a modified graph NP hard problem given hundreds of student inputs
CS61CPU
Designed and pipelined a CPU capable of running RISC-V Assembly instructions
Mancala AI
Implemented the Mancala board game in Java with multiple game modes, utilized the minimax algorithm with alpha-beta pruning to program an AI with an adjustable depth
Gitlet
Implemented a version control system using Java with functionality for commits, branches, merges, and checkouts
History of the Normal Distribution and Central Limit Theorem
Researched the history of the normal distribution and central limit theorem; Authored a paper explaining the historical context behind the development of key results in probability theory