We propose to mitigate the problem stated in the previous section by using a *generative neural model* for appliance load sequence generation. We pre-train this model using a Generative Adversarial Network (GAN) (Goodfellow et al., 2014) architecture and integrate it into the Neural NILM disaggregation process.

The functional principle of GAN is depicted in (Fig. 3). GAN consists of two neural networks, a generator *G* and a discriminator *D*. During disaggregation, we want *G* to generate load sequences *L*_{a} of a specific appliance *a*. Thereby, the distribution of the generated appliance load sequences *L*_{a} should match the distribution of measured appliance load sequences \( {L}_a^M \) as close as possible. For the generation process, *G* uses a source of randomness *Z* to express the variations in the distribution of \( {L}_a^M \). The dimensionality of *Z* should be high enough to portray all the variations that real appliance load sequences may exhibit. We empirically choose *z* = 100 as an upper bound for the number of variance dimensions. During training, the input for the discriminator *D* are real appliance load sequences observed in the training data (\( {L}_a^M \)) as well as appliance load sequences generated by *G* (*L*_{a}). *D*’s objective is to determine whether the load sequences were drawn from the training data (*V* ≔ 1) or generated by *G* (*V* ≔ 0).

If the GAN training converges, both *D* and *G* internalize the distribution of the training data implicitly. Then, *Z* can be interpreted as a latent representation of an appliance load sequence. *G* and *D* are trained simultaneously in an unsupervised manner, where they play a minimax game against each other, hence the name *Adversarial Networks*. The objective of *G* is to deceive *D*, i.e. to generate data samples which make *D* believe that they were drawn from the real data set. *D*, on the contrary, strives to classify the data samples generated by *G* as *fake* samples and the data samples drawn from the training data set as *real* samples.

To provide an intuition for the proposed approach, we apply the *manifold assumption* for appliance load sequences: We assume that reasonably-shaped appliance load sequences span a connected low-dimensional subspace (manifold) embedded in *ℝ*^{S}, where *S* is the length of the load sequences we want as output from each disaggregation step.

The training of the generator in the GAN architecture ensures that the output of the generator is located on the manifold of appliance load sequences with high probability. As we integrate the pre-trained generator to the disaggregation process, we force the output of the disaggregator to be located on the manifold of reasonably-shaped load sequences.

As depicted in (Fig. 1), our approach consists of two main components, a disaggregator *Y*_{a} and generator *G*_{a} for a specific appliance *a*. During training, *G*_{a} learns a self-defined latent representation of the variations in the appliance load sequences. *G*_{a} is used to map from that latent representation into the space of reasonably-shaped appliance load sequences.

Compared to previous Neural NILM approaches, the disaggregator *Y*_{a} is relieved from the task to generate appliance load sequences. It can focus on the detection and representation tasks, which are already performed sufficiently well by the existing Neural NILM approaches.

In contrast to the works of Barker et al. (Barker et al., 2013) and Buneeva and Reinhardt (Buneeva & Reinhardt, 2017), this approach does not need manual engineering of the characteristics of appliance load sequences. Instead, our approach relies on the ability of DNNs to find load sequence characteristics automatically.