{{ hello.world }}

Gurpreet.Singh

I conquer super villains and
make the world a safer place.
I am FatFighter Fork me on GitHub

ABOUT ME

Hello! You can call me Gurpreet/Guggu, or if you are more daring "O ' Captain My Captain" :)

I am a Senior Undergraduate in the Department of Computer Science and Engineering in Indian Institute of Technology, Kanpur (IITK). My broad interests primarily lie in the field of Machine Learning, building graphical models with Approximate Bayesian Inference. I am also interested in Bayesian Optimization, Non-Parametric Models, and Optimization.

In case you are looking for some good music, visit my Youtube channel
or connect with me on any social networking site.

RESUME

My resume can be found here. The latex files are uploaded on my github.

SKILLS

Professional Experience

Goldman Sachs
Summer Analyst
Bangalore, May'18 - Jul'18

  1. Introduce changes in existing models for asset liability gap management for deposits and clearing house initial margin, and
  2. Build a lite calculator for customer margin allocation for proper internalization
  • Understood working of financial firms, along with basic concepts of Asset-Liability Gap (AL Gap) Management 
  • Identified bugs in pre-written code, and augmented features for proper AL Gap Management 
  • Built a waterfall logic for customer margin allocation, taking various parameters into consideration 
  • Built a greedy strategy for margin allocation per stock, improving the run time of the allocation logic
Inmobi
Data Science Intern
Bangalore, May'17 - Jul'17

  • Extracted Features from Ad creative images using OpenCV (in python) and Google Cloud Vision API
  • Analysed Pearson Correlation with the Click Through Rate (CTR) and used variable selection (Weka) to detect explainable features 
  • Created a python server to handle feature extraction and prediction for building suggestions for possible Ad enhancements based on CTR
Exxamm.com
Web Development Intern
Delhi + Remote, Jan'16 - Jul'16

  • Lead architect of the core content engine and front end web interface
  • Designed and developed a dashboard to add and edit questions using PHP and MySQL
Inmobi
Software Engineering Intern
Bangalore, Dec'15

  • Worked in Strategic Advertising for better in-app product discovery and user experience
  • Developed a Curator Tool which scraped and rendered information from the web using python

PROJECTS

Machine Learning

Discrete Variational Autoencoders and Stochastic Block Models
Fall 2018 (Ongoing)
Prof. Piyush Rai
Undergraduate Project

  • Surveyed continuous relaxations to discrete latent variables such as Gumbel-Softmax, Spike-and-Exp, Overlapping, Gumbolt, etc.
  • Implemented GumBolt relaxation for binary latent variables with RBM prior using tensorflow and performed analysis on MNIST dataset
  • Augmented GVAEs with binary latent embeddings to offer interpretable latent representations, imitating mixed membership models
  • Tested the resultant model for link prediction on graph datasets such as Citeseer and Cora and achieved superior results to baseline models
Mixture of Experts and Discrete VAE
Fall 2018
Prof. Arnab Bhattacharya
CS685: Data Mining

  • Proposed a novel model using the VAE framework for clustering in latent space, extending the ideas of the VaDE model
  • Modeled the cluster assignment using a deep neural network, and facilitated fast inference by using Gumbel-Softmax relaxation
  • The proposed model worked better than VaDE on clustering tasks. Analysis was performed on MNIST and Spiral datasets
  • Further extended the proposed model to work as a gating function for Mixture of Experts tasks and achieved performance exceeding that of some naive baseline models
Incremental Neural Networks Training
Spring 2018
Prof. Purushottam Kar
CS777: Statistical and Algorithmic Learning Theory

  • Two layer NNs can be represented as an ensemble of multiple single node hidden layer networks, which can be individually trained using generic boosting methods (gradient boosting), which also afford definite theoretical convergence guarantees
  • Applied gradient boosting to train two layer networks incrementally and studied the convergence analysis under various constraints
  • Implemented incremental NN training in python using sklearn, and applied for Softmax Regression on the MNIST Dataset
  • Applied incremental training as pre-training, along with backpropagation for fine-tuning and observed remarkably better convergence
Survey on Methods For Convex Optimization
Spring 2018
Prof. Purushottam Kar
CS777: Statistical and Algorithmic Learning Theory

  • Surveyed prominent Gradient Descent based techniques (SGD, AdaGrad, etc.) for optimization and perused the convergence bounds of each
  • Reviewed and paraphrased a paper which disproves guaranteed convergence of Adam for even convex objectives using a counterexample
  • Identified inconsistencies within the convergence proof for Adam as an attempt to explain its incorrectness
Clustering and MoE for Arbitrary Shaped Clusters
Spring 2018
Prof. Piyush Rai
CS698X: Bayesian Modelling and Inference

  • Studied VAEs and surveyed clustering models (iWMM, SVAE, VaDE, etc.) for data existing in non-Gaussian shaped clusters
  • Implemented Variational Deep Embeddings (VaDE) in Tensorflow to experiment on MNIST and spiral dataset to learn arbitrary shaped clusters
  • Proposed gating functions based on VaDE and Stick Breaking-VAE for mixture of experts models
Machine Comprehension using Match-LSTM
Spring 2018
Prof. Harish Karnick
CS671: Natural Language Processing

  • Surveyed various models for Machine Comprehension (FastQA, R-Net, Match-LSTM, etc.) and implemented Match-LSTM using Tensorflow
  • Experimented with SQuAD and combated inefficiency of Match-LSTM to apply separate attention mechanisms for different question types
  • Additionally, introduced simple changes to loss function to improve the EM score on SQuAD by a total of over 5\%
Scaling Recommendation Systems using K-Means Clustering
Fall 2017
Prof. Purushottam Kar
CS777: Introduction to Machine Learning

  • Used K-Means clustering to divide users into cliques, and applied Collaborative Filtering independently within each clique
  • Clustered songs based on MFCC features using K-Means and quantified user features based on song clusters from the user’s learning history
  • Applied the model on MSD. Also proposed simple exploration strategy based on song clusters to allow variations in suggestions provided

Systems

CatTalks: A Centralized Video + Text Chat Tool
Fall 2018
Prof. Dheeraj Sanghi
CS425: Computer Networks

  • Developed a web-app for text and video chat using Flask and socket programming on python
  • Login credentials, requests and messages were stored using MongoDB
Jaba Compiler: Java to X86 Assembly Compiler
Spring 2018
Prof. Subhajit Roy
CS335: Compiler Design

  • Developed an end-to-end compiler in node.js for a subset of Java language to compile into x86 Assembly using jison (for parsing)
  • Implemented advanced features such as classes and type casting, along with support for floats. Adjudged one of the best projects
NachOS Operating System
Fall 2017
Prof. Mainak Chaudhuri
CS335: Operating Systems

  • Implemented basic operating system functions (Fork, Join, etc.) on a truncated NachOS code (provided) in C++ programming language
  • Implemented and evaluated performance of algorithms for various scheduling processes and various page replacement strategies
  • Implemented Shared Memory Allocation, Demand Paging and various Page Replacement Algorithms

Miscellaneous

CatTalks: A Centralized Video + Text Messaging Tool
  • Built a webapp for libe video and text messaging
  • Implemented login + register options using Flask routing in python
  • Developed messaging, live video feed and request actions using web-sockets, using JavaScript on the frontend and Flask + Python on the backend
Smart Image Advertising
Develop a web-app for smart advertising using image analysis
  • Developed a web-app with controls to upload an image through url
  • Backend program to detect objects in an image during upload using Clarifai API
  • Objects stored as tags in database, and used to search through products from different e-commerce websites such Ebay, Amazon, etc. using their Affiliate API
Fat.Japan
  • Developed a Japanese Language E-Learning Tool using Angular.js
  • Developed an example based learning platform
Fat.Carousel
  • Developed a JQuery extended plugin for simple embedding of stylish image based carousel
  • Completely responsive, with advanced button and scroll controls

COURSEWORK

I have compiled all resources (such as lecture notes, solved assignments, exam papers, etc.) for most of the courses I have undertaken since the sophomore year here
Course Name Semester/Source Description
ESC101 Fundamentals of Computing I Concepts of Programming in C, along with basic Data Structures and Algorithms
MTH102 Linear Algebra II Basic concepts of linear algebra with a deeper insight into Eigen Vectors and Eigen Values
CS201 Discrete Mathematics III Introduction to Proofs, Combinatorics, Graphs, and Probabilty and Number Theory
CS202 Logic in Computer Science III Basics of Verifying and Proving computer algorithms using Logics
ESO208 Numerical Methods in Engineering III Bsics methods of Regression, Splines and Function Approximation, along with Multi-variate Equation solving
ESO207 Data Structures and Algorithms IV Discussion of different data structures and algorithms of Competitive Programming
CS220 Computer Organization IV Detailed analysis of Computer Architecture, Assembly Languages and Parallel Processing
ML101 Course in Machine Learning by Andrew NG Coursera Brief introduction to topics and algorithms used in machine learning
MSO201 Probabilty and Statistics IV A look into Probability and Probabilistic Analysis of different Distributions
CS330 Operating Systems V A brief introduction to the design of modern Operating Systems and their working
CS345 Algorithms II V Advanced look into algorithms, solving problems using algorithms and analysis of algorithms
CS340 Theory of Computation V A brief discussion on language models and introduction to the theory of computational complexity
CS771 Introduction to Machine Learning V Introduction to various techniques in Supervised and Unsupervised Machine Learning and introduction to Probabilistic Machine Learning
CS772 Probabilistic Machine Learning Audit Probabilistic Analyisis of Various Machine Learning Algorithms and brief introduction to various Sampling and Approximation Techniques
CS345 Compiler Design VI Introduction to concepts in Compiler Designing and overview of parsing programming languages
CS671 Natural Language Processing VI Introduction to Natural Language Processing. Discussion of various text representations and learning algorithms for NLP tasks
CS777 Statistical and Algorithmic Learning Theory VI Introduction to Statistical Analyisis of Machine Learning algorithms. Discussion of convergence bounds and complexity classes
CS772 Probabilistic Modelling and Inference VII
CS425 Computer Networks VII
CS685 Data Mining VII