výhonek Co je to Generative Adversarial Network (GAN)? - Spojte se.AI
Spojte se s námi
Mistrovská třída AI:

AI 101

Co je to Generative Adversarial Network (GAN)?

mm
aktualizováno on

Generative Adversarial Networks (GAN) jsou typy architektur neuronových sítí schopný generovat nová data který odpovídá naučeným vzorcům. GAN lze použít ke generování obrázků lidských tváří nebo jiných objektů, k provádění překladu textu na obrázek, k převodu jednoho typu obrázku na jiný a ke zvýšení rozlišení obrázků (super rozlišení) mezi jinými aplikacemi. Protože sítě GAN mohou generovat zcela nová data, stojí v čele mnoha špičkových systémů, aplikací a výzkumu umělé inteligence. Ale jak přesně GAN fungují? Pojďme prozkoumat, jak GAN fungují, a podívat se na některé z jejich primárních použití.

Definování generativních modelů a GAN

GAN je příkladem generativního modelu. Většinu modelů umělé inteligence lze rozdělit do jedné ze dvou kategorií: modely pod dohledem a modely bez dozoru. Modely učení pod dohledem se obvykle používají k rozlišení mezi různými kategoriemi vstupů, ke klasifikaci. Naproti tomu modely bez dozoru se obvykle používají ke shrnutí distribuce dat, často se učí Gaussova distribuce dat. Protože se naučí distribuci sady dat, mohou z této naučené distribuce získat vzorky a generovat nová data.

Různé generativní modely mají různé metody generování dat a výpočtu rozdělení pravděpodobnosti. Například, Naivní model Bayes funguje na základě výpočtu rozdělení pravděpodobnosti pro různé vstupní znaky a generativní třídu. Když model Naive Bayes vykreslí předpověď, vypočítá nejpravděpodobnější třídu tím, že vezme pravděpodobnost různých proměnných a zkombinuje je dohromady. Mezi další generativní modely nehlubokého učení patří modely Gaussian Mixture Models a Latent Dirichlet Allocation (LDA). Generativní modely založené na hlubokém naklánění obsahovat Omezené Boltzmannovy stroje (RBM), Variační automatické kodéry (VAE)a samozřejmě GAN.

Generative Adversarial Networks byly poprvé navrhl Ian Goodfellow v roce 2014a byly vylepšeny Alecem Redfordem a dalšími výzkumníky v roce 2015, což vedlo ke standardizované architektuře pro GAN. GAN jsou vlastně dvě různé sítě spojené dohromady. GAN jsou skládá se ze dvou polovin: generační model a diskriminační model, označovaný také jako generátor a diskriminátor.

Architektura GAN

Generative Adversarial Networks jsou sestavené z modelu generátoru a modelu diskriminátoru dohromady. Úkolem modelu generátoru je vytvářet nové příklady dat na základě vzorů, které se model naučil z trénovacích dat. Úkolem diskriminačního modelu je analyzovat obrázky (za předpokladu, že je trénován na obrázcích) a určit, zda jsou obrázky vytvořené/falešné nebo pravé.

Tyto dva modely jsou postaveny proti sobě a jsou trénovány teoretickým způsobem hry. Cílem modelu generátoru je vytvářet obrázky, které klamou jeho protivníka – model diskriminátoru. Mezitím je úkolem diskriminačního modelu překonat svého protivníka, model generátoru, a zachytit falešné obrázky, které generátor vytváří. Skutečnost, že modely stojí proti sobě, má za následek závody ve zbrojení, kde se oba modely zlepšují. Diskriminátor získává zpětnou vazbu o tom, které obrázky byly pravé a které obrázky vytvořil generátor, zatímco generátoru jsou poskytovány informace o tom, které z jeho obrázků byly diskriminátorem označeny jako nepravdivé. Oba modely se během tréninku zlepšují s cílem vytrénovat generační model, který dokáže produkovat falešná data, která jsou v podstatě nerozeznatelná od skutečných, pravých dat.

Jakmile bylo během trénování vytvořeno Gaussovo rozdělení dat, lze použít generativní model. Model generátoru je zpočátku napájen náhodným vektorem, který transformuje na základě Gaussova rozdělení. Jinými slovy, vektor zasévá generaci. Když je model trénován, vektorový prostor bude komprimovanou verzí nebo reprezentací Gaussova rozložení dat. Komprimovaná verze distribuce dat se označuje jako latentní prostor nebo latentní proměnné. Později může model GAN ​​převzít reprezentaci latentního prostoru a čerpat z ní body, které lze předat generačnímu modelu a použít ke generování nových dat, která jsou velmi podobná trénovacím datům.

Diskriminační model je dodáván s příklady z celé trénovací domény, která je tvořena jak reálnými, tak generovanými datovými příklady. Skutečné příklady jsou obsaženy v trénovací datové sadě, zatímco falešná data vytváří generativní model. Proces trénování modelu diskriminátoru je přesně stejný jako trénování základního modelu s binární klasifikací.

Tréninkový proces GAN

Podívejme se na celek výcvik proces pro hypotetický úkol generování obrazu.

Pro začátek je GAN trénován pomocí skutečných skutečných obrázků jako součásti trénovací datové sady. Tím se nastaví model diskriminátoru pro rozlišení mezi generovanými obrázky a skutečnými obrázky. Vytváří také distribuci dat, kterou generátor použije k produkci nových dat.

Generátor přijímá vektor náhodných číselných dat a transformuje je na základě Gaussova rozdělení a vrací obrázek. Takto vygenerované obrázky spolu s některými skutečnými obrázky z trénovací datové sady jsou vloženy do modelu diskriminátoru. Diskriminátor vykreslí pravděpodobnostní předpověď o povaze obrazů, které přijímá, s výstupem hodnoty mezi 0 a 1, kde 1 jsou typicky autentické obrazy a 0 je falešný obraz.

Ve hře je dvojitá zpětná vazba, protože zemní diskriminátor je napájen základní pravdou obrázků, zatímco generátor dostává zpětnou vazbu o svém výkonu diskriminátorem.

Generativní a diskriminační modely spolu hrají hru s nulovým součtem. Hra s nulovým součtem je hra, kde zisky jedné strany přicházejí na úkor druhé strany (součet je, že obě akce jsou nula ex). Když je model diskriminátoru schopen úspěšně rozlišit mezi skutečnými a falešnými příklady, neprovádějí se žádné změny parametrů diskriminátoru. Pokud však model nedokáže rozlišit mezi skutečnými a falešnými obrázky, dochází k velkým aktualizacím parametrů modelu. U generativního modelu platí opak, je penalizován (a jeho parametry aktualizovány), když se mu nepodaří oklamat diskriminační model, ale jinak jsou jeho parametry nezměněny (nebo je odměněn).

V ideálním případě je generátor schopen zlepšit svůj výkon do bodu, kdy diskriminátor nedokáže rozlišit mezi falešnými a skutečnými obrázky. To znamená, že diskriminátor bude vždy zobrazovat pravděpodobnosti 50 % pro skutečné a falešné obrázky, což znamená, že generované obrázky by měly být k nerozeznání od pravých obrázků. V praxi GAN obvykle tohoto bodu nedosáhnou. Generativní model však nemusí vytvářet dokonale podobné obrazy, aby byl stále užitečný pro mnoho úkolů, pro které se GAN používají.

Aplikace GAN

GANy mají řadu různých aplikací, z nichž většina se točí kolem generování obrázků a komponent obrázků. GAN se běžně používají v úlohách, kde požadovaná obrazová data chybí nebo je omezena v určité kapacitě, jako metoda generování požadovaných dat. Podívejme se na některé běžné případy použití sítí GAN.

Generování nových příkladů pro datové sady

GAN lze použít ke generování nových příkladů jednoduchých obrazových datových sad. Pokud máte jen několik příkladů školení a potřebujete jich více, GAN lze použít ke generování nových školicích dat pro klasifikátor obrázků, generování nových příkladů školení v různých orientacích a úhlech.

Generování jedinečných lidských tváří

Žena na této fotografii neexistuje. Obrázek vygeneroval StyleGAN. Foto: Owlsmcgee přes Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Při dostatečném proškolení lze GANy použít vytvářet extrémně realistické obrazy lidských tváří. Tyto vygenerované obrázky lze použít k trénování systémů rozpoznávání obličejů.

Překlad z obrázku na obrázek

GAN excel v překladu obrázků. GAN lze použít ke kolorování černobílých obrázků, převodu náčrtů nebo kreseb na fotografické obrázky nebo převodu obrázků ze dne na noc.

Překlad textu na obrázek

Překlad textu na obrázek je možné pomocí GAN. Pokud je poskytnut text, který popisuje obrázek a doprovodný obrázek, může GAN být vyškoleni k vytvoření nového obrazu po poskytnutí popisu požadovaného obrázku.

Úpravy a opravy obrázků

GAN lze použít k úpravě stávajících fotografií. GAN odstraňte prvky jako déšť nebo sníh z obrázku, ale lze na ně také použít opravit staré, poškozené obrázky nebo poškozené obrázky. 

Super rozlišení

Super rozlišení je proces pořízení obrázku s nízkým rozlišením a vložení více pixelů do obrázku, čímž se zlepší rozlišení tohoto obrázku. Sítě GAN lze vycvičit k pořízení snímku vygenerovat verzi tohoto obrázku ve vyšším rozlišení. 

Blogerka a programátorka se specializací v Strojové učení a Hluboké učení témata. Daniel doufá, že pomůže ostatním využívat sílu AI pro společenské dobro.