Demistificiranje DiscoGAN-ov | Proti AI

DiscoGANs Network, ustvarjanje ujemajočih se vrečk s slik čevljev in vice Versa

Uvod

Discovery GAN (DiscoGAN) je generativno oglaševalsko omrežje, ki ustvarja slike izdelkov v domeni B, ki imajo podobo domene A. Prenaša slogovne elemente z ene slike na drugo in tako prenaša teksturo in dekoracijo z modnega predmeta, kot je torba, na še en modni artikel, kot je par čevljev. Ta GAN ima številne aplikacije v igralni in modni industriji in jih je vredno še podrobneje raziskati za zainteresiranega bralca.

Standardni GAN (Goodfellow in sod., 2014)GAN z izgubo obnovePredlagani model (DiscoGAN) je zasnovan tako, da odkrije povezave med dvema neprimernima nizoma podatkov

Diagram arhitekture na visoki ravni DiscoGAN

Diagram arhitekture na visoki ravni DiscoGAN

DiscoGAN bo imel dva Generatorja, enega za preslikavo iz torbic (z A) do čevljev (z B), drugega pa za obratno.

  • Prvi generator preslika vhodno sliko iz domene A v domeno B,
  • Drugi generator rekonstruira sliko iz domene B v domeno A.
  • Slike, ustvarjene v domeni B, so v slogu in vzorcu podobne slike v domeni A. Ta odnos se lahko naučimo, če med vadbo izrecno ne združimo slik z obeh domen.
  • DiscoGANs poskuša naučiti dve funkciji generatorja G (ab) in G (ba). Ko se slika xA, poda skozi Generator G (ab), ustvari sliko xAB, ki je videti resnično v domeni B.
  • Ko se ta slika xAB napaja skozi drugo omrežje G (ba) generatorja, mora ustvariti sliko xABA, ki bi morala biti enaka prvotni sliki xA
  • Ta odnos se lahko naučimo, če med vadbo izrecno ne združimo slik z obeh domen. To je precej močna sposobnost, saj je seznanjanje predmetov zamudno opravilo.

Matematično si to lahko predstavljamo na naslednji način

Glede funkcije generatorja bi moralo veljati naslednje razmerje

Funkciji generatorja G (ab) in G (ba) praktično ne moreta preusmeriti medsebojno, zato moramo izgubo med rekonstruirano sliko in prvotno sliko čim bolj zmanjšati. V ta namen lahko uporabimo L1 ali L2 regularizacijo.

  • Regulalizacija L1 je vsota absolutne napake za vsako podatkovno točko.
  • Regularizacija L2 je vsota izgube v kvadratu za vsako podatkovno točko.
  • Funkcijo izgube regulatorja L2 za eno sliko lahko pokažemo na naslednji način.
  • Zmanjšanje normirane izgube za L2 ne bo dovolj. Zagotoviti moramo, da ustvarjena slika xB izgleda realistično v domeni B. Tako kot če preslikamo vrečke v domeni A na čevlje v domeni B, bi morali zagotoviti, da je xB videti kot čevelj.
  • Diskriminator Db na domeni B bo xB zaznal kot ponarejen, če slika ni dovolj realistična kot čevelj, to izgubo je treba upoštevati.
  • Na treningu bodo tako ustvarjene slike (xAB = G (ab) (xA)) kot izvirne (yB) slike v domeni B podane kot vložek v Diskriminacijo, tako da se nauči razvrstiti resnične slike iz ponarejenih
  • Izguba generatorja preslikave slike xA v domeni A na sliko v domeni B lahko zapišemo, kot je prikazano spodaj.
  • In izgubo obnove po normi L2 lahko zapišemo, kot je prikazano spodaj.

Generator poskuša pretvoriti sliko xAB, ki je realistična v Diskriminacijo.

Diskriminator poskuša preoblikovano sliko označiti kot ponarejeno sliko, zato naj bi generator G (ab) ustvaril sliko xAB na način, da je izguba dnevnika zaradi ponarejene slike čim manjša.

Če Diskriminator D (b) v domeni B označi 1 za resnične slike in 0 za ponarejene slike. Verjetnost, da je slika resnična, je podana z D (b) (.).

Nato Generator poskuša narediti sliko xAB zelo verjetno označiti kot resnično v mreži Discriminator. To pomeni, da bo Generator poskusil narediti, da je D (b) (xB) = D (b) (G (ab) (xA)) čim bližje 1 mogoče.

Glede izgube dnevnika bi moral generator kar najbolj zmanjšati negativni dnevnik verjetnosti, ki nam daje C (D (ab)), kot je zapisano spodaj.

Če združimo zgornjo funkcijo, lahko dobimo skupni strošek generatorja C_GAB preslikave slike iz domene A v domeno B.

Generator G (ba) preslika slike iz domene B v domeno A. Sliko xB v domeni B, ki jo Generator G (ba) pretvori v sliko xBA, diskriminacijo v domeni A pa dodeli D (a), nato pa je povezana funkcija stroškov s takšno preobrazbo poda naslednje.

Izgubo generatorja za vse slike v obeh domenah bi imelo naslednje.

Funkcija stroškov diskriminatorja

Diskriminatorji na obeh področjih poskušajo razlikovati resnične slike od ponarejenih slik, zato Diskriminator G (b) poskuša čim bolj zmanjšati stroške C_D (b), kot je prikazano spodaj.

Podobno Discriminator D (a) poskuša zmanjšati stroške C_DA, kot je prikazano spodaj.

Skupni stroški za diskriminacijo so podani s C (d), kot sledi.

Podobnost med CycleGAN in DiscoGAN

  • CycleGAN in DiscoGAN sta si skoraj podobna. V CycleGAN je ena sprememba, ima dodaten hiperparameter za prilagoditev prispevka obnove / cikla-doslednosti izgube v celotni funkciji izgube. Ta prilagodljivost določa, koliko teže dodeliti izgubi za obnovo glede na izgubo GAN ali izgubo, pripisano Discriminatorju.
  • Ta hiper-parameter uravnava izgube in tako pomaga, da se omrežje hitreje zbliža med treningom.
  • Preostali del implementacije CycleGAN je enak kot pri DiscoGAN-u.

V Githubu je na voljo posnetek beležnice za jupiter.

Zaključek

Ena izmed kul aplikacij DiscoGAN-ov je prenos dekoracije z modnega predmeta, kot je torba, na drug modni izdelek, kot je par čevljev.

Upam, da vam je ta članek pomagal začeti graditi svoje DiscoGAN-e. Mislim, da bo to vsaj dobro razložilo in razumelo DiscoGAN.