Project 1: Generative Adversarial Networks and Transfer Learning for Non-Intrusive Load Monitoring

Project 1.A : GAN-NILM

Generative Adversarial Networks for Non-Intrusive Load Monitoring

Project Task: To perform NILM

In this project, I am worked on what is called the Non-Intrusive Load Monitoring (NILM), also called load disaggregation. This mouthful name is simply a system that takes a single measurement which represents the total consumption of a building (e.g. smart-meter) and tries to figure out which appliance is On or Off at each time step.

So, the input to a NILM system is nothin more than the total electricity consumption and the output is the appliance level consumption information. This information can help to give insights to users to optimize their energy consumption.

My Action: Developed GAN-NILM

I developed a GAN-based model for NILM. I built upon GANs because of its  success computer vision field and I hypothesized that this would translate to producing accurate realistic-looking appliance signatures which will increase the accuracy of the NILM output, and it did!! Also GANs framework does not have “explicit loss”, meaning that it does not “directly” compare the real data with the generated data, however the “discriminator” network learns this loss function “implicitly“ which allows the model to learn loss functions that are more complex than for example the mean square error as most of the NILM state-of-the-art uses.

Result: GAN-NILM outperformed others

GAN-NILM outperformed two main solid benchmark machine learning based models, that are the denoising autoencoders and a convolutional neural network based model. A "catch" here, is that there are many other methods in the literature, but those two are the most prominent ones. Below, I show some successful outputs and some failures of GAN-NILM

Some Good Examples  😊

Some Bad Examples  😏

Project 1.B: TrGAN-NILM

Transfer Learning and GANs for Non-Intrusive Load Monitoring

Task: Generalizing GAN-NILM

This part of the project addresses an interesting practical case which is  when the NILM system provider has trained GAN-NILM models on some buildings data and wants to use them to disaggregate other buildings. 

In a concise expression, I aim to achieve generalizable models. This is practical because collecting appliance level training data is expensive and can be available for limited number of buildings.

Think about a company that trained models on buildings in Oslo, Norway and wants to deploy in NY city, US. Then the question is: to what extent Oslo models can be used in NY city.

Action: Developed TrGAN-NILM

I developed solutions based on transfer learning approach . Applying transfer learning to GANs is complicated already, in the sense that GANs have two networks and we can not intuitively tell which network and which part of that network holds the generic features to transfer and which holds the specific features to retrain. Even though, I came up with a way to find out that, at the end, transfer-learning-by-parameter-sharing is sensitive to the similarity  between the domains this why I came up with this  second model which I called TrGAN-NILM. 

The intuition behind this model is to learn a compact common representation between the source and the target domains.

The idea is that the generator takes “both” the source and the target domain aggregate measurements as inputs and tries to map to the appliance measurement. I introduced an auxiliary discriminator function which accesses the feature representations in the generator function and its task is to minimize the statistical distance between the features of the target domain and the source domain at this layer .


Result: TrGAN-NILM showed far less sensitivity to domains similarity

Server IP: