go-deeper

I love to build. Currently, most of my time is spent working on PremSQL and contributing to existing open-source projects.

During my college days (mostly during my 2nd to 3rd year), I worked on Graph Machine Learning. Here are two key projects from that time that are worth mentioning:

💡 YogaPoseGNN

(Last major update: Jan 23, 2023)

The idea was simple: I used Graph Neural Networks (GNN) on human pose estimation to classify different yoga poses in real time.

Alt

The motivation behind this project came from the fact that Convolutional Neural Networks (CNNs) are highly accurate for image and video (which can be thought of as a stream of frames) tasks. However, they are resource-intensive, especially when running on a CPU with 4-8GB RAM.

So, I developed YogaPoseGNN, where I used MediaPipe to perform pose estimation and extracted body keypoints. These keypoints can be represented as a set of nodes and edges, where the nodes are the spatial points (x, y coordinates), and the edges have properties like angle and length. I trained a Graph Attention Network on a set of training data images.

I achieved an accuracy of 89% on the test set, and the system had low latency, working in real time with very limited computational resources. The key reason behind this performance was that the input space became a simple 2D matrix (node and edge features) rather than a 3-dimensional (Height x Width x Channels) input space, which significantly reduced the memory footprint while still preserving accuracy through the use of GNNs.

The best part? This approach can be transferred to other image or video-frame classification or regression tasks as well. Special mentions to JavlinGNN (my BTech minor project) and SignLangGNN, which were used to predict javelin throw distances and to classify American Sign Language gestures, respectively.

🪭 MultiHead VGAEs

(Last major update: Aug 4, 2022)

Alt

This was a research project I worked on with Dr. Rahee Walambe. The goal was to improve existing architectures for link prediction in citation graphs.

Link prediction is essentially determining the probability of two nodes being connected by a link. To excel in this task, you need powerful and representative embeddings.

We approached this using a generative model—specifically, a Graph Variational Autoencoder (VGAE). Here's how the architecture was designed:

The model achieved excellent results, outperforming previous models for link prediction tasks. We achieved AUC and AP scores of:

This represented an average improvement of 2% in AUC and 3% in AP scores.

Note: One limitation of this approach is that it's transductive, meaning it works only for a single graph structure where validation nodes still pass messages to training nodes. In contrast, an inductive approach would use a completely different graph structure for the validation set. That wasn't the focus of this project, though.

PS: Due to some issues during the COVID period, we faced delays in submitting this to a journal, so the paper hasn't been published yet.

Projects which were fun but did not work out

Well these two were not the ONLY thing I was building and became successful. There were lot of things I built (even now) but eventually it was either not maintained or we discontinued building them.

🕯️ Rewards

Something I still regret and am hugely proud of. I closely collaborated in this project with my friend Pratyush (the main creator of this project), where, the idea was to make a very simple Kaggle for RL like platform (or more accurately light weight Amazon DeepRacer.

Alt

We simulated a RL-controlled car-racing game and a platform where user can write a simple reward function (consisting of simple if-else statements / loops etc) and adjust hyper-parameters of neural network to make the car learn to drive some certain path.

We also took a hackathon for freshers (1st-2nd years) in our college where more than 250+ people competed in real time. They not only learned the basics of RL and neural network but it was overall a super fun experience. Being the creators of this, makes us super proud overall.

The regret? Well there were two regrets, we did not got the time to film this, since we (along with some juniors) were busy managing people and we did not continue the project after this.

🔬 Some more honourable mentions: