Kontakt z nami
Kurs mistrzowski AI:

AI 101

Co to jest generatywna sieć kontradyktoryjna (GAN)?

mm
Zaktualizowano on

Generatywne sieci przeciwne (GAN) to typy architektur sieci neuronowych zdolne do generowania nowych danych który jest zgodny z wyuczonymi wzorcami. Sieci GAN można wykorzystywać między innymi do generowania obrazów ludzkich twarzy lub innych obiektów, do przeprowadzania translacji tekstu na obraz, do konwersji jednego typu obrazu na inny oraz do zwiększania rozdzielczości obrazów (super rozdzielczość). Ponieważ sieci GAN mogą generować zupełnie nowe dane, stoją na czele wielu najnowocześniejszych systemów, aplikacji i badań AI. Jak jednak dokładnie działają sieci GAN? Przyjrzyjmy się, jak działają sieci GAN i przyjrzyjmy się niektórym z ich głównych zastosowań.

Definiowanie modeli generatywnych i sieci GAN

GAN jest przykładem modelu generatywnego. Większość modeli sztucznej inteligencji można podzielić na jedną z dwóch kategorii: modele nadzorowane i nienadzorowane. Modele uczenia się nadzorowanego są zwykle używane do rozróżniania różnych kategorii danych wejściowych w celu klasyfikacji. W przeciwieństwie do tego, modele bez nadzoru są zwykle używane do podsumowywania rozkładu danych, często uczenia się rozkład Gaussa danych. Ponieważ uczą się rozkładu zbioru danych, mogą wyciągnąć próbki z tego wyuczonego 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 Naiwny model Bayesa działa poprzez obliczenie rozkładu prawdopodobieństwa dla różnych cech wejściowych i klasy generatywnej. Kiedy model Naive Bayesa generuje prognozę, oblicza najbardziej prawdopodobną klasę, biorąc prawdopodobieństwo różnych zmiennych i łącząc je razem. Inne modele generatywne niezwiązane z głębokim uczeniem się obejmują modele mieszanin Gaussa i utajoną alokację Dirichleta (LDA). Modele generatywne oparte na głębokim pochyleniu zawierać Ograniczone maszyny Boltzmanna (RBM), Wariacyjne Autoenkodery (VAE)i oczywiście sieci GAN.

Generacyjne sieci przeciwstawne były po raz pierwszy zaproponowany przez Iana Goodfellowa w 2014 ri zostały udoskonalone przez Aleca Redforda i innych badaczy w 2015 r., co doprowadziło do ujednoliconej architektury sieci GAN. Sieci GAN to w rzeczywistości dwie różne sieci połączone ze sobą. GAN-y są złożony z dwóch połówek: model generacji i model dyskryminacji, zwany także generatorem i dyskryminatorem.

Architektura GAN

Generatywne sieci przeciwstawne są zbudowany z połączonego modelu generatora i modelu dyskryminatora. Zadaniem modelu generatora jest tworzenie nowych przykładów danych w oparciu o wzorce, których model nauczył się z danych uczących. Zadaniem modelu dyskryminatora jest analiza obrazów (zakładając, że jest on wytrenowany na obrazach) i określenie, czy obrazy są wygenerowane/fałszywe, czy autentyczne.

Obydwa modele są ze sobą konfrontowane i trenowane w sposób oparty na teorii gier. Celem modelu generatora jest wytwarzanie obrazów, które oszukują jego przeciwnika – model dyskryminacyjny. Tymczasem zadaniem modelu dyskryminatora jest pokonanie przeciwnika, modelu generatora, i wyłapanie fałszywych obrazów wytwarzanych przez generator. Fakt, że modele są ze sobą konkurowane, powoduje wyścig zbrojeń, w którym oba modele się udoskonalają. Dyskryminator otrzymuje informację zwrotną na temat, które obrazy są autentyczne, a które zostały wygenerowane przez generator, natomiast generator otrzymuje informację, które z jego obrazów zostały oznaczone przez dyskryminator jako fałszywe. Obydwa modele są ulepszane podczas szkolenia, a celem jest wytrenowanie modelu generacji, który może generować fałszywe dane, których w zasadzie nie da się odróżnić od prawdziwych, prawdziwych danych.

Po utworzeniu rozkładu Gaussa danych podczas uczenia można zastosować model generatywny. Model generatora jest początkowo zasilany losowym wektorem, który przekształca się w oparciu o rozkład Gaussa. Innymi słowy, wektor zasiewa pokolenie. Po przeszkoleniu modelu przestrzeń wektorowa będzie skompresowaną wersją lub reprezentacją rozkładu Gaussa danych. Skompresowana wersja dystrybucji danych nazywana jest przestrzenią ukrytą lub zmiennymi ukrytymi. Później model GAN ​​może następnie wykorzystać reprezentację przestrzeni ukrytej i wyciągnąć z niej punkty, które można przekazać do modelu generacji i wykorzystać do wygenerowania nowych danych, które są bardzo podobne do danych uczących.

Model dyskryminatora zasilany jest przykładami z całej domeny szkoleniowej, na którą składają się zarówno przykłady danych rzeczywistych, jak i wygenerowanych. Prawdziwe przykłady znajdują się w zbiorze danych szkoleniowych, natomiast fałszywe dane są generowane przez model generatywny. Proces uczenia modelu dyskryminatora jest dokładnie taki sam, jak podstawowy trening modelu klasyfikacji binarnej.

Proces szkoleniowy GAN

Spójrzmy na całość trening wygląda tak do hipotetycznego zadania generowania obrazu.

Na początek sieć GAN jest szkolona przy użyciu autentycznych, rzeczywistych obrazów stanowiących część zbioru danych szkoleniowych. To konfiguruje model dyskrymnatora umożliwiający rozróżnienie między wygenerowanymi obrazami a obrazami rzeczywistymi. Generuje również rozkład danych, którego generator użyje do wygenerowania nowych danych.

Generator pobiera wektor losowych danych liczbowych i przekształca je w oparciu o rozkład Gaussa, zwracając obraz. Wygenerowane obrazy, wraz z niektórymi prawdziwymi obrazami ze zbioru danych szkoleniowych, są wprowadzane do modelu dyskryminatora. Dyskryminator dokona probabilistycznej prognozy dotyczącej charakteru otrzymanych obrazów, podając wartość z zakresu od 0 do 1, gdzie 1 oznacza zazwyczaj obrazy autentyczne, a 0 to obraz fałszywy.

Występuje tu podwójna pętla sprzężenia zwrotnego, ponieważ dyskryminator uziemienia otrzymuje podstawową prawdę obrazów, podczas gdy generator otrzymuje informację zwrotną na temat jego działania od dyskryminatora.

Modele generatywne i dyskryminacyjne toczą ze sobą grę o sumie zerowej. Gra o sumie zerowej to taka, w której zyski jednej strony odbywają się kosztem drugiej strony (suma obu działań wynosi zero ex). Kiedy model dyskryminatora jest w stanie skutecznie rozróżnić przykłady prawdziwe od fałszywych, nie wprowadza się żadnych zmian w parametrach dyskryminatora. Jednak duże aktualizacje parametrów modelu są wprowadzane, gdy nie udaje mu się rozróżnić obrazów prawdziwych od fałszywych. Odwrotna sytuacja ma miejsce w przypadku modelu generatywnego, jest on karany (i jego parametry aktualizowane), gdy nie uda mu się oszukać modelu dyskryminacyjnego, ale poza tym jego parametry pozostają niezmienione (lub jest nagradzane).

W idealnym przypadku generator jest w stanie poprawić swoje działanie do takiego stopnia, że ​​dyskryminator nie jest w stanie rozróżnić obrazów fałszywych od prawdziwych. Oznacza to, że dyskryminator zawsze będzie renderował prawdopodobieństwa% 50 dla prawdziwych i fałszywych obrazów, co oznacza, że ​​wygenerowane obrazy powinny być nie do odróżnienia od prawdziwych obrazów. W praktyce sieci GAN zazwyczaj nie osiągają tego punktu. Jednak model generatywny nie musi tworzyć idealnie podobnych obrazów, aby nadal był przydatny w wielu zadaniach, do których wykorzystywane są sieci GAN.

Aplikacje GAN

Sieci GAN mają wiele różnych zastosowań, większość z nich dotyczy generowania obrazów i komponentów obrazów. Sieci GAN są powszechnie stosowane w zadaniach, w których brakuje wymaganych danych obrazu lub ich pojemność jest ograniczona, jako metoda generowania wymaganych danych. Przyjrzyjmy się niektórym typowym przypadkom zastosowań sieci GAN.

Generowanie nowych przykładów dla zbiorów danych

Sieci GAN można wykorzystać do generowania nowych przykładów prostych zbiorów danych obrazu. Jeśli masz tylko kilka przykładów szkoleniowych i potrzebujesz ich więcej, sieci GAN można wykorzystać do wygenerowania nowych danych szkoleniowych dla klasyfikatora obrazu, generując nowe przykłady szkoleniowe pod różnymi orientacjami i kątami.

Generowanie unikalnych ludzkich twarzy

Kobieta na tym zdjęciu nie istnieje. Obraz został wygenerowany przez StyleGAN. Zdjęcie: Owlsmcgee przez Wikimedia Commons, domena publiczna (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Po wystarczającym przeszkoleniu można do tego przyzwyczaić sieci GAN generować niezwykle realistyczne obrazy ludzkich twarzy. Wygenerowane obrazy można wykorzystać do szkolenia systemów rozpoznawania twarzy.

Tłumaczenie obrazu na obraz

GAN wyróżnia się w tłumaczeniu obrazów. Sieci GAN można wykorzystać do kolorowania czarno-białych obrazów, tłumaczenia szkiców lub rysunków na obrazy fotograficzne lub przekształcania obrazów z dziennego na nocny.

Tłumaczenie tekstu na obraz

Tłumaczenie tekstu na obraz jest jest to możliwe dzięki wykorzystaniu sieci GAN. Sieć GAN może to zrobić, jeśli otrzyma tekst opisujący obraz i towarzyszący mu obraz szkolić się w kreowaniu nowego wizerunku po otrzymaniu opisu żądanego obrazu.

Edycja i naprawa obrazów

Sieci GAN można wykorzystać do edycji istniejących zdjęć. Sieci GAN usuń elementy takie jak deszcz lub śnieg z obrazu, ale można się do nich również przyzwyczaić napraw stare, uszkodzone obrazy lub uszkodzone obrazy. 

Super rozdzielczość

Super rozdzielczość to proces polegający na wykonaniu obrazu o niskiej rozdzielczości i umieszczeniu w nim większej liczby pikseli, co poprawia rozdzielczość tego obrazu. Sieci GAN można wyszkolić do robienia zdjęć wygeneruj wersję tego obrazu w wyższej rozdzielczości. 

Bloger i programista specjalizujący się w Nauczanie maszynowe i głęboki Learning tematy. Daniel ma nadzieję pomóc innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.