peň Čo je to Generative Adversarial Network (GAN)? - Spojte sa.AI
Spojte sa s nami
Masterclass AI:

AI 101

Čo je to Generative Adversarial Network (GAN)?

mm
Aktualizované on

Generative Adversarial Networks (GAN) sú typy architektúr neurónových sietí schopné generovať nové dáta ktorý zodpovedá naučeným vzorcom. GAN je možné použiť na vytváranie obrázkov ľudských tvárí alebo iných objektov, na vykonávanie prekladu textu na obrázok, na prevod jedného typu obrázku na iný a na zvýšenie rozlíšenia obrázkov (super rozlíšenie) medzi inými aplikáciami. Keďže siete GAN dokážu generovať úplne nové údaje, sú na čele mnohých špičkových systémov, aplikácií a výskumu AI. Ako presne však GAN fungujú? Poďme preskúmať, ako fungujú siete GAN a pozrieť sa na niektoré z ich primárnych použití.

Definovanie generatívnych modelov a GAN

GAN je príkladom generatívneho modelu. Väčšinu modelov AI možno rozdeliť do jednej z dvoch kategórií: modely pod dohľadom a modely bez dozoru. Modely učenia pod dohľadom sa zvyčajne používajú na rozlišovanie medzi rôznymi kategóriami vstupov, na klasifikáciu. Na rozdiel od toho sa modely bez dozoru zvyčajne používajú na zhrnutie distribúcie údajov, často učenia Gaussovo rozdelenie údajov. Pretože sa naučia distribúciu súboru údajov, môžu z tohto naučeného rozloženia získať vzorky a generovať nové údaje.

Rôzne generatívne modely majú rôzne metódy generovania údajov a výpočtu rozdelenia pravdepodobnosti. Napríklad Naivný model Bayes funguje na základe výpočtu rozdelenia pravdepodobnosti pre rôzne vstupné znaky a generatívnu triedu. Keď model Naive Bayes vykreslí predpoveď, vypočíta najpravdepodobnejšiu triedu tak, že vezme pravdepodobnosť rôznych premenných a skombinuje ich. Ďalšie generatívne modely nehĺbkového učenia zahŕňajú gaussovské zmiešané modely a latentnú dirichletovu alokáciu (LDA). Generatívne modely založené na hlbokom sklone zahrnúť Obmedzené Boltzmannove stroje (RBM), Variačné automatické kódovače (VAE)a samozrejme GAN.

Generative Adversarial Networks boli prvýkrát navrhol Ian Goodfellow v roku 2014a boli vylepšené Alecom Redfordom a ďalšími výskumníkmi v roku 2015, čo viedlo k štandardizovanej architektúre pre GAN. GAN sú vlastne dve rôzne siete spojené dohromady. GAN sú skladá sa z dvoch polovíc: generačný model a diskriminačný model, tiež označovaný ako generátor a diskriminátor.

Architektúra GAN

Generatívne adverzné siete sú zostavené z modelu generátora a modelu diskriminátora dohromady. Úlohou modelu generátora je vytvárať nové príklady údajov na základe vzorov, ktoré sa model naučil z trénovacích údajov. Úlohou diskriminačného modelu je analyzovať obrázky (za predpokladu, že je trénovaný na obrázkoch) a určiť, či sú obrázky generované/falošné alebo pravé.

Dva modely sú postavené proti sebe, trénované teoretickým spôsobom hry. Cieľom modelu generátora je vytvárať obrázky, ktoré klamú jeho protivníka – model diskriminátora. Medzitým je úlohou diskriminačného modelu prekonať svojho protivníka, model generátora, a zachytiť falošné obrázky, ktoré generátor vytvára. Skutočnosť, že modely stoja proti sebe, má za následok preteky v zbrojení, kde sa oba modely zlepšujú. Diskriminátor dostane spätnú väzbu o tom, ktoré obrázky boli pravé a ktoré obrázky vytvoril generátor, pričom generátor dostáva informácie o tom, ktoré z jeho obrázkov boli diskriminátorom označené ako falošné. Oba modely sa počas tréningu zdokonaľujú s cieľom natrénovať generačný model, ktorý dokáže produkovať falošné dáta, ktoré sú v podstate nerozoznateľné od skutočných, pravých dát.

Po vytvorení gaussovskej distribúcie údajov počas tréningu je možné použiť generatívny model. Model generátora je na začiatku napájaný náhodným vektorom, ktorý transformuje na základe Gaussovho rozdelenia. Inými slovami, vektor zasieva generáciu. Keď je model trénovaný, vektorový priestor bude komprimovanou verziou alebo reprezentáciou gaussovskej distribúcie údajov. Komprimovaná verzia distribúcie údajov sa označuje ako latentný priestor alebo latentné premenné. Neskôr môže model GAN ​​prevziať reprezentáciu latentného priestoru a vytiahnuť z nej body, ktoré možno poskytnúť modelu generovania a použiť na generovanie nových údajov, ktoré sú veľmi podobné trénovacím údajom.

Diskriminačný model je napájaný príkladmi z celej trénovacej domény, ktorá pozostáva z reálnych aj generovaných dátových príkladov. Skutočné príklady sú obsiahnuté v tréningovom súbore údajov, zatiaľ čo falošné údaje vytvára generatívny model. Proces trénovania diskriminačného modelu je úplne rovnaký ako trénovanie základného modelu s binárnou klasifikáciou.

Tréningový proces GAN

Pozrime sa na celok výcvik proces pre hypotetickú úlohu generovania obrazu.

Na začiatok je GAN trénovaný s použitím skutočných, skutočných obrázkov ako súčasť tréningového súboru údajov. Tým sa nastaví model diskriminátora na rozlíšenie medzi generovanými obrázkami a skutočnými obrázkami. Vytvára tiež distribúciu údajov, ktorú generátor použije na výrobu nových údajov.

Generátor preberá vektor náhodných číselných údajov a transformuje ich na základe Gaussovho rozdelenia, pričom vracia obraz. Takto vygenerované obrázky sa spolu s niektorými skutočnými obrázkami z tréningového súboru údajov vkladajú do modelu diskriminátora. Diskriminátor vytvorí pravdepodobnostnú predpoveď o povahe obrázkov, ktoré prijíma, pričom výstupom bude hodnota medzi 0 a 1, kde 1 sú typicky autentické obrázky a 0 je falošný obrázok.

V hre je dvojitá spätná väzba, pretože pozemný diskriminátor je napájaný základnou pravdou obrázkov, zatiaľ čo generátor dostáva spätnú väzbu o svojom výkone od diskriminátora.

Generatívne a diskriminačné modely medzi sebou hrajú hru s nulovým súčtom. Hra s nulovým súčtom je hra, kde zisky jednej strany prichádzajú na úkor druhej strany (súčet je, že obe akcie sú nula ex). Keď je model diskriminátora schopný úspešne rozlíšiť medzi skutočnými a falošnými príkladmi, nerobia sa žiadne zmeny v parametroch diskriminátora. Keď však nedokáže rozlíšiť medzi skutočnými a falošnými obrázkami, urobia sa veľké aktualizácie parametrov modelu. Pre generatívny model platí opak, je penalizovaný (a jeho parametre aktualizované), keď sa mu nepodarí oklamať diskriminačný model, ale inak sú jeho parametre nezmenené (alebo je odmenený).

V ideálnom prípade je generátor schopný zlepšiť svoj výkon do bodu, keď diskriminátor nedokáže rozlíšiť medzi falošnými a skutočnými obrázkami. To znamená, že diskriminátor bude vždy vykresľovať pravdepodobnosť 50 % pre skutočné a falošné obrázky, čo znamená, že vygenerované obrázky by mali byť na nerozoznanie od pravých obrázkov. V praxi GAN zvyčajne nedosiahnu tento bod. Generatívny model však nemusí vytvárať dokonale podobné obrázky, aby bol stále užitočný pre mnohé úlohy, na ktoré sa GAN používajú.

Aplikácie GAN

GAN majú množstvo rôznych aplikácií, z ktorých väčšina sa točí okolo generovania obrázkov a komponentov obrázkov. GAN sa bežne používajú v úlohách, kde požadované obrazové dáta chýbajú alebo sú v určitej kapacite obmedzené, ako metóda generovania požadovaných dát. Pozrime sa na niektoré bežné prípady použitia sietí GAN.

Generovanie nových príkladov pre množiny údajov

GAN je možné použiť na generovanie nových príkladov pre jednoduché obrazové súbory údajov. Ak máte len niekoľko príkladov školenia a potrebujete ich viac, GAN by sa mohli použiť na generovanie nových školiacich údajov pre klasifikátor obrázkov, čím sa generujú nové príklady školenia v rôznych orientáciách a uhloch.

Vytváranie jedinečných ľudských tvárí

Žena na tejto fotke neexistuje. Obrázok vygeneroval StyleGAN. Foto: Owlsmcgee cez Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Keď sú dostatočne vyškolení, GANs sa dajú použiť vytvárať mimoriadne realistické obrazy ľudských tvárí. Tieto vygenerované obrázky môžu byť použité na pomoc pri trénovaní systémov rozpoznávania tvárí.

Preklad z obrázku na obrázok

GAN excel pri preklade obrázkov. GAN je možné použiť na zafarbenie čiernobielych obrázkov, preloženie náčrtov alebo kresieb na fotografické obrázky alebo na prevod obrázkov zo dňa na noc.

Preklad textu na obrázok

Preklad textu na obrázok je možné pomocou GAN. Ak je GAN poskytnutý s textom, ktorý popisuje obrázok a sprievodný obrázok byť vyškolení na vytváranie nového imidžu keď je poskytnutý popis požadovaného obrázka.

Úprava a oprava obrázkov

GAN je možné použiť na úpravu existujúcich fotografií. siete GAN odstráňte prvky ako dážď alebo sneh z obrázka, ale dá sa na ne aj použiť opraviť staré, poškodené obrázky alebo poškodené obrázky. 

Super rozlíšenie

Super rozlíšenie je proces nasnímania obrázka s nízkym rozlíšením a vloženia väčšieho počtu pixelov do obrázka, čím sa zlepší rozlíšenie tohto obrázka. GAN je možné trénovať na vytváranie obrázkov vygenerovať verziu tohto obrázka vo vyššom rozlíšení. 

Bloger a programátor so špecializáciou v Strojové učenie a Deep Learning témy. Daniel dúfa, že pomôže ostatným využívať silu AI pre sociálne dobro.