Podstawy AI
Co to jest Generative Adversarial Network (GAN)?
Sieci przeciwstawnych generatywnych (GAN) są rodzajem architektur sieci neuronowych zdolnych do generowania nowych danych, które są zgodne z nauczoną strukturą. GAN mogą być wykorzystywane do generowania obrazów twarzy ludzkich lub innych obiektów, do tłumaczenia tekstu na obraz, do konwersji jednego rodzaju obrazu na inny oraz do poprawy rozdzielczości obrazów (super rozdzielczość) wśród innych zastosowań. Ponieważ GAN mogą generować całkowicie nowe dane, są one na czele wielu najnowocześniejszych systemów, aplikacji i badań AI. Jednak jak dokładnie GAN działa? Zbadajmy, jak GAN funkcjonuje i przyjrzyjmy się niektórym z ich podstawowych zastosowań.
Definiowanie modeli generatywnych i GAN
GAN jest przykładem modelu generatywnego. Większość modeli AI można podzielić na dwie kategorie: modele nadzorowane i nienadzorowane. Modele uczenia nadzorowanego są zwykle wykorzystywane do rozróżniania między różnymi kategoriami danych wejściowych, do klasyfikacji. W przeciwieństwie do tego, modele nienadzorowane są zwykle wykorzystywane do podsumowania rozkładu danych, często ucząc rozkład normalny danych. Ponieważ uczą się rozkładu zbioru danych, mogą pobrać próbki z tego nauczonego rozkładu i wygenerować nowe dane.
Różne modele generatywne mają różne metody generowania danych i obliczania rozkładów prawdopodobieństwa. Na przykład, model Naive Bayes działa, obliczając rozkład prawdopodobieństwa dla różnych cech wejściowych i klasy generatywnej. Kiedy model Naive Bayes wyświetla przewidywanie, oblicza najbardziej prawdopodobną klasę, biorąc prawdopodobieństwo różnych zmiennych i łącząc je razem. Inne nie-głębokie modele generatywne obejmują modele mieszane Gaussa i alokację Dirichleta (LDA). Głębokie modele generatywne oparte na nauce obejmują ograniczone maszyny Boltzmanna (RBM), autoencodery wariancji (VAE) i oczywiście GAN.
Sieci przeciwstawnych generatywnych zostały po raz pierwszy zaproponowane przez Iana Goodfellowa w 2014 roku, a następnie udoskonalone przez Aleca Redforda i innych badaczy w 2015 roku, co doprowadziło do standaryzacji architektury GAN. GAN składają się z dwóch połączonych sieci: modelu generatywnego i modelu dyskryminatywnego, również określanego jako generator i dyskryminator.
Architektura GAN
Sieci przeciwstawnych generatywnych są zbudowane z połączenia modelu generatora i modelu dyskryminatora. Zadaniem modelu generatora jest tworzenie nowych przykładów danych na podstawie wzorców, które model nauczył się z danych szkoleniowych. Zadaniem modelu dyskryminatywnego jest analiza obrazów (zakładając, że jest szkolony na obrazach) i określenie, czy obrazy są generowane / fałszywe czy autentyczne.

Dwie sieci są ze sobą sprzeczne, szkolone w sposób teoretyczny gier. Celem modelu generatora jest wytworzenie obrazów, które oszukają jego przeciwnika – model dyskryminatywny. Tymczasem zadaniem modelu dyskryminatywnego jest pokonanie swojego przeciwnika, modelu generatora, i wykrycie fałszywych obrazów wytworzonych przez generator. Fakt, że sieci są ze sobą sprzeczne, prowadzi do wyścigu zbrojeń, w którym obie sieci się poprawiają. Model dyskryminatywny otrzymuje informacje zwrotne o tym, które obrazy były autentyczne, a które zostały wytworzone przez generator, podczas gdy generator otrzymuje informacje o tym, które z jego obrazów zostały oznaczone jako fałszywe przez dyskryminator. Obie sieci są ulepszane podczas szkolenia, z celem szkolenia modelu generatora, który może wytworzyć fałszywe dane, które są praktycznie nie do odróżnienia od autentycznych danych.
Gdy tylko rozkład normalny danych został utworzony podczas szkolenia, model generatywny może być wykorzystany. Model generatora jest najpierw zasilany wektorem losowych danych liczbowych, który jest przekształcany na podstawie rozkładu normalnego. Innymi słowy, wektor nasionuje generację. Kiedy model jest szkolony, przestrzeń wektorowa będzie skompresowaną wersją lub reprezentacją rozkładu danych. Skompresowana wersja rozkładu danych nazywana jest przestrzenią latentną lub zmiennymi latentnymi. Później model GAN może wziąć reprezentację przestrzeni latentnej i narysować punkty z niej, które mogą być podane modelowi generatora i wykorzystane do wygenerowania nowych danych, które są bardzo podobne do danych szkoleniowych.
Model dyskryminatywny jest zasilany przykładami z całego domeny szkoleniowej, która składa się z danych rzeczywistych i wygenerowanych. Przykłady rzeczywiste są zawarte w zbiorze danych szkoleniowych, podczas gdy dane fałszywe są wytworzone przez model generatywny. Proces szkolenia modelu dyskryminatywnego jest dokładnie taki sam jak szkolenie podstawowego modelu klasyfikacji binarnej.
Proces szkolenia GAN
Zobaczmy cały proces szkolenia dla hipotetycznego zadania generowania obrazów.
Początkowo GAN jest szkolony przy użyciu autentycznych, rzeczywistych obrazów jako części zbioru danych szkoleniowych. To ustawia model dyskryminatywny, aby odróżniał generowane obrazy od rzeczywistych. To również produkuje rozkład danych, który generator będzie wykorzystywał do wytworzenia nowych danych.
Generator pobiera wektor losowych danych liczbowych i przekształca je na podstawie rozkładu normalnego, zwracając obraz. Ten wygenerowany obraz, wraz z niektórymi autentycznymi obrazami z zbioru danych szkoleniowych, jest podawany modelowi dyskryminatywnemu. Model dyskryminatywny wyświetla przewidywanie prawdopodobieństwa dotyczące natury otrzymanych obrazów, zwracając wartość między 0 a 1, gdzie 1 to zwykle autentyczne obrazy, a 0 to fałszywy obraz.

Istnieje podwójna pętla informacji zwrotnej, ponieważ model dyskryminatywny jest zasilany prawdą otrzymaną o obrazach, podczas gdy generator otrzymuje informacje zwrotne o swojej wydajności od dyskryminatora.
Modele generatywne i dyskryminatywne grają grę o sumie zerowej. Gra o sumie zerowej to taka, w której zyski jednej strony następują kosztem drugiej strony (suma jest zero). Kiedy model dyskryminatywny może skutecznie odróżniać między rzeczywistymi a fałszywymi przykładami, nie są wprowadzane żadne zmiany w parametrach dyskryminatora. Jednak gdy nie może odróżniać między rzeczywistymi a fałszywymi obrazami, wprowadzane są duże aktualizacje parametrów modelu. Odwrotnie jest w przypadku modelu generatywnego, który jest karany (i jego parametry są aktualizowane) kiedy nie może oszukać modelu dyskryminatywnego, ale w przeciwnym razie jego parametry są niezmienne (lub jest nagradzany).
Idealnie, generator jest w stanie poprawić swoją wydajność do punktu, w którym dyskryminator nie może odróżniać między fałszywymi a rzeczywistymi obrazami. To oznacza, że dyskryminator zawsze będzie wyświetlał prawdopodobieństwo 50% dla rzeczywistych i fałszywych obrazów, co oznacza, że wygenerowane obrazy powinny być nie do odróżnienia od autentycznych obrazów. W praktyce GAN zwykle nie osiągają tego punktu. Jednak model generatywny nie musi tworzyć idealnie podobnych obrazów, aby być jeszcze przydatnym do wielu zadań, dla których GAN są wykorzystywane.
Zastosowania GAN
GAN mają wiele różnych zastosowań, większość z nich dotyczy generowania obrazów i składników obrazów. GAN są powszechnie wykorzystywane w zadaniach, w których wymagane dane obrazowe są niedostępne lub ograniczone w jakimś zakresie, jako sposób generowania wymaganych danych. Zobaczmy niektóre z powszechnych przypadków użycia GAN.
Generowanie nowych przykładów dla zbiorów danych
GAN mogą być wykorzystywane do generowania nowych przykładów dla prostych zbiorów danych obrazowych. Jeśli masz tylko kilka przykładów szkoleniowych i potrzebujesz więcej, GAN mogą być wykorzystane do generowania nowych danych szkoleniowych dla klasyfikatora obrazów, generując nowe przykłady szkoleniowe w różnych orientacjach i kątach.
Generowanie unikalnych twarzy ludzkich

Kobieta na tym zdjęciu nie istnieje. Zdjęcie zostało wygenerowane przez StyleGAN. Zdjęcie: Owlsmcgee via Wikimedia Commons, domena publiczna (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Kiedy są wystarczająco wyszkolone, GAN mogą być wykorzystywane do wygenerowania bardzo realistycznych obrazów twarzy ludzkich. Te wygenerowane obrazy mogą być wykorzystywane do pomocy w szkoleniu systemów rozpoznawania twarzy.
Tłumaczenie obrazu na obraz
GAN są doskonałe w tłumaczeniu obrazu na obraz. GAN mogą być wykorzystywane do kolorowania czarno-białych obrazów, tłumaczenia szkiców lub rysunków na obrazy fotograficzne lub konwersji obrazów z dnia na noc.
Tłumaczenie tekstu na obraz
Tłumaczenie tekstu na obraz jest możliwe dzięki użyciu GAN. Kiedy podano tekst, który opisuje obraz i towarzyszący obraz, GAN może być szkolony do tworzenia nowego obrazu, kiedy podano opis pożądanego obrazu.
Edycja i naprawa obrazów
GAN mogą być wykorzystywane do edycji istniejących zdjęć. GAN mogą usunąć elementy takie jak deszcz lub śnieg z obrazu, ale mogą być również wykorzystywane do naprawy starych, uszkodzonych obrazów lub uszkodzonych obrazów.
Super rozdzielczość
Super rozdzielczość to proces pobierania obrazu o niskiej rozdzielczości i wstawiania więcej pikseli do obrazu, poprawiając rozdzielczość tego obrazu. GAN mogą być szkolone do pobierania obrazu i wygenerowania wersji o wyższej rozdzielczości tego obrazu.
mogą być również wykorzystywane do naprawy starych, uszkodzonych obrazów lub uszkodzonych obrazów. Super rozdzielczość Super rozdzielczość to proces pobierania obrazu o niskiej rozdzielczości i wstawiania więcej pikseli do obrazu, poprawiając rozdzielczość tego obrazu. GAN mogą być szkolone do pobierania obrazu i wygenerowania wersji o wyższej rozdzielczości tego obrazu.












