Staff design engineer with expertise in developing reinforcement learning algorithms to automate analog IC design process. Additionally, I have worked on side projects pertaining to other areas of deep learning such as NLP and computer vision -- some of which are highlighted in this repository.
Relevant Course Work: Advanced Analog Design, Power Electronics, Deep Reinforcement Learning, Deep Learning for NLP, Deep Learning for Computer Vision, Advanced Robotics, Intro to AI, Intro to Machine Learning, Algorithms & Data Structures, Software Fundamentals for Engineering Systems
- Transformer based networks such as BERT and GPT as well as traditional LSTM based networks
- Improve inference performance using graph optimization and weight quantization
- CNN architectures such as AlexNet, VGGNet, GoogLeNet for image classification as well as object detection using YOLO and SSD
- Semantic segmentation using Fully Convolutional Networks (https://amitp-ai.medium.com/fcn-571881788e70)
- Synthesize new images using Generative Adversarial Networks (GAN) and Variational Auto Encoders (VAE)
- Dynamic Programming, Bayesian Optimization, Thompson Sampling, Monte-Carlo (MC) learning
- Temporal Difference (TD) learning: SARSA, Q-Learning, Expected SARSA, Deep Q Network (DQN), Double DQN
- Policy Gradient Methods: Advantage Actor Critic (A2C), Deep Deterministic Policy Gradient (https://medium.com/@amitp-ai/policy-gradients-1edbbbc8de6b)
- Text pre-processing methods such as Tokenization, Stemming, Lemmatization, etc
- Traditional feature extraction methods such as bag-of-words, TFIDF, word embeddings like word2vec, Glove, etc
- Deep learning based models for NER, POS, Sentiment Analysis, Dependency Parsing
- Advanced deep learning models for Text Summarization (https://github.com/amitp-ai/Text_Summarization_UCSD)
- Machine Translation and Question-Answering System (https://github.com/amitp-ai/CS224n_Stanford_NLP)
- Trained a robot to pick the maximum number of good bananas while avoiding bad bananas.
- Received a reward of +1 for picking a good banana and -1 for picking a bad banana.
- State augmentation by including previous observations to transform the problem from POMDP to MDP.
- Trained the agent (end-to-end) from raw pixels to q-values using CNN based double DQN learning algorithm.
- For faster training, batch normalization technique was used.
- Trained using PyTorch on Google Cloud, achieving a 100-episode average reward of 12.
- Input text was first pre-processed followed by data wrangling and data exploration.
- Thereafter experimented with various encoder-decoder type of models using LSTM, attention based LSTM, transformers, and memory efficient transformers. Memory efficient transformers performed the best with Rouge-1 and Rouge-2 scores of 38.3 and 13.3.
- Productionized using a Docker container deployed on an AWS EC2 instance and served using a Flask based API.
- As part of Stanford’s CS224N’s final project, I experimented with a few different architectures for this task.
- Using Bi-Directional Attention Flow (BiDAF) network, achieved an F1 score of 62 on the validation set.
- Then added character level embeddings (in addition to word embeddings) to BiDAF and achieved F1 of 65.
- Thereafter built the transformer based QANet to further improve the F1 score to 70.
- Lastly used a pretrained BERT network to further improve the F1 score.