About

I am currently a deep learning algorithm engineer, graduated with a master's degree (MS) in Electrical and Computer Engineering (ECE) from Carnegie Mellon University and a bachelor's degree (BS) in Electrical Engineering (EE) from National Taiwan Ocean University.

I conducted two machine learning independent research projects in college, the first about Object Detection and the second about Anomaly Detection; At CMU, I deepened and broadened my knowledge and skills in machine learning with coursework, group projects, and research internship experiences.

I am looking to expand my network, so feel free to connect & contact me on LinkedIn via the button below on my homepage

  • Programming Languages: Python, C, Java, Haskell, C++, Matlab
  • Operating Systems: Linux, Microsoft Windows
  • Technical Tools: Docker, Git, bash, Android Studio, Amazon EC2
  • Scientific Libraries: PyTorch, TensorFlow, NumPy, SciPy, Pandas, Scikit-Learn, FastAPI, OpenCV, JavaFx, PySpark

Work Experience

Research Assistant
[Jun 2021 - Aug 2021]


At CMU, I assisted in one of Dr. Kun Zhang’s research projects about the causal representation of multimodal data for my summer internship.
  • Studied state-of-the-art research work in causal representation & multi-tasking learning and summarized my findings
  • Collaborated with others to study theoretical frameworks for the causal representation of multimodal data
  • Scheduled and attended regular meetings with professors
  • Wrote a report to provide a brief overview of the fundamental concepts & some high-level ideas in multimodal data fusion & multi-task learning for causality

Research Project

Automatic Fish Detection and Tracking in Underwater Videos


On Detecting Rare Patterns

  • Studied and implemented from scratch the algorithms to replicate the experiments in Finite Sample Complexity of Rare Pattern Anomaly Detection
  • Analyzed model weaknesses, leading to the creation of an improved model capable of addressing imbalanced datasets, thereby surpassing other prominent outlier detection algorithms like GMM, PPCA, LSA, LOF, one−class SVM, and Isolation Forest, on categorical data

Scara Robot Arm

  • Designed and constructed 3D printed parts along with ramps 1.4 controller board powering an Arduino board mega 2560, two 42-step motors, and a servo to build a mini programmable robot arm that can draw and write via G-code programming
  • Demonstration

coursework

Introduction to Deep Learning (Python + Pytorch)
A character-based attention model with teaching-forcing method for retrieving attention plots [Link]
A regularized LSTM model for next word prediction and text generation [Link]
A stacked LSTM model concatenated with a CTC beam search decoder for speech recognition + RNN & GRU & CTC self-implementation [Link]
A self-implemented ResNet50 model for face classification and face verification + CNN self-implementation [Link]
A neural network predicting phoneme state labels for Mel spectrogram frames for speech recognition + MLP self-implementation [Link]
Optimization (Python)
A self-implemented Reciprocal thresholding iterative model for sparse gray-image reconstruction optimization problem [Link]
Advanced Programming Concepts in Java (Java + JavaFX)
A self-designed multi-user chat app enabling multiple computers to connect to the same chat room for the exchange of messages, encrypted text files, and images [Link]
A restaurant service simulator employing multi-threading in Java [Link]
A self-designed math calculator app that follows order of operations rules [Link]
A financial calculator app [Link]
Software Design for Visual Environments (Java + Android Studio)
A self-designed Family Relationships Learning app for children to learn the family relationships via a visualized family tree and tests [Link]
A DuckHunting game app where users can shoot from a cannon at a duck flying across the screen with sound effects [Link]
A CandyStore app simulating a cash register using SQLite to store data and manage relational databases [Link]
A MortgageCalculator app employing shared preferences mechanism to persist data for users from their last use [Link]
A Puzzle game app allowing users to move the pieces by touches, swipes, and multiple taps [Link]
A TipCalculator app automatically updating the results whenever users alter their inputs [Link]
A Tic-Tac-Toe app allowing users to keep playing the game by reusing View object [Link]
Introduction to Computer Systems (C)
A web proxy server as an intermediary between multiple clients and the internet server for accessing web resources and caching it for furture use [Link]
A Linux shell program as an interactive command-line interpreter for running programs on behalf of users, supporting job control and I/O [Link]
A cache simulator simulating the behavior of a cache with arbitrary size and associativity [Link]
A dynamic storage allocator with self-implemented malloc, realloc, calloc, and free functions [Link]
Computational Problem Solving for Engineers (Python + C++)
A function supporting Huge square matrices transposition using OpenMP for parallel programming [Link]
A program analyzes Lorenz attractor chaotic behavior using HTCond, PySpark, and Bridges-2 at PSC [Link]
Algorithms and Data Structures (C++)
A generic class simulating map in STL that provides operations, including find, insert, erase, indexing operator, empty, and clear [Link]