AI 101

Co je Generative Adversarial Network (GAN)?

mm

Generative Adversarial Networks (GANs) jsou typy neuronových architektur schopné generovat nová data, která odpovídají naučeným vzorcům. GANs lze použít k generování obrazů lidských tváří nebo jiných objektů, k provedení překladů textu na obrázky, k převodu jednoho typu obrázku na jiný a ke zlepšení rozlišení obrázků (super rozlišení) mezi jinými aplikacemi. Protože GANs mohou generovat zcela nová data, jsou na čele mnoha pokročilých systémů AI, aplikací a výzkumů. Ale jak přesně GANs fungují? Pojďme prozkoumat, jak GANs fungují a podívejme se na některé z jejich primárních použití.

Definování generativních modelů a GANs

GAN je příkladem generativního modelu. Většina modelů AI lze rozdělit do jedné ze dvou kategorií: supervizované a nesupervizované modely. Supervizované modely se obvykle používají k rozlišení mezi různými kategoriemi vstupů, k klasifikaci. Naopak, nesupervizované modely se obvykle používají k souhrnu rozložení dat, často se učí Gaussovu distribuci dat. Protože se učí rozložení datové sady, mohou z této naučené distribuce vybrat vzorky a generovat nová data.

Různé generativní modely mají různé metody generování dat a výpočtu pravděpodobnostních distribucí. Například Naive Bayes model funguje tak, že vypočítává pravděpodobnostní distribuci pro různé vstupní funkce a generativní třídu. Když Naive Bayes model provede předpověď, vypočítá nejpravděpodobnější třídu tak, že vezme pravděpodobnost různých proměnných a spojí je вместе. Další nesupervizované generativní modely zahrnují Gaussian Mixture Models a Latent Dirichlet Allocation (LDA). Hluboké učení založené generativní modely zahrnují Restricted Boltzmann Machines (RBMs), Variational Autoencoders (VAEs) a samozřejmě GANs.

Generativní Adversarial Networks byly první navrhnuty Ianem Goodfellowem v roce 2014, a byly vylepšeny Alecem Redfordem a dalšími výzkumníky v roce 2015, což vedlo k standardizované architektuře pro GANs. GANs jsou ve skutečnosti dva různé sítě spojené dohromady. GANs se skládají ze dvou polovin: generátorového modelu a diskriminačního modelu, také nazývaného generátor a diskriminátor.

Architektura GAN

Generativní Adversarial Networks jsou postaveny z generátorového modelu a diskriminačního modelu spojeného dohromady. Úkolem generátorového modelu je vytvořit nová data, založená na vzorcích, které model naučil z trénovacích dat. Úkolem diskriminačního modelu je analyzovat obrázky (předpokládejme, že je trénován na obrázcích) a určit, zda jsou obrázky generovány/falešné nebo skutečné.

Dvě modely jsou proti sobě, trénovány v herní teoretické podobě. Cílem generátorového modelu je produkovat obrázky, které oklamou jeho protivníka – diskriminační model. Mezitím, cílem diskriminačního modelu je překonat svého protivníka, generátorový model, a chytit falešné obrázky, které generátor produkuje. Skutečnost, že modely jsou proti sobě, vede k závodům ve zbrojení, kde se obě modely zlepšují. Diskriminační model dostává zpětnou vazbu o tom, které obrázky byly skutečné a které byly produkovány generátorem, zatímco generátor je krmen informacemi o tom, které z jeho obrázků byly označeny jako falešné diskriminátorem. Obě modely se zlepšují během trénování, s cílem trénovat generátorový model, který může produkovat falešná data, která jsou prakticky nerozlišitelná od skutečných dat.

Jakmile je vytvořena Gaussova distribuce dat během trénování, generátorový model může být použit. Generátorový model je inicializován náhodným vektorem, který transformuje na základě Gaussovy distribuce. Jinými slovy, vektor inicializuje generování. Když je model trénován, vektorový prostor bude komprimovanou verzí, nebo reprezentací, Gaussovy distribuce dat. Komprimovaná verze datové distribuce se nazývá latentní prostor, nebo latentní proměnné. Později může GAN model vzít latentní prostorovou reprezentaci a nakreslit body z ní, které lze dát generátorovému modelu a použít k generování nových dat, která jsou velmi podobná trénovacím datům.

Diskriminační model je krmen příklady z celého trénovacího domény, který se skládá z obou skutečných a generovaných datových příkladů. Skutečné příklady jsou obsaženy v trénovacích datech, zatímco falešná data jsou produkována generátorovým modelem. Proces trénování diskriminačního modelu je přesně stejný jako základní, binární klasifikační model trénování.

Proces trénování GAN

Pojďme se podívat na celý trénovací proces pro hypotetickou úlohu generování obrázků.

Na začátku je GAN trénován pomocí skutečných, skutečných obrázků jako části trénovacích dat. To nastavuje diskriminační model, aby rozlišoval mezi generovanými obrázky a skutečnými obrázky. Také produkuje datové rozložení, které generátor bude používat k produkci nových dat.

Generátor bere vektor náhodných numerických dat a transformuje je na základě Gaussovy distribuce, vrací obrázek. Tento generovaný obrázek, spolu se skutečnými obrázky z trénovacích dat, je krmen do diskriminačního modelu. Diskriminační model provede pravděpodobnostní předpověď o povaze obrázků, které dostává, vrací hodnotu mezi 0 a 1, kde 1 je obvykle autentické obrázky a 0 je falešný obrázek.

Existuje dvojí zpětná vazba, protože diskriminační model dostává zpětnou vazbu o skutečných obrázcích, zatímco generátor dostává zpětnou vazbu o své výkonnosti od diskriminačního modelu.

Generátorový a diskriminační model hrají nultovou sumu hry proti sobě. Nultová suma hry je hra, ve které zisky jedné strany přicházejí na úkor druhé strany (suma je obou akcí nula). Když diskriminační model úspěšně rozliší mezi skutečnými a falešnými příklady, nejsou provedeny žádné změny v parametrech diskriminačního modelu. Nicméně, velké aktualizace jsou provedeny v parametrech modelu, když selže rozlišení mezi skutečnými a falešnými obrázky. Inverzní je pravda pro generátorový model, je penalizován (a jeho parametry aktualizovány), když selže oklamat diskriminační model, ale jinak jeho parametry jsou nezměněny (nebo je odměněn).

Ideálně, generátor je schopen zlepšit svou výkonnost na bod, kde diskriminační model nemůže rozlišit mezi falešnými a skutečnými obrázky. To znamená, že diskriminační model bude vždy vracet pravděpodobnosti 50 % pro skutečné a falešné obrázky, což znamená, že generované obrázky by měly být prakticky nerozlišitelné od skutečných obrázků. V praxi GANs obvykle nedosáhnou tohoto bodu. Nicméně, generátorový model nemusí produkovat dokonale podobné obrázky, aby byl stále užitečný pro mnoho úloh, pro které se GANs používají.

Aplikace GAN

GANs mají řadu různých aplikací, většina z nich se týká generování obrázků a komponent obrázků. GANs se běžně používají v úlohách, kde je požadovaná obrazová data chybí nebo je omezená, jako metoda generování požadovaných dat. Pojďme prozkoumat některé z běžných použití GANs.

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

GANs lze použít k generování nových příkladů pro jednoduché datové sady obrázků. Pokud máte pouze několik trénovacích příkladů a potřebujete více z nich, GANs by mohly být použity k generování nových trénovacích dat pro klasifikátor obrázků, generování nových trénovacích příkladů v různých orientacích a úhlech.

Generování unikátních lidských tváří

Žena na tomto obrázku neexistuje. Obrázek byl generován StyleGAN. Foto: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Když jsou dostatečně trénovány, GANs lze použít k generování extrémně realistických obrázků lidských tváří. Tyto generované obrázky lze použít k pomoci trénovat systémy rozpoznávání tváří.

Překlad obrázku na obrázek

GANs vynikají v překladu obrázků. GANs lze použít k barevnému zpracování černobílých obrázků, překladu náčrtů nebo kreseb na fotografické obrázky, nebo převodu obrázků z dne na noc.

Překlad textu na obrázek

Překlad textu na obrázek je možný pomocí GANs. Když je poskytnut text, který popisuje obrázek a doprovodný obrázek, GAN lze trénovat k vytvoření nového obrázku, když je poskytnut popis požadovaného obrázku.

Úprava a oprava obrázků

GANs lze použít k úpravě existujících fotografií. GANs odstraní prvky, jako je déšť nebo sníh z obrázku, ale lze je také použít k opravě starých, poškozených obrázků nebo poškozených obrázků.

Super rozlišení

Super rozlišení je proces, který bere nízko-rozlišený obrázek a vkládá více pixelů do obrázku, zlepšuje rozlišení obrázku. GANs lze trénovat k tomu, aby vzaly obrázek a vytvořily vyšší-rozlišený obrázek.

GANs lze také použít k opravě starých, poškozených obrázků nebo poškozených obrázků. Super rozlišení Super rozlišení je proces, který bere nízko-rozlišený obrázek a vkládá více pixelů do obrázku, zlepšuje rozlišení obrázku. GANs lze trénovat k tomu, aby vzaly obrázek a vygenerovaly vyšší-rozlišený obrázek. GANs lze také použít k opravě starých, poškozených obrázků nebo poškozených obrázků.

Blogger a programátor se specializací na Machine Learning a Deep Learning témata. Daniel doufá, že pomůže ostatním využít sílu AI pro sociální dobro.