Nienadzorowana detekcja anomalii z użyciem sieci generatywnych

Bartosz Wójtowicz

Agenda

  1. Czym jest nienadzorowana detekcja anomalii?
  2. Co to są sieci GAN?
  3. Detekcja anomalii z użyciem modelu AnoGAN

Czym jest nienadzorowana detekcja anomalii?

Detekcja Anomalii

  • W analizie danych detekcją anomalii nazywamy proces identyfikacji obserwacji znacznie różniących się od większości obserwacji w naszym zbiorze danych.

Co to znaczy nienadzorowana?

  • Oznacza to, że podczas treningu nie mamy informacji, które z obserwacji w naszym zbiorze treningowym są "normalne", a które są anomaliami.

Czemu to jest trudne?

  • Heterogeniczne klasy anomalii
  • Rzadkość
  • Dużo niewiadomych

Czym są sieci GAN*?

*ang. Generative Adversarial Networks

Idea GANów

    Uczymy równocześnie 2 modele:

  • Model generatywny G - uczy się generować realistyczne dane (uczy się dystrybucji danych). Podczas treningu maksymalizuje prawdopodobieństwo popełnienia pomyłki przez D
  • Model dyskryminatywny D - estymuje prawdopodobieństwo, że próbka pochodzi z prawdziwych danych, a nie z G. Podczas treningu maksymalizuje prawdopodobieństwo przydzielenia poprawnych oznaczeń otrzymanym próbkom.

GAN po wytrenowaniu

Po wytrenowaniu GANu, generator G wyuczył się mapowania $ G(z) = x$. Generator mapuje z przestrzeni $\mathcal{Z}$, do przestrzeni obrazów $\mathcal{X}$.

Detekcja anomalii z użyciem modelu AnoGAN

Aktualny problem

Wytrenowany GAN oferuje nam mapowanie $\mathcal{Z} \rightarrow \mathcal{X}$, lecz potrzebujemy też mapowania odwrotnego $\mathcal{X} \rightarrow \mathcal{Z}$.

Innymi słowy: mając obraz $x_i$, chcemy znaleźć punkt $z_i$ z przestrzeni $Z$ tak aby obraz $G(z_i)$ był "najbliższy" obrazowi $x_i$.

Funkcja kosztu do mapowania $\mathcal{X} \rightarrow \mathcal{Z}$

Definiujemy funkcję: $$ \mathcal{L}(z_\gamma) = (1 - \lambda) \cdot {L}_R(z_\gamma) + \lambda \cdot {L}_D(z_\gamma) $$ gdzie:

  • ${L}_R(z_\gamma) = \sum |x - G(z_\gamma)|$. Funkcja ta mierzy wizualne niepodobieństwo między obrazem $x_i$ i obrazem wygenerowanym $G(z_i)$
  • ${L}_D(z_\gamma) = \sum |f(x) - f(G(z_\gamma))|$ odpowiada za technikę zwaną image inpainting. Dba ona o to, aby generowany obraz miał podobne statystyki do obrazów w zbiorze treningowym.

Detekcja anomalii

Bazując na naszej funkcji kosztu $$ \mathcal{L}(z_\gamma) = (1 - \lambda) \cdot {L}_R(z_\gamma) + \lambda \cdot {L}_D(z_\gamma) $$ mapujemy zadany obraz $x$ do przestrzeni $\mathcal{Z}$.

Dla obrazów normalnych jesteśmy w stanie znaleźć takie $z$, że $G(z)$ będzie podobne do $x$, natomiast dla obrazów, które są anomaliami nie będziemy w stanie znaleźć takiego $z$.

Wtedy również możemy zdefiniować funkcję $A(x) = (1 - \lambda) \cdot R(x) + \lambda \cdot D(x)$, gdzie $R(x)$ i $D(x)$ to wartości funkcji ${L}_R(z_K)$ i ${L}_D(z_K)$, gdzie $K$ to ostatni krok algorytmu wstecznej propagacji.

Średnia wartość funkcji $A(x)$

Zakładamy, ze 0 to klasa normalna, a reszta to anomalie.

Przykłady

Po lewej - obrazy zadane dla modelu.

Po prawej - zrekonstruowane obrazy.

Dziękuję!

Bartosz Wójtowicz