Tutorial: Graph Neural Networks for Social Networks Using PyTorch

I posted a step-by-step tutorial that gives some hands on practice on Graph Neural Networks (GNNs) through a practical example using PyTorch framework and its geometric deep learning extension library "PyTorch Geometric".
I aimed to give some insights about what GNNs are, what type of problems they may solve and how graph datasets may look like. 
The tutorial works on a social network dataset collected from GitHub. The post also shows how to construct graphs and visualize them using code and how to construct and train a simple GNN model for node classification task based on convolutional GNN . Here is the link.


My Talk in IEEE SmartGridComm 2020: 
Generative Adversarial Networks & Transfer Learning for Non-Intrusive Load Monitoring in Smart Grids

Non-intrusive load monitoring (NILM) objective is to disaggregate the total power consumption of a building into individual appliance-level profiles. This gives insights to consumers to efficiently use energy and realizes smart grid efficiency outcomes. While many studies focus on achieving accurate models, few of them address the models generalizability. This paper proposes two approaches based on generative adversarial networks to achieve high-accuracy load disaggregation. Concurrently, the paper addresses the model generalizability in two ways, the first is by transfer learning by parameter sharing and the other is by learning compact common representations between source and target domains. This paper also quantitatively evaluates the worth of these transfer learning approaches based on the similarity between the source and target domains. The models are evaluated on three open-access datasets and outperformed recent machine-learning methods.


My Talk in  Medico challenge: Generative Adversarial Networks for Automatic Polyp Segmentation 

This paper aims to contribute in bench-marking the automatic polyp segmentation problem using generative adversarial networks framework. Perceiving the problem as an image-to-image translation task, conditional generative adversarial networks are utilized to generate masks conditioned by the images as inputs. Both generator and discriminator are convolution neural networks based. The model achieved 0.4382 on Jaccard index and 0.611 as F2 score. https://multimediaeval.github.io/editions/2020/tasks/medico/ 


My Talk in Confer Conference :   An Empirical Analysis of Transfer Learning for Generative Adversarial Networks 

Generative adversarial networks framework immensely attracted the machine learning community attention in the recent years. GANs have succeeded in generating realistic-looking data from noise and have countless applications. On the other hand, Transfer Learning is a smart way that aims to enhance machine learning models in the case of scarce data. The main intuition behind transfer learning is to train models on a plenty of data that is “not” our targeted one but has some similar attributes to it. Then transfer learning in models that contains single networks, such as CNNs, are implemented by sharing the first layers (from the input side) of the model between source and target domains and initialize other layers then retrain the model on our scarce target data. This allows the model to have a good start when learning on the target data and achieve better results than if we trained it from scratch on the target. Now, GANs framework consists of two networks, a generator and a discriminator, and a legit question here is: which network and which part of that network contains the transferable features and hence parameter? Should we fine-tune or freeze the shared parameters? I am trying to answer this specific and direct question by showing empirical results of a series of experiments that I designed based on conditional GANs framework. https://2021.confer.no/program/?tab=speakers


CarbsCal Dataset Collection Kickoff

People with diabetes, especially Type 1 (T1D), which is also known as insulin dependent diabetes, have a full-time job just by having such disease. They work 24/7 to control their blood sugar level to avoid short- and long-term complications. Literally every moment, they must take critical decisions that range between how much insulin to give themselves to lower some high blood sugar or should they eat some food with carbohydrates to boost up a low sugar level; given their blood sugar value at night, should they sleep safely or should they set up an alarm after 4 hours to avoid going in hypoglycaemia (hypo). 

Among these, the most frequent and tedious activity a T1D patient must do is to precisely “calculate” the carbohydrates content in a meal that they are intending to eat. In fact, when a T1D patient would like eat anything, a “mathematical calculation” should proceed that to know how much carbs in the meal and how much insulin must be injected into their body to maintain normal blood glucose level after eating.

To perform the carbs calculation, one must know: What the food is going to be eaten, is it potato chips, milk, juice, popcorn, ...? How much % of the carb in that type of food, is it 15% 10 per 100 ml, ...? How much grams/liters of weight/volume will be consumed? After calculating the correct carbs value, this value will be fed into the insulin pump system to both automatically calculate and inject the right amount of insulin; or in the case of not using insulin pumps the patient can do an extra work by calculating the amount of insulin and inject it to the body using a syringe or an insulin pen.

Now being that said, “we” think that part of this repetitive task can be easier and less tedious if it can be handled by some artificial intelligence. I say “we” as I have my assistant in this work, who is my 6 years old daughter Leen. I believe that Leen is a restless girl who does not like to spend time on things she does repetitively, she likes to spend more time on learning and interacting with new things. She was diagnosed with T1D last year and this why those calculations became repetitive and boring for her in this year! In our mind, we think of an app that tells us how much carbs in a meal that we are going to eat right now, only from its photo.

Data is an essential part of the task and from where we kickoff our mission. We tried to look if there are available datasets that are suitable for doing such trial, but we could not find one. This why we decided to do it the harder way and collect our own dataset. That would be also helpful to other people who have a similar idea, maybe we can push this line further. We refer to this dataset as CarbsCal for now.

Our status is that we are preparing our setup where we will capture photos. We will continuously post our progress here!

Leen holds a small candy of 5 carbs in her hand.

Server IP: