Demystifikačné DiscoGANy Smerom k AI

Sieť DiscoGANs, generovanie párovacích vreciek z topánok a naopak

úvod

Discovery GAN (DiscoGAN) je generatívna kontradiktórna sieť, ktorá generuje obrazy produktov v doméne B s daným obrazom domény A. Prenáša štylistické prvky z jedného obrázka na druhý, čím prevádza textúru a dekoráciu z módnej položky, ako je taška, do ďalší módny predmet, napríklad topánky. Tento GAN má početné aplikácie v hernom a módnom priemysle a stojí za to ho ďalej preskúmať pre čitateľa, ktorý prejaví záujem.

Štandardný GAN (Goodfellow et al., 2014)GAN so stratou pri rekonštrukciiNavrhovaný model (DiscoGAN) bol navrhnutý tak, aby odhalil vzťahy medzi dvoma nepárovými, neznačenými súbormi údajov

Schéma architektúry DiscoGAN na vysokej úrovni

Schéma architektúry DiscoGAN na vysokej úrovni

DiscoGAN bude mať dva generátory, jeden na mapovanie z kabeliek (označených A) na topánky (označený B), druhý na opačne.

  • Prvý generátor mapuje vstupný obrázok z domény A do domény B,
  • Druhý generátor rekonštruuje obraz z domény B do domény A.
  • Obrázky generované v doméne B sa podobajú obrázkom v doméne A tak štýlom, ako aj vzorom. Tento vzťah je možné zistiť bez toho, aby sa počas tréningu výslovne spárovali obrázky z týchto dvoch domén.
  • DiscoGAN sa pokúša naučiť dve funkcie generátorov G (ab) a G (ba). Keď sa obrázok xA posúva cez generátor G (ab), vygeneruje obrázok xAB, ktorý vyzerá realisticky v doméne B.
  • Keď sa tento obrázok xAB posúva cez inú sieť G generátora G (ba), mal by vytvoriť obraz xABA, ktorý by mal byť v ideálnom prípade rovnaký ako pôvodný obrázok xA
  • Tento vzťah je možné zistiť bez toho, aby sa počas tréningu výslovne spárovali obrázky z týchto dvoch domén. Toto je pomerne silná funkcia, pretože párovanie položiek je časovo náročná úloha.

Matematicky to možno znázorniť nasledovne

Pokiaľ ide o funkciu generátora, nasledujúci vzťah by mal platiť

Nie je možné, aby sa funkcie generátora G (ab) a G (ba) navzájom inverzovali prakticky navzájom, takže musíme minimalizovať stratu medzi rekonštruovaným a pôvodným obrázkom. Na tento účel môžeme použiť regularizáciu L1 alebo L2.

  • Regularizácia L1 je súčet absolútnej chyby pre každý dátový bod.
  • Regularizácia L2 je súčet štvorcovej straty pre každý dátový bod.
  • Funkciu straty regularizácie L2 môžeme ukázať pre jeden obrázok nasledovne.
  • Minimalizácia straty štandardizovanej L2 nebude stačiť. Musíme zabezpečiť, aby vytvorený obrázok xB vyzeral realisticky v doméne B. Ako keby sme mapovali tašky v doméne A na topánky v doméne B, museli by sme zabezpečiť, aby xB vyzerala ako topánka.
  • Diskriminátor Db v doméne B zistí, že xB je falošný, ak obraz nie je dostatočne realistický ako topánka, táto strata sa musí zohľadniť.
  • V tréningu budú oba generované obrázky (xAB = G (ab) (xA)) a pôvodné (yB) obrazy v doméne B slúžiť ako vstup do Diskriminátora, aby sa naučil klasifikovať skutočné obrázky od falošných.
  • Strata generátora mapovania obrázka xA v doméne A na obraz v doméne B sa môže zapísať, ako je uvedené nižšie.
  • A strata rekonštrukcie podľa normy L2 sa dá zapísať, ako je uvedené nižšie.

Generátor sa pokúsi transformovať obraz xAB realisticky na diskriminátor.

Diskriminátor sa pokúša označiť transformovaný obraz ako falošný obraz, takže generátor G (ab) by mal vygenerovať obraz xAB takým spôsobom, aby strata záznamu, ktorá je falošným obrazom, bola čo najmenšia.

Ak diskriminačný prostriedok D (b) v doméne B značí 1 pre skutočné obrázky a 0 pre falošné obrazy. Pravdepodobnosť skutočného obrazu je daná písmenom D (b) (.).

Potom sa generátor pokúsi urobiť obrázok xAB vysoko pravdepodobným, aby sa označil ako skutočný v sieti diskriminačných zariadení, to znamená, že sa generátor pokúsi urobiť D (b) (xB) = D (b) (G (ab) (xA)) je čo najbližšie 1, ako je to možné.

Pokiaľ ide o stratu protokolu, generátor by mal minimalizovať negatívny protokol pravdepodobnosti, ktorý nám dáva C (D (ab)), ako je uvedené nižšie.

Kombináciou vyššie uvedenej funkcie môžeme získať celkové náklady generátora C_GAB na mapovanie obrázka z domény A do domény B.

Generátor G (ba) mapuje obrázky z domény B do domény A. Obrázok xB v doméne B transformovaný generátorom G (ba) na obrázok xBA a diskriminátor v doméne A je daný D (a), potom je priradená nákladová funkcia s takouto transformáciou je uvedené nasledujúce.

Strata generátora pre všetky obrázky v oboch doménach by bola daná nasledujúcim spôsobom.

Nákladová funkcia diskriminačného orgánu

Diskriminátori v oboch doménach sa snažia rozlíšiť skutočné obrazy od falošných obrazov, takže sa diskriminátor G (b) snaží minimalizovať náklady C_D (b), ako je to znázornené nižšie.

Podobne sa Diskriminátor D (a) snaží minimalizovať náklady C_DA, ako je uvedené nižšie.

Celkové náklady diskriminačného orgánu sú uvedené v C (d) takto.

Podobnosť medzi CycleGAN a DiscoGAN

  • CycleGAN a DiscoGAN sú takmer podobné. V CycleGAN je jedna zmena, má navyše hyperparameter na úpravu prínosu straty pri rekonštrukcii / konzistentnosti cyklu v celkovej strate. Táto flexibilita určuje, aká veľká váha sa má pripísať stratám pri rekonštrukcii vzhľadom na stratu GAN alebo stratu priradenú diskriminátorovi.
  • Tento hyperparameter vyrovnáva straty a pomáha sieti rýchlejšie sa zbližovať počas tréningu.
  • Zvyšok implementácie CycleGAN je rovnaký ako implementácia DiscoGANov.

Sprievodný notebook pre tento príspevok je k dispozícii na serveri Github.

záver

Jednou zo skvelých aplikácií DiscoGANov je prevádzka dekorácie z módneho predmetu, ako je taška, do iného módneho predmetu, napríklad z topánok.

Dúfam, že vám tento článok pomohol začať budovať vlastné DiscoGANy. Myslím si, že to aspoň poskytne dobré vysvetlenie a porozumenie o DiscoGANoch.