DiscoGANide demineerimine | AI poole

DiscoGANs-võrk, mis loob kingapiltidelt ja asepresidendilt sobivaid kotte

Sissejuhatus

Discovery GAN (DiscoGAN) on generatiivne võistlev võrk, mis genereerib domeenis B olevate toodete pilte, millel on domeeni A pilt. See kannab stilistilisi elemente ühelt pildilt teisele, kandes seega tekstuuri ja kaunistusi moekaupadelt nagu kott veel üks moekaup, näiteks kingapaar. Sellel GAN-il on arvukalt rakendusi mängu- ja moetööstuses ning see on huvilisele lugejale väärt uurimist.

Standardne GAN (Goodfellow jt, 2014)GAN koos rekonstrueerimise kaotusegaKavandatud mudel (DiscoGAN) on loodud kahe paarimata, sildistamata andmekogude vaheliste seoste avastamiseks

Kõrgetasemelise DiscoGANi arhitektuuriskeem

Kõrgetasemelise DiscoGANi arhitektuuriskeem

DiscoGANil on kaks generaatorit, üks kaardistamiseks käekottidest (tähisega A) kingadeni (tähisega B) ja teine ​​vastupidiseks.

  • Esimene generaator kaardistab sisendpildi domeenist A domeenini B,
  • Teine generaator rekonstrueerib pildi domeenist B domeenini A.
  • Domeenis B loodud pildid sarnanevad nii stiilis kui ka mustris domeenis A olevatele piltidele. Seda suhet saab õppida ilma, et koolituse ajal kahest domeenist pilte selgesõnaliselt paaritaks.
  • DiscoGANs proovib õppida kahte generaatori funktsiooni G (ab) ja G (ba). Kui kujutist xA edastatakse generaatori G (ab) kaudu, genereerib see kujutise xAB, mis tundub domeenis B realistlik.
  • Kui see kujutis xAB voolab läbi teise generaatorivõrgu G (ba), peaks see andma pildi xABA, mis ideaaljuhul peaks olema sama mis algne pilt xA
  • Seda suhet saab õppida ilma, et koolituse ajal kahest domeenist pilte selgesõnaliselt paaritaks. See on üsna võimas võime, arvestades, et üksuste sidumine on aeganõudev ülesanne.

Matemaatiliselt saab seda kirjeldada järgmiselt

Generaatori funktsiooni osas peaks järgmine suhe kehtima

Generaatori funktsioonidel G (ab) ja G (ba) pole võimalik praktiliselt üksteise ümberpööramist, seega peame minimeerima kaotuse rekonstrueeritud pildi ja algse pildi vahel. Sel eesmärgil saame kasutada kas L1 või L2 seadustamist.

  • L1 seadistamine on iga andmepunkti absoluutvea summa.
  • L2 seadistamine on iga andmepunkti ruutkaotuse summa.
  • Saame ühe pildi L2 normaliseerimiskaotuse funktsiooni näidata järgmiselt.
  • L2 normeeritud kaotuse minimeerimisest ei piisa. Peame tagama, et loodud pilt xB näib domeenis B realistlik. Nagu siis, kui kaardistame domeeni A kotid domeeni B kingadega, peaksime tagama, et xB näeb välja nagu kinga.
  • Domeeni B diskrimineerija Db tuvastab xB võltsina, kui pilt pole kingana piisavalt realistlik, tuleb seda kaotust arvestada.
  • Treeningul edastatakse diskrimineerijale sisendina nii genereeritud kujutised (xAB = G (ab) (xA)) kui ka originaalsed (yB) pildid domeenis B, nii et see õpiks klassifitseerima tegelikke pilte võltskaadritest
  • Generaatori kaotus domeeni A pildi xA ja domeeni B pildi kaardistamise kohta saab kirjutada järgmiselt.
  • Ja rekonstrueerimiskadu L2 normi alusel võib kirjutada järgmiselt.

Generaator proovib muuta kujutise xAB, mis tundub diskrimineerija jaoks realistlik.

Diskrimineerija proovib muudetud pilti võltskujutisena märgistada, nii et generaator G (ab) peaks genereerima pildi xAB viisil, et võltskujutisest tulenev logikaotus oleks võimalikult väike.

Kui B-domeenis olev diskrimineerija D (b) sildistab reaalkujutisi 1 ja võltskujutisi 0. Kujutise reaalse tõenäosuse annab D (b) (.).

Seejärel üritab generaator muuta pildi xAB suure tõenäosusega diskrimineerija võrgus reaalseks sildistamiseks. See tähendab, et generaator proovib muuta D (b) (xB) = D (b) (G (ab) (xA)) võimalikult lähedaseks 1 kui võimalik.

Logi kaotuse osas peaks generaator minimeerima tõenäosuse negatiivse logi, mis annab meile C (D (ab)), nagu allpool kirjutatud.

Ülaltoodud funktsiooni ühendades saame pildi genereerimise kogukulud C_GAB pildi kaardistamise domeenist A domeeniks B.

Generaator G (ba) kaardistab pildid domeenist B domeenini A. Pilt xB domeenis B, mis on generaatori G (ba) poolt muudetud kujutiseks xBA ja domeeni A diskrimineerijaks on antud D (a), siis on sellega seotud kulufunktsioon sellise teisendusega annab järgmine.

Kõigi piltide generaatori kadu mõlemas domeenis annaks järgmine.

Diskrimineeriva kulu funktsioon

Mõlema domeeni diskrimineerijad üritavad tegelikke pilte võltskujutistest eristada, seetõttu püüab diskrimineerija G (b) minimeerida kulusid C_D (b), nagu allpool näidatud.

Sarnaselt proovib diskrimineerija D (a) minimeerida C_DA kulusid, nagu allpool näidatud.

Diskrimineeriva kogukulu arvutatakse C (d) abil järgmiselt.

Sarnasus CycleGANi ja DiscoGANi vahel

  • CycleGAN ja DiscoGAN on mõlemad peaaegu sarnased. CycleGAN-ides on üks muudatus, sellel on lisaks hüperparameeter, et kohandada rekonstrueerimise / tsükli järjepidevuse kaotuse panust üldises kadude funktsioonis. See paindlikkus määrab, kui palju kaalu rekonstrueerimise kaotusele omistatakse seoses GAN-i kaotusega või diskrimineerijale omistatava kaotusega.
  • See hüperparameeter tasakaalustab kadusid, et aidata võrgul treenimise ajal kiiremini sulanduda.
  • Ülejäänud CycleGAN-i rakendused on samad, mis DiscoGAN-ide rakendamisel.

Selle postituse juurde kuuluv jupyteri märkmik on saadaval Githubis.

Järeldus

Üks DiscoGANi lahedaid rakendusi on dekoratsioonide ülekandmine moekaupadelt, näiteks kotilt, teisele moeesemele, näiteks kingapaarile.

Loodetavasti aitas see artikkel teil oma DiscoGAN-ide ehitamist alustada. Ma arvan, et see annab vähemalt DiscoGANide kohta hea seletuse ja mõistmise.