A collection of projects I worked on that is separate from my full-time job.
Machine Learning Paper Replications
Stealthy and Efficient Adversarial Attacks against Deep Reinforcement Learning
- GitHub link: github.com/aayn/seaadrl-pytorch
- Replicated the results from AAAI ‘20 paper “Stealthy and Efficient Adversarial Attacks against Deep Reinforcement Learning.” [Sun, Jianwen, et al. 2020].
- Extended the results by adding adversarial examples while training to make it more robust. This led to 5% performance improvement on Atari Pong.
Combined reinforcement learning via abstract representations.
- GitHub link: github.com/aayn/crar-pytorch
- Replicated the results from AAAI ‘19 paper “Combined reinforcement learning via abstract representations.” (CRAR) [Francois-Lavet, Vincent, et al. 2019].
Robot Motion Planning
- GitHub link: github.com/aayn/robotic-motion-planning
- Generated a configuration space for the given environment and implemented path planning algorithms like Dijkstra’s SPF, Rapidly-exploring Random Trees (RRT), Probabilistic Roadmap (PRM) and Voronoi diagram-based.
Underwater Object Detection and Control
- Implemented a specialized version of YOLOv3 deep learning object detection algorithm, and control with ROS for an autonomous underwater vehicle (AUV).
Parallel Computing on CUDA and Supercomputer
- Implemented fast matrix multiplication by optimizing GPU thread and memory usage. The resulting program multiplied large matrices more than 800x faster than the naive matrix multiplication on a single CPU core.
- Implemented cardiac signal simulation (Aliev-Panfilov) on a supercomputer using MPI. Optimized the program by minimizing communication costs and making effective use of the memory hierarchy of registers, caches and main memory.
Autonomous Vacuum PiCar
- GitHub link: github.com/aayn/vacuum-picar
- Designed and implemented software and algorithms for robot car to cover a given area.
- Incorporated techniques from robotics (path planning, subsumption architecture, image-based visual servoing, configuration spaces, SLAM) and principles from software engineering (DRY, single responsibility, KISS).
Distributed Conway's Game of Life
- Implemented a distributed version of Conway’s Game of Life using C++ MPI.
Ethereum Voting DApp
- Designed and implemented an anonymous voting DApp on Ethereum written in Solidity
Ultimate Tic-Tac-Toe Bot
- Built an Ultimate Tic-Tac-Toe bot to play better than human expert-level. Algorithms used: A* search and alpha-beta
pruning.