Open-Source Projects



Interpreting Deep Neural Networks
Applying Interpretation Methods to Understand and Improve CNNs
Understanding why neural networks make certain predictions is a difficult job considering the sheer number of highly non-linear interactions between neurons. In this work, I explore several interpretation methods that can shine light onto why a network does what it does. In particular, I apply this to a medical task (diagnosing diabetic retinopathy) with the hope of improving understanding of neural network models used in the medical field.

RL Procgen Challenge
Placed 4/704 participants generalising to procedurally generated environments.
Reinforcement learning algorithms tend to require extensive amounts of experience in order to learn in a particular environment. Additionally, they tend to memorize particular environments, like a platformer level, in order to succeed. The Procgen benchmark challenges participants to improve on generalisation and sample efficiency over several procedurally generated tasks. In this challenge, I achieved 4th place out of 704 participants in generalisation and 9th in sample efficiency, with a mean normalized reward of 0.72 across environments. Read the PMLR workshop paper here.

Watch and Learn Hackathon 1st Place
Multimodal AI for lab protocols and automation.
Winner of Bio-AI hackathon hosted by Entrepreneur First for building a multi-modal LLM lab assistant capable of standardizing protocols and automation.

Mined for Change
A website allowing in-browser cryptocurrency mining for Effective Altruism.
Mined for change is a website that allows users to mine cryptocurrency in their browser. The funds generated by the mining are automatically directed to the Effective Altruism Foundation's top rated charity - the Against Malaria Foundation. Users do not have to pull out a credit card to give and can give at any time of the day. Together with thousands of other people, this method could raise thousands of extra dollars for charity.

NAND2Tetris
Building a Computer From NAND Gates
NAND2Tetris is an online course that goes through building a basic computer from scratch using NAND gates. In the first half, the hardware components (logic gates, memory, ALU, CPU) are built using a hardware description language. In the second half, the software (assembler, translator, VM, compiler, OS) is created, culminating in writing an application for the computer (I wrote Game of Life.)

APTOS Kaggle Competition
Diagnosing Diabetic Retinopathy using ML
In this Kaggle competition the challenge was to diagnose diabetic retinopathy on a scale from 1-5. The challenge was particularly difficult due to the variation in the dataset and the subtlety in the diagnoses (including incorrect diagnoses). In this challenge, I trained an ensemble of EfficientNets on both the classification and regression objectives to achieve 63rd place out of 2931 participants.

sliceofpy
Model Slicing for 3D Printing
sliceofpy is a command line 3D object slicer. The slicer converts input .obj files into output Gcode files by slicing the 3D model into layers. The Gcode files can be executed on a 3D printer to print the objects. The slicer is configurable by several command line arguments or it can be imported as a script.
