Kas yra GAN? Kaip ir kodėl turėtumėte juos naudoti!

Šiame straipsnyje pateikiamas išsamus „Kas yra GAN“ paaiškinimas su apribojimais ir iššūkiais, apimančiais mokymo procesą ir „Naudojimo atvejo įgyvendinimą“.

Generatyvūs rungimosi tinklai arba GAN yra generatyvus modeliavimo metodas, naudojant Gilus mokymasis protingai išmokyti modelį, kad būtų galima generuoti duomenis naudojant submodelio metodą. Šiame straipsnyje mes pabandysime išsamiai suprasti „Kas yra GAN“. Šiame straipsnyje aptariamos šios temos:

Kas yra generatyviniai modeliai?

Generaciniai modeliai yra ne kas kita, o tie, kurie naudoja metodas. Generatyviniame modelyje yra duomenų pavyzdžių, ty įvesties kintamųjų X, tačiau jame nėra išvesties kintamojo Y. Generatyviniam modeliui mokyti naudojame tik įvesties kintamuosius ir jis atpažįsta modelius iš įvesties kintamųjų, kad generuotų nežinomą išvestį. ir remiasi tik mokymo duomenimis.





Į , mes esame labiau linkę kurti nuspėjamuosius modelius iš įvesties kintamųjų, šis modeliavimo tipas yra žinomas kaip diskriminacinis modeliavimas. Klasifikuojant problemą, modelis turi atskirti, kuriai klasei pavyzdys priklauso. Kita vertus, neprižiūrimi modeliai naudojami kuriant ar generuojant naujus įvesties paskirstymo pavyzdžius.

kuo skiriasi perkrova nuo viršijimo

Norėdami apibrėžti generatyvinius modelius nespecialistiškai, galime pasakyti, kad generatyviniai modeliai sugeba iš imties generuoti naujus pavyzdžius, kurie yra ne tik panašūs į kitus pavyzdžius, bet ir taip pat niekuo neišsiskiria.



Dažniausias generatyvinio modelio pavyzdys yra a kuris dažniau naudojamas kaip diskriminacinis modelis. Kiti generatyvinių modelių pavyzdžiai yra Gauso mišinio modelis ir gana modernus pavyzdys, kuris yra „General Adversarial Networks“. Pabandykime suprasti, kas yra GAN?

Kas yra generatyvinis rungimosi tinklas?

Generatyvūs rungimosi tinklai arba GAN yra giluminiu mokymusi pagrįstas generatyvinis modelis, naudojamas neprižiūrimam mokymuisi. Iš esmės tai sistema, kurioje varžosi du Neuroniniai tinklai konkuruoti tarpusavyje kuriant ar generuojant duomenų variantus.

Pirmą kartą tai 2014 m. Aprašė Ianas Goodfellowas, o standartizuotą ir daug stabilų modelio teoriją Alecas Radfordas pasiūlė 2016 m., Kuris yra žinomas kaip DCGAN („Deep Convolutional General Adversarial Networks“). Dauguma šiandien egzistuojančių GAN naudoja DCGAN architektūrą.



GAN architektūra susideda iš dviejų submodelių, vadinamų Generatoriaus modelis ir Diskriminatoriaus modelis. Pabandykime suprasti, kaip iš tikrųjų veikia GAN.

Kaip tai veikia?

Norėdami suprasti, kaip veikia GAN, suskirstykime jį.

  • Generatyvinis - Tai reiškia, kad modelis atitinka požiūris ir yra generatyvinis modelis.
  • Varžybos - Modelis mokomas rungimosi sąlygomis
  • Tinklas - Modelio mokymui naudoja neuroninius tinklus kaip dirbtinio intelekto algoritmus.

GAN yra „Generator“ tinklas, kuris ima imtį ir sugeneruoja duomenų imtį, o po to „Discriminator“ tinklas nusprendžia, ar duomenys sugeneruojami, ar paimti iš tikrosios imties naudojant dvejetainį problema naudojant sigmoidinę funkciją, kuri suteikia išvestį diapazone nuo 0 iki 1.

schema - kas yra gnas - edureka

Generatyvinis modelis analizuoja duomenų pasiskirstymą taip, kad po mokymo etapo padidėtų tikimybė, kad diskriminatorius suklys. Kita vertus, „Discriminator“ remiasi modeliu, kuris įvertins tikimybę, kad imtis bus gaunama iš realių duomenų, o ne iš generatoriaus.

Visą procesą galima įforminti žemiau pateiktoje matematinėje formulėje.

Pagal pirmiau pateiktą formulę:

G = generatorius

D = Diskriminatorius

Pdata (x) = tikrųjų duomenų paskirstymas

Pdata (z) = generatoriaus skirstytuvas

x = pavyzdys iš realių duomenų

z = mėginys iš generatoriaus

D (x) = Diskriminatorių tinklas

G (z) = generatoriaus tinklas

Dabar ateina GAN mokymo dalis, kurią dar galima suskirstyti į 2 dalis, kurios atliekamos nuosekliai.

Kaip treniruoti GAN?

1 dalis:

Išmokykite diskriminatorių ir užšaldykite generatorių, o tai reiškia, kad generatoriui nustatytas mokymas yra pasuktas kaip „Netiesa“, o tinklas atliks tik pirmyn einantį judėjimą ir atgal nebus skleidžiamas.

Iš esmės diskriminatorius mokomas iš tikrųjų duomenų ir tikrina, ar jis gali juos teisingai nuspėti, ir tą patį su padirbtais duomenimis, kad juos būtų galima identifikuoti kaip suklastotus.

2 dalis:

Išmokykite generatorių ir užšaldykite diskriminatorių. Šioje fazėje mes gauname pirmojo etapo rezultatus ir galime juos panaudoti norėdami pagerinti ankstesnės būsenos bandymą geriau apgauti diskriminatorių.

Treniruočių žingsniai

  1. Apibrėžkite problemą - apibrėžti problemą ir rinkti duomenis.
  2. Pasirinkite GAN architektūrą - Priklausomai nuo jūsų problemos, pasirinkite, kaip turėtų atrodyti jūsų GAN.
  3. Traukinio diskriminatorius apie tikrus duomenis - Išmokykite diskriminatorių su realiais duomenimis, kad nuspręstumėte juos kaip tikrus n kartų.
  4. Generuoti netikrus įėjimus generatoriui - Sukurkite netikrus mėginius iš generatoriaus
  5. Traukinio diskriminatorius dėl netikrų duomenų - Mokykite diskriminatorių numatyti sugeneruotus duomenis kaip suklastotus.
  6. Traukinių generatorius su diskriminatoriaus galia - Gavę diskriminatoriaus prognozes, mokykite generatorių apgauti diskriminatorių

Generatyvinio rungimosi tinklo iššūkiai

GAN koncepcija yra gana patraukli, tačiau yra daug nesėkmių, kurios gali sukelti daug kliūčių jo kelyje. Kai kurie iš pagrindinių iššūkių, su kuriais susiduria GAN, yra šie:

kaip atspausdinti masyvo php
  1. Stabilumas reikalingas tarp diskriminatoriaus ir generatoriaus, kitaip visas tinklas tiesiog nukristų. Tuo atveju, jei diskriminatorius yra per galingas, generatorius visiškai nesugebės treniruotis. Ir jei tinklas yra per švelnus, bet koks vaizdas būtų sugeneruotas, todėl tinklas būtų nenaudingas.
  2. GAN nesėkmingai nesugeba nustatyti objektų padėties nustatymas kiek kartų objektas turėtų atsirasti toje vietoje.
  3. 3D perspektyva kelia problemų GAN, nes jis nesugeba suprasti perspektyva , tai dažnai duos plokščią 3 d objektų vaizdą.
  4. GAN sunku suprasti globalūs objektai . Jis negali atskirti ar suprasti holistinės struktūros.
  5. Naujesni GAN tipai yra pažangesni ir tikimasi, kad šie trūkumai bus visiškai pašalinti.

Generatyvinės rungimosi tinklo programos

Toliau pateikiamos kelios GAN programos.

Numatyti kitą kadrą vaizdo įraše

Būsimų įvykių prognozavimas vaizdo kadre yra įmanomas naudojant GAN. DVD-GAN arba „Dual Video Discriminator GAN“ gali sugeneruoti 256 × 256 vaizdo įrašus, kurių tikslumas yra iki 48 kadrų ilgio. Tai gali būti naudojama įvairiems tikslams, įskaitant stebėjimą, kai galime nustatyti veiklą rėmelyje, kuris iškraipomas dėl kitų veiksnių, tokių kaip lietus, dulkės, dūmai ir kt.

Teksto į atvaizdą generavimas

nustatyti php ant Windows

Objektyvus dėmesingas GAN (obj-GAN) atlieka teksto į vaizdą sintezę dviem etapais. Semantinio išdėstymo generavimas yra pradinis žingsnis, o tada generuojamas vaizdas sintezuojant vaizdą naudojant de-konvoliucinį vaizdo generatorių yra paskutinis žingsnis.

Tai galėtų būti intensyviai naudojama vaizdams generuoti, suprantant antraštes, maketus ir patikslinant detales sintezuojant žodžius. Yra dar vienas tyrimas apie istoriją „GAN“, kuris gali sintetinti visas siužetines plokšteles tik iš pastraipų.

Vaizdo skiriamosios gebos padidinimas

Itin didelės raiškos generatyvinis rungimosi tinklas arba SRGAN yra GAN, galintis sukurti aukštos raiškos vaizdus iš žemos raiškos vaizdų su smulkesnėmis detalėmis ir geresne kokybe.

Programos gali būti didžiulės, įsivaizduokite aukštesnės kokybės vaizdą su smulkesnėmis detalėmis, gautomis iš mažos skiriamosios gebos vaizdo. Pagalbos, kurią suteiktų žemos skiriamosios gebos vaizdų detalėms nustatyti, kiekį galima panaudoti platesniais tikslais, įskaitant stebėjimą, dokumentus, saugumą, šablonų aptikimą ir kt.

Vaizdas į vaizdą vertimas

„Pix2Pix GAN“ yra modelis, skirtas bendrosios paskirties vaizdų vertimui.

Interaktyvus vaizdų generavimas

GAN gali būti naudojami ir interaktyviems vaizdams generuoti. Kompiuterių mokslo ir dirbtinio intelekto laboratorija (CSAIL) sukūrė GAN, galintį generuoti 3D modelius su tikrovišku apšvietimu ir atspindžiais, kuriuos įgalina formos ir tekstūros redagavimas.

Visai neseniai tyrėjai pateikė modelį, kuris gali sintetinti atgautą veidą, animuotą žmogaus judesiu, tuo pačiu išsaugant veido išvaizdą.

Taip pateksime į šio straipsnio pabaigą, kur sužinojome „Kas yra GAN“. Tikiuosi, kad jums aišku viskas, kas buvo pasidalinta su jumis šioje pamokoje.

Jei radote šį straipsnį „Kas yra GAN“, patikrinkite patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą, pasklido po visą pasaulį.

Mes norime jums padėti kiekviename žingsnyje ir parengti mokymo programą, skirtą studentams ir specialistams, norintiems būti . Kursas sukurtas tam, kad galėtumėte pradėti pažvelgti į „Python“ programavimą ir išmokyti pagrindines ir pažangiausias „Python“ koncepcijas kartu su įvairiomis Kaip

Jei kyla klausimų, nedvejodami užduokite visus klausimus komentarų skiltyje „Kas yra GAN“ ir mūsų komanda mielai atsakys.