Generative Adversarial Networks (GAN): Úvod

Generativní adversariální sítě (GAN) jsou jednou z moderních technologií, které nabízejí velký potenciál v mnoha případech použití, od vytváření vašich starých obrázků a rozšiřování vašeho hlasu až po poskytování různých aplikací v lékařství a dalších odvětvích.

Tato pokročilá technologie vám může pomoci utvářet vaše produkty a služby. Lze jej také použít ke zlepšení kvality obrazu pro uchování vzpomínek.

I když jsou sítě GAN pro mnohé přínosem, někteří to považují za znepokojivé.

Ale co je to přesně za technologii?

V tomto článku budu diskutovat o tom, co je GAN, jak funguje a jaké jsou jeho aplikace.

Takže, pojďme se rovnou ponořit!

Co je generativní adversariální síť?

Generative Adversarial Network (GAN) je systém strojového učení sestávající ze dvou neuronových sítí, které soutěží o vytváření přesnějších předpovědí, jako jsou obrázky, jedinečná hudba, kresby a tak dále.

GANs navrhl v roce 2014 počítačový vědec a inženýr Ian Goodfellow a někteří jeho kolegové. Jsou to jedinečné hluboké neuronové sítě schopné generovat nová data podobná těm, na kterých se trénují. Soutěží ve hře s nulovým součtem, která vede k tomu, že jeden agent hru prohraje, zatímco druhý ji vyhraje.

Původně byly GAN navrženy jako generativní model pro strojové učení, hlavně učení bez dozoru. Ale GAN jsou také užitečné pro učení s úplným dohledem, učení s částečným dohledem a učení s posilováním.

Dva bloky soutěží v GAN jsou:

Generátor: Je to konvoluční neuronová síť, která uměle produkuje výstupy podobné skutečným datům.

Diskriminátor: Je to dekonvoluční neuronová síť, která dokáže identifikovat ty výstupy, které jsou uměle vytvořeny.

Klíčové koncepty

Abychom lépe porozuměli konceptu GAN, pojďme rychle pochopit některé důležité související koncepty.

strojové učení (ML)

Strojové učení je součástí umělé inteligence (AI), která zahrnuje učení a vytváření modelů využívajících data ke zvýšení výkonu a přesnosti při provádění úkolů nebo rozhodování či předpovědi.

Algoritmy ML vytvářejí modely založené na trénovacích datech a zlepšují se neustálým učením. Používají se v mnoha oblastech, včetně počítačového vidění, automatizovaného rozhodování, filtrování e-mailů, lékařství, bankovnictví, kvality dat, kybernetické bezpečnosti, rozpoznávání řeči, systémů doporučení a dalších.

Diskriminační model

V hlubokém učení a strojovém učení funguje rozlišovací model jako klasifikátor pro rozlišení mezi sadou úrovní nebo dvěma třídami.

Například rozlišování mezi různými druhy ovoce nebo zvířat.

Generativní model

V generativních modelech jsou náhodné vzorky považovány za vytvoření nových realistických obrázků. Učí se ze skutečných obrazů některých předmětů nebo živých věcí, aby vytvořil své vlastní realistické, ale napodobené nápady. Tyto modely jsou dvou typů:

Variační autokodéry: Využívají kodéry a dekodéry, které jsou samostatnými neuronovými sítěmi. To funguje, protože daný realistický obraz prochází kodérem, aby tyto obrazy reprezentoval jako vektory v latentním prostoru.

Dále je použit dekodér, který provede tyto interpretace a vytvoří nějaké realistické kopie těchto obrázků. Zpočátku může být jeho kvalita obrazu nízká, ale zlepší se, až bude dekodér plně funkční a kodér můžete ignorovat.

Generativní adversariální sítě (GAN): Jak bylo uvedeno výše, GAN je hluboká neuronová síť schopná generovat nová, podobná data z datového vstupu, který je jí poskytnut. Spadá pod strojové učení bez dozoru, což je jeden z typů strojového učení probíraného níže.

  Jak hrát The Room na Linuxu

Učení pod dohledem

Při výcviku pod dohledem je stroj trénován pomocí dobře označených dat. To znamená, že některá data již budou označena správnou odpovědí. Zde jsou stroji poskytnuta některá data nebo příklady, které umožňují algoritmu učení pod dohledem analyzovat trénovací data a vytvářet přesný výsledek z těchto označených dat.

Učení bez dozoru

Učení bez dozoru zahrnuje trénování stroje pomocí dat, která nejsou označena ani klasifikována. Umožňuje algoritmu strojového učení pracovat s těmito daty bez vedení. Při tomto typu učení je úkolem stroje kategorizovat netříděná data na základě vzorů, podobností a rozdílů bez předchozího trénování dat.

Takže GAN jsou spojeny s prováděním učení bez dozoru v ML. Má dva modely, které mohou automaticky odhalovat a učit se vzory ze vstupních dat. Tyto dva modely jsou generátor a diskriminátor.

Pojďme jim trochu více porozumět.

Části GAN

Termín „adversarial“ je v GAN zahrnut, protože má dvě části – generátor a jmenovatel, které si konkurují. To se provádí za účelem zachycení, prozkoumání a replikace datových variací v datové sadě. Pojďme lépe porozumět těmto dvěma částem GAN.

Generátor

Generátor je neuronová síť schopná učit se a generovat falešné datové body, jako jsou obrázky a zvuk, které vypadají realisticky. Používá se při školení a zlepšuje se neustálým učením.

Data generovaná generátorem jsou použita jako negativní příklad pro druhou část – jmenovatele, který uvidíme dále. Generátor používá náhodný vektor s pevnou délkou jako vstup, aby vytvořil vzorový výstup. Jeho cílem je předložit výstup před diskriminátor, aby mohl klasifikovat, zda je skutečný nebo falešný.

Generátor je vyškolen s těmito komponenty:

  • Šumové vstupní vektory
  • Generátorová síť pro transformaci náhodného vstupu na datovou instanci
  • Diskriminační síť pro klasifikaci generovaných dat
  • Ztráta generátoru penalizuje generátor, protože nedokáže oklamat diskriminátor

Generátor funguje jako zloděj, replikuje a vytváří realistická data, aby oklamal diskriminátor. Jeho cílem je obejít několik prováděných kontrol. Přestože může v počátečních fázích velmi selhat, neustále se zlepšuje, dokud nevygeneruje více realistických, vysoce kvalitních dat a dokáže se vyhnout testům. Po dosažení této schopnosti můžete používat pouze generátor, aniž byste potřebovali samostatný diskriminátor.

Diskriminátor

Diskriminátor je také neuronová síť, která dokáže rozlišit mezi falešným a skutečným obrázkem nebo jinými datovými typy. Stejně jako generátor hraje důležitou roli během tréninkové fáze.

Chová se jako policie, aby chytila ​​zloděje (falešná data generátorem). Jeho cílem je odhalit falešné obrazy a abnormality v datové instanci.

Jak již bylo zmíněno dříve, generátor se učí a neustále se zlepšuje, aby dosáhl bodu, kdy se stane soběstačným při vytváření vysoce kvalitních obrázků, které nevyžadují diskriminátor. Když přes diskriminátor projdou kvalitní data z generátoru, nedokáže již rozlišit mezi skutečným a falešným obrazem. Takže je dobré jít pouze s generátorem.

Jak GAN funguje?

V generativní adversariální síti (GAN) zahrnují tři věci:

  • Generativní model k popisu způsobu generování dat.
  • Kontrastní prostředí, kde se trénuje model.
  • Hluboké neuronové sítě jako AI algoritmy pro trénink.

Dvě neuronové sítě GAN – generátor a diskriminátor – se používají ke hře protivníka. Generátor bere vstupní data, jako jsou zvukové soubory, obrázky atd., aby vygeneroval podobnou datovou instanci, zatímco diskriminátor ověřuje pravost této datové instance. Ten určí, zda je instance dat, kterou zkontrolovala, skutečná nebo jiná.

Chcete například ověřit, zda je daný obrázek skutečný nebo falešný. Pro vstup do generátoru můžete použít ručně generované datové vstupy. Jako výstup vytvoří nové, replikované obrázky.

  Jak zakázat nebo odstranit animace PowerPoint

Generátor přitom usiluje o to, aby všechny obrázky, které generuje, byly považovány za autentické, přestože jsou falešné. Chce to vytvořit přijatelné výsledky pro lhaní a vyhnout se přistižení.

Dále tento výstup půjde do diskriminátoru spolu se sadou obrázků ze skutečných dat, aby se zjistilo, zda jsou tyto obrázky autentické nebo ne. Na generátor působí nepříznivě bez ohledu na to, jak moc se snaží napodobovat; diskriminátor pomůže odlišit faktická data od falešných.

Diskriminátor vezme falešná i skutečná data, aby vrátil pravděpodobnost 0 nebo 1. Zde 1 představuje pravost, zatímco 0 představuje falešná.

V tomto procesu existují dvě zpětnovazební smyčky:

  • Generátor se spojí se zpětnovazební smyčkou s diskriminátorem
  • Diskriminátor spojuje další zpětnovazební smyčku se sadou skutečných obrázků

Školení GAN funguje, protože se trénuje generátor i diskriminátor. Generátor se neustále učí předáváním falešných vstupů, zatímco diskriminátor se naučí zlepšit detekci. Zde je obojí dynamické.

Diskriminátor je konvoluční síť schopná kategorizovat obrázky, které jsou mu dodány. Funguje jako binomický klasifikátor pro označení obrázků jako falešných nebo skutečných.

Na druhou stranu je generátor jako inverzní konvoluční síť odebírající náhodné vzorky dat k vytváření obrázků. Diskriminátor však ověřuje data pomocí technik downsamplingu, jako je max-pooling.

Obě sítě se snaží optimalizovat protichůdnou a odlišnou ztrátovou nebo cílovou funkci v nepřátelské hře. Jejich ztráty jim umožňují tlačit proti sobě ještě tvrději.

Typy GAN

Generativní nepřátelské sítě jsou různých typů na základě implementace. Zde jsou hlavní aktivní typy GAN:

  • Podmíněný GAN (CGAN): Je to technika hlubokého učení, která zahrnuje specifické podmíněné parametry, které pomáhají rozlišovat mezi skutečnými a falešnými daty. Zahrnuje také další parametr – „y“ ve fázi generátoru pro vytvoření odpovídajících dat. K tomuto vstupu se také přidávají štítky a přivádějí se do diskriminátoru, aby mohl ověřit, zda jsou data autentická nebo falešná.
  • Vanilla GAN: Je to jednoduchý typ GAN, kde diskriminátor a generátor jsou jednodušší a vícevrstvé perceptrony. Jeho algoritmy jsou jednoduché, optimalizují matematickou rovnici pomocí stochastického sestupu gradientu.
  • Deep Convolutional GAN ​​(DCGAN): Je populární a považován za nejúspěšnější implementaci GAN. DCGAN se skládá spíše z ConvNetů než z vícevrstvých perceptronů. Tyto ConvNets se aplikují bez použití technik, jako je max-pooling nebo úplné propojení vrstev.
  • Super Resolution GAN (SRGAN): Jedná se o implementaci GAN, která využívá hlubokou neuronovou síť vedle sítě protivníka, aby pomohla vytvářet obrazy vysoké kvality. SRGAN je zvláště užitečný při efektivním převzorkování původních obrázků s nízkým rozlišením, aby byly vylepšeny jejich detaily a minimalizovány chyby.
  • Laplaciánská pyramida GAN (LAPGAN): Je to invertibilní a lineární reprezentace, která obsahuje více pásmových propustných obrázků, které jsou umístěny osm mezer od sebe s nízkofrekvenčními zbytky. LAPGAN využívá několik sítí diskriminátorů a generátorů a několik úrovní Laplaciových pyramid.

LAPGAN je široce používán, protože poskytuje špičkovou kvalitu obrazu. Tyto obrázky se nejprve v každé pyramidové vrstvě převzorkují dolů a poté se v každé vrstvě zvýší měřítko, kde je nápadům dán určitý šum, dokud nezíská původní velikost.

Aplikace GAN

Generativní adversariální sítě se používají v různých oblastech, jako jsou:

Věda

GAN mohou poskytnout přesný a rychlejší způsob, jak modelovat tvorbu vysokoenergetických paprsků a provádět fyzikální experimenty. Tyto sítě lze také trénovat k odhadu úzkých míst při provádění simulací pro částicovou fyziku, které spotřebovávají velké zdroje.

GAN mohou urychlit simulaci a zlepšit věrnost simulace. Kromě toho mohou GAN pomoci studovat temnou hmotu simulací gravitační čočky a vylepšením astronomických snímků.

Videohry

Svět videoher také využil GAN ​​k upgradu dvourozměrných dat s nízkým rozlišením používaných ve starších videohrách. Pomůže vám znovu vytvořit taková data do rozlišení 4k nebo ještě vyššího pomocí tréninku obrazu. Dále můžete převzorkovat data nebo obrázky, aby byly vhodné pro skutečné rozlišení videohry.

  Jak obnovit smazaný dokument Google z Disku Google

Poskytněte svým modelům GAN řádné školení. Mohou nabídnout ostřejší a jasnější 2D obrazy působivé kvality ve srovnání s nativními daty a zároveň zachovat skutečné detaily obrazu, jako jsou barvy.

Videohry, které využívají GAN, zahrnují Resident Evil Remake, Final Fantasy VIII a IX a další.

Umění a móda

GANy můžete použít ke generování umění, jako je vytváření obrázků jednotlivců, kteří nikdy neexistovali, malované fotografie, vytváření obrázků neskutečných módních modelů a mnoho dalších. Používá se také ve výkresech generujících virtuální stíny a skici.

Reklamní

Používání sítí GAN k vytváření a vytváření reklam ušetří čas a zdroje. Jak je vidět výše, pokud chcete prodat své šperky, můžete si pomocí GAN vytvořit imaginární model, který vypadá jako skutečný člověk.

Tímto způsobem můžete nechat modelku nosit vaše šperky a předvést je svým zákazníkům. Ušetří vám to najímání modelky a placení za ni. Můžete dokonce eliminovat dodatečné výdaje, jako je platba za dopravu, pronájem studia, zařizování fotografů, vizážistů atd.

To výrazně pomůže, pokud jste rozvíjející se firma a nemůžete si dovolit najmout modelku nebo umístit infrastrukturu pro natáčení reklam.

Syntéza zvuku

Pomocí GAN můžete vytvářet zvukové soubory ze sady zvukových klipů. Toto je také známé jako generativní zvuk. Nezaměňujte to s hlasy Amazon Alexa, Apple Siri nebo jinými hlasy AI, kde jsou hlasové fragmenty dobře sešity a vytvořeny na vyžádání.

Místo toho generativní zvuk využívá neuronové sítě ke studiu statistických vlastností zdroje zvuku. Dále přímo reprodukuje tyto vlastnosti v daném kontextu. Zde modelování představuje způsob, jakým se řeč mění po každé milisekundě.

Přenos učení

Pokročilé studie přenosového učení využívají GAN k zarovnání nejnovějších funkcí, jako je hluboké učení. Za tímto účelem jsou vložení zdroje a cílový úkol předány diskriminátoru, aby určil kontext. Dále je výsledek zpětně šířen prostřednictvím kodéru. Tímto způsobem se model stále učí.

Mezi další aplikace GAN patří:

  • Diagnostika celkové nebo částečné ztráty zraku detekcí glaukomových obrazů
  • Vizualizujte průmyslový design, interiérový design, oděvy, boty, tašky a další
  • rekonstruovat forenzní rysy obličeje nemocného člověka
  • vytvářet 3D modely předmětu z obrázku, vytvářet nové objekty jako 3D mračno bodů, modelovat pohybové vzory ve videu
  • Ukažte vzhled osoby s měnícím se věkem
  • Rozšíření dat, jako je vylepšení klasifikátoru DNN
  • Dokreslete chybějící prvek v mapě, vylepšete zobrazení ulic, přeneste styly mapování a další
  • Vytvářejte obrázky, nahraďte systém vyhledávání obrázků atd.
  • Generujte řídicí vstupy do nelineárního dynamického systému pomocí variace GAN
  • Analyzujte dopady klimatických změn na dům
  • Vytvořte tvář osoby tím, že použijete její hlas jako vstup
  • Vytvořte nové molekuly pro několik proteinových cílů při rakovině, fibróze a zánětu
  • Animujte gify z běžného obrázku

Aplikací GANů v různých oblastech je mnohem více a jejich využití se rozšiřuje. Existuje však také několik případů jeho zneužití. Lidské obrazy založené na GAN byly použity pro zlověstné případy použití, jako je vytváření falešných videí a obrázků.

GAN lze také použít k vytvoření realistických fotografií a profilů lidí na sociálních sítích, které na Zemi nikdy neexistovaly. Mezi další zneužívání GNA patří vytváření falešné pornografie bez souhlasu uváděných osob, šíření padělaných videí politických kandidátů a tak dále.

Ačkoli GNA mohou být přínosem v mnoha oblastech, jejich zneužití může být také katastrofální. Pro jeho použití je proto nutné dodržovat správné pokyny.

Závěr

GAN jsou jedním z pozoruhodných příkladů moderní technologie. Poskytuje jedinečný a lepší způsob generování dat a pomáhá ve funkcích, jako je vizuální diagnostika, syntéza obrazu, výzkum, rozšiřování dat, umění a věda a mnoho dalších.

Také by vás mohly zajímat platformy strojového učení s nízkým kódem a bez kódu pro vytváření inovativních aplikací.