icon

Andrew Shen

profile

Hello!

I am a Machine Learning master's student at Carnegie Mellon University. I am excited about Deep Learning, robotics and software. I have experience in ML engineering, web development and data analytics.
I recently worked as a Quantitative Researcher at Akuna where I interned before. I worked on developing new prediction systems using neural networks and optimising existing trading strategies. Before that, I had a few internships as an Android developer, software engineer at the Melbourne Space Programand Bioinformatics intern at WEHI.

I have done research with Dinesh Jayaraman at the University of Pennsylvania's GRASP Labworking on Safe Reinforcement Learning and imitation learning, resulting in a paper in AAAI and ICML. I have done an NLP research subject at the University of Melbourne's NLP group on discourse parsing - the final paper is submitted to the CODI workshop.

STEM education is important to me. I organised and ran technical workshops in my undergrad as the education officer at CISSA. During Melbourne's 100-day lockdown in 2020, I also started a free tutoring service with other university high-achievers for high school students during COVID lockdowns.

Projects 🚀

Melbourne Space Program

Developed a terrain mapping system for Monash's autonomous Mars rover. Mapping perception data from sensors like LIDAR and cameras into a map of traversable and untraversable areas is a key problem in autonomous driving. Led the perception team to explore classic algorithms and Neural Network enabled systems. We tested neural point cloud (3D sensor data from a LIDAR sensor) classifiers, VoxelNet and PointCloud++ on standard benchmarks. However, we concluded that the lack of relevant datasets with rugged terrain and the difficulty of obtaining and labelling data ourselves during COVID lockdown meant we should continue with a classic algorithm. We based our system on Stanford's self-driving system Stanley that won the DARPA grand challenge. We developed a real-time mapping system in Python with the ROS framework. We also developed a simulated world in Gazebo to test our system. A visualisation of our system's outputs in the simulation is shown.

gazebo.gif

PALPA

PALPA is a portfolio platform designed to showcase your skills and projects. Inspirations include LinkedIn, Notion, Dribbble, Medium. Built with Ayesha Ahmed, Peter Skaltsis, Lex Li, Peter Shi. PALPA is deployed with Vercel, you can visit it at PALPA.

I worked on the editor interface, including draggable elements, and custom commands to insert special components like what you see in Notion. The editor is persistent, automatically saving changes to local storage before syncing with our backend database. Created API endpoints for uploading images to AWS S3, including integration with the Unsplash image provider to display stock photos. Worked extensively with React, NodeJS, Express, FaunaDB and TailwindCSS.

palpa-combination.png

Mask Detector

Flutter app for detecting masks in photos. Performs classification in two stages: a local model draws bounding boxes around faces, the faces are cropped and classified by a custom model on the cloud. The custom model is trained on a mask detection dataset and deployed on Google cloud with a REST API. I developed this app as part of a Flutter workshop with Google DSC.
Recording of the workshop Code

flutter-app.png

Super Smash Bros AI

Trained a Super Smash Bros AI using Reinforcement Learning. Unlike previous works on a Super Smash Bros AI, we restrict our AI to receive the same pixel input that a human player sees. We used the Nintendo Emulator Mupen64 and trained our AI to play against the in-game bot. We dockerised the environment and used AWS cloud compute to run our experiments. We compared the performance of popular RL algorithms PPO and DQN with prioritised experience replay, presented in my final project report for the CIS419 course. The environment dynamics proved to be difficult, due to the constant movement and panning of the camera view. However, our AI found success by exploiting the in-game bot, shown is an example of our AI achieving a knockout by standing at the very edge of the platform. Code

smash-dk.gif

PacMan AI

Built a PacMan AI using A* search, written in C. I also implemented an iterative pruning search algorithm. The final AI far outperforms my PacMan skills. Code

pacman.png

HackBall

A 2D multiplayer dodgeball game, inspired by HaxBall. Developed during COVID lockdown as a way to have fun with my friends. The frontend is built with pure JavaScript. Networking is done through SocketIO and Express, with support for multiple rooms. The game is deployed on Heroku. Code

hackball.png