liveBook · Manning

Bidirectional generative adversarial network

As explained in Outlier Detection in Python

A bidirectional generative adversarial network is a GAN augmented with an encoder that maps observations back into the generator's latent representation.

A bidirectional generative adversarial network (BiGAN) augments a GAN with an encoder E, or inverse mapper, that maps observations into the generator's latent space. The generator G produces realistic data from latent input, while the discriminator D distinguishes real from generated data, often using both observations and latent representations. section 16.2.3

Use the trained networks to estimate whether an observation resembles the learned normal-data distribution:

  • Encode a real observation x as E(x), then reconstruct it as G(E(x)). section 16.2.3
  • Treat large reconstruction error as evidence that the encoder cannot represent the observation normally. section 16.2.3

Practical detector

PyOD's ALAD detector provides a concise implementation: instantiate ALAD, fit it to X, inspect decision_scores_, and optionally plot learning curves.

How Outlier Detection in Python covers it

How deep it goes
Explains encoder, generator, discriminator, alternating training, reconstruction, and scoring without deriving the adversarial objective.
Examples
Uses BiGAN architecture diagrams, prediction-time scoring, and a PyOD ALAD implementation.
What it assumes
Assumes familiarity with GANs and latent representations while relating the encoder to autoencoder encoders.
What you can do after
Diagnose outliers with reconstruction error and discriminator probabilities after fitting a BiGAN or ALAD detector.
How it connects
Connects generative adversarial networks, autoencoders, variational autoencoders, latent representations, and reconstruction error.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Outlier Detection in Python. The section links point to the parts of the book it draws on.