Efficient and Expressive Counterfactual Explanations for Graph Neural Networks
Finding counterfactual graph edits that explain Graph Neural Network predictions by leveraging reinforcement
learning to approximate the discrete optimization of where to add or delete nodes within an initial graph.
Technologies used:
- PyTorch
- PyTorch-geometric
a COVID-19 X-Ray Image Classification Using Transfer Learning and Contrastive Learning
Development of a decision fusion model that jointly exploits transfer learning (three pre-trained CNN models) and contrastive learning (Siamese Neural network) techniques to detect the existence of COVID-19 virus in patients' lungs from chest X-ray images.
Technologies used:
- PyTorch
- Jupyter Notebook
- Google Colab
GitHub
Conversation Entailment
Development of a BERT-based encoder-decoder model that predicts whether a hypothesis sentence entails a conversational premise. Conversational premise is a script of multiple turn-taking dialogues between two agents.
Technologies used:
- PyTorch/ Hugging Face
- Jupyter Notebook
- Google Colab
Github
Part-of-Speech (POS) Taggers
Implementation of two Part-of-Speech tagging systems: one is based on the first-order Hidden Markov Model which uses Viterbi algorithm to assign POS tags to words, and another that is based on the popular encoder-decoder models which uses BiLSTM as it's encoder and a softmax layer as it's decoder.
Neural Layer Implementation
Implementation of the forward and backward pass of the following neural network layers from scratch: (temporal/regular) fully-connected layer, ReLU, convolutional layer, softmax loss layer, and max-pooling layer. The implemented layers has then been combined to build image classification and image captioning models.
CKY parser
Implementing a Cocke–Younger–Kasami parsing algorithm to generate phrases based on context-free grammars.
Atalk (Course-defined Programming Language) Compiler
a compiler for Asynchronous Talk (ATalk), an actor-oriented programming language in which actors are concurrent entities with one execution thread and one mailbox.
Technologies used:
- ANother Tool for Language Recognition (ANTLR)
- Java
- SPIM MIPS Processor Simulator
Parallelized Fully-connected Neural Network
Utilizing the multi-threading and synchronization structures of C++ to implement a parallelized fully-connected Neural Network.
Design and Implementation of 16-bit MIPS Processor with 2-way L1 Cache
a 5-stage pipeline custom MIPS core with static branch prediction, 5 cycle memory access, 2-way L1 cache with 1-bit LRU, and full forwarding.
Technologies used:
- Verilog Hardware Description Language
- Quartus II
- SignalTap II Logic Analyzer
- Altera DE2-115 Development and Education Board Altera Cyclone IV FPGA logic
Design and Implementation of a Neural Network Accelerator
Technologies used:
- Verilog Hardware Description Language
- ISE Design Suite
- Xilinx FPGA