Generatív modellek
Ez a bejegyzés négy olyan projektet ír le, amelyek közös témája a generatív modellek fejlesztése vagy használata, a felügyelet nélküli tanulási technikák ága a gépi tanulásban. Amellett, hogy leírja a munkánkat, ez a bejegyzés egy kicsit többet fog mondani a generatív modellekről:mik azok, miért fontosak, és hová mehetnek.
az OpenAI egyik alapvető törekvése olyan algoritmusok és technikák kifejlesztése, amelyek a számítógépeket világunk megértésével látják el.
könnyű elfelejteni, hogy mennyit tudsz a világról: megérted, hogy ez egy 3D-s környezetben, tárgyakat mozgatni, ütköznek, befolyásolja; emberek, akik járni, beszélni, gondolkodni; állatok, akik legelnek, repül, fut, vagy kéreg; figyeli, hogy a megjelenítendő információt kódolt nyelven szól az időjárás, ki nyerte a kosárlabda játék, vagy mi történt 1970-ben.
Ez a hatalmas mennyiségű információ odakint van, és nagy mértékben könnyen hozzáférhető — akár az atomok fizikai világában, akár a bitek digitális világában. Az egyetlen trükkös rész olyan modellek és algoritmusok kifejlesztése, amelyek képesek elemezni és megérteni ezt az adatkincset.
a generatív modellek az egyik legígéretesebb megközelítés e cél felé. Egy generatív modell kiképzéséhez először nagy mennyiségű adatot gyűjtünk egy bizonyos területen (például több millió képet, mondatot vagy hangot gondolunk stb.), majd a vonat egy modellt, hogy adatokat, mint azt. Ennek a megközelítésnek az intuíciója Richard Feynman híres idézetét követi:
” amit nem tudok létrehozni, nem értem.” —Richard Feynman
A trükk az, hogy a neurális hálózatok használjuk, mint a generatív modellek paraméterek száma lényegesen kisebb, mint a mennyiségű adat, a vonat velük, akkor a modellek arra kényszerülnek, hogy felfedezzék, hatékonyan internalizálása a lényeg az adatokat annak érdekében, hogy állítsa elő.
a generatív modelleknek számos rövid távú alkalmazása van. Hosszú távon azonban képesek automatikusan megtanulni az adatkészlet természetes tulajdonságait, akár kategóriák, akár méretek, akár valami más teljesen.
képek generálása
tegyük ezt konkrétabbá egy példával. Tegyük fel, hogy van néhány nagy képgyűjteményünk, például az ImageNet adatkészletben található 1, 2 millió kép (de ne feledje, hogy ez végül nagy kép-vagy videógyűjtemény lehet az internetről vagy robotokból). Ha minden képet átméretezünk úgy, hogy szélessége és magassága 256 legyen( ahogy ez általában történik), az adatkészletünk egy nagy 1,200,000x256x256x3
(kb. 200GB) pixelblokk. Íme néhány példa képek ebből az adatbázisból:
ezek a képek példák arra, hogy néz ki a vizuális világunk, és ezeket”valódi adatelosztásból származó mintáknak” nevezzük. Most felépítjük generatív modellünket, amelyet szeretnénk edzeni, hogy ilyen képeket generáljunk a semmiből. Konkrétan, egy generatív modell ebben az esetben lehet egy nagy neurális hálózat, amely képeket ad ki, ezeket pedig “mintáknak a modellből”nevezzük.
DCGAN
az egyik ilyen új modell a Dcgan hálózat Radford et al. (lásd alább). Ez a hálózat veszi bemenetként 100 véletlen számok levonni egy egységes eloszlása (utalunk ezekre, mint egy kód, vagy látens változók, piros) és kimenetek egy képet (ebben az esetben 64x64x3
képek a jobb oldalon, zöld). Ahogy a kód fokozatosan változik, a generált képek is — ez azt mutatja, hogy a modell megtanult funkciókat leírni, hogyan néz ki a világ, ahelyett, hogy csak néhány példát megjegyezne.
a hálózat (sárga) szabványos konvolúciós neurális hálózati komponensekből áll, például dekonvolucionális rétegekből (konvolúciós rétegek hátramenete), teljesen csatlakoztatott rétegekből stb.:
a DCGAN véletlenszerű súlyokkal inicializálódik, így a hálózathoz csatlakoztatott véletlenszerű kód teljesen véletlenszerű képet generál. Azonban, mint gondolnád, a hálózat több millió paraméterrel rendelkezik, amelyeket módosíthatunk, és a cél az, hogy megtaláljuk ezeket a paramétereket, amelyek a véletlenszerű kódokból előállított mintákat a képzési adatokhoz hasonlítják. Vagy más módon fogalmazva, azt akarjuk, hogy a modellelosztás megfeleljen a valós adateloszlásnak a képek területén.
generatív modell
képzése tegyük fel, hogy egy újonnan inicializált hálózatot használtunk 200 kép létrehozásához, minden alkalommal, amikor egy másik véletlenszerű kóddal kezdünk. A kérdés az, hogy hogyan állítsuk be a hálózat paramétereit, hogy ösztönözzük a jövőben valamivel hihetőbb minták előállítására? Figyeljük meg, hogy nem vagyunk egy egyszerű felügyelt beállítás, és nincs kifejezett kívánt célokat a 200 generált képek; mi csak azt akarjuk, hogy néz ki igazi. A probléma egyik okos megközelítése a generatív Adversarial Network (GAN) megközelítés követése. Itt bemutatunk egy második diszkrimináló hálózatot (általában egy szabványos konvolúciós neurális hálózatot), amely megpróbálja osztályozni, hogy egy bemeneti kép valós vagy generált-e. Például a 200 generált képet és 200 valós képet a diszkriminátorba juttathatjuk, és standard osztályozóként képezhetjük, hogy megkülönböztessük a két forrást. De ezen felül — és itt a trükk-a diszkriminátoron és a generátoron keresztül is visszapillanthatunk, hogy megtaláljuk, hogyan kell megváltoztatni a generátor paramétereit, hogy a 200 minta kissé zavaróbbá váljon a diszkriminátor számára. Ez a két hálózat tehát csatába zárva van: a diszkriminátor megpróbálja megkülönböztetni a valódi képeket a hamis képektől, a generátor pedig olyan képeket próbál létrehozni, amelyek a diszkriminátort valóságosnak gondolják. Végül a generátorhálózat olyan képeket bocsát ki, amelyek megkülönböztethetetlenek a diszkriminátor valós képeitől.
van néhány más megközelítés ezeknek a disztribúcióknak a megfeleltetéséhez, amelyeket az alábbiakban röviden tárgyalunk. De mielőtt odaértünk az alábbiakban két animációk mutatják, hogy a minták generatív modell adni egy vizuális értelemben a képzési folyamat.
mindkét esetben a generátorból származó minták zajosak és kaotikusak, és idővel egyre hihetőbb képstatisztikákat kapnak:
ez izgalmas — ezek a neurális hálózatok megtanulják, hogy néz ki a vizuális világ! Ezeknek a modelleknek általában csak körülbelül 100 millió paraméterük van, így az ImageNet-en képzett hálózatnak (veszteségesen) 200 GB pixel adatot kell tömörítenie 100 MB súlyra. Ez arra ösztönzi, hogy felfedezze az adatok legszembetűnőbb jellemzőit: például valószínűleg megtudja, hogy a közelben lévő pixelek valószínűleg azonos színűek, vagy hogy a világ vízszintes vagy függőleges szélekből, vagy különböző színű foltokból áll. Végül a modell sokkal összetettebb szabályszerűségeket fedezhet fel: hogy vannak bizonyos típusú hátterek, tárgyak, textúrák, amelyek bizonyos valószínű elrendezésekben fordulnak elő, vagy hogy bizonyos módon átalakulnak idővel a videókban stb.
általánosabb megfogalmazás
matematikailag a példák adatkészletére gondolunk \(x_1, \ ldots, x_n\) mint valódi adateloszlás mintái \(p(x)\). Az alábbi példaképben a kék régió a képtér azon részét mutatja, amely nagy valószínűséggel (bizonyos küszöbérték felett) valós képeket tartalmaz, a fekete pontok pedig az adatpontjainkat jelzik (mindegyik egy kép az adatkészletünkben). Most, a modell azt is leírja, hogy egy engedély \(\kalap{p}_{\theta}(x)\) (zöld), amely meghatározott hallgatólagosan azáltal, hogy pont egy egység Gauss-féle eloszlás (piros), mind mapping őket keresztül (determinisztikus) neurális hálózat — a generatív modell (sárga). Hálózatunk a \(\theta\) paraméterekkel rendelkező függvény, ezen paraméterek módosítása pedig a képek generált eloszlását módosítja. Célunk tehát az, hogy olyan paramétereket találjunk \(\theta\), amelyek olyan eloszlást eredményeznek, amely szorosan illeszkedik a valódi adateloszláshoz (például egy kis KL divergencia veszteséggel). Ezért el lehet képzelni, hogy a zöld Eloszlás véletlenszerűen indul, majd a képzési folyamat iteratív módon megváltoztatja a paramétereket \(\theta\), hogy megnyúljon, majd szorítsa meg, hogy jobban megfeleljen a kék eloszlásnak.
a generatív modellek három megközelítése
a legtöbb generatív modell rendelkezik ezzel az alapvető beállítással, de a részletekben különböznek. Íme három népszerű példa a generatív modell megközelítésekre, hogy megértse a variációt:
- Generatív Kontradiktórius Hálózatok (GANs), ami a már fent tárgyalt, póz, a képzési folyamat, mint egy játék, ahol két különálló hálózatok: egy generátor hálózat (mint fentebb láttuk), valamint egy második diszkriminatív hálózat, amely megpróbálja osztályozza minták vagy jön, az igazi engedély \(p(x)\), vagy a modell engedély \(\kalap{p}(x)\). Minden alkalommal, amikor a tettes észreveszi a különbséget a két disztribúció, a generátor állítja a paraméterek kissé, hogy menjen el, amíg a végén (elméletben) a generátor pontosan megegyezik a valós adatokat engedély, valamint a tettes gondolom, véletlenszerűen, nem találunk különbséget.
- A variációs Autoencoderek (VAEs) lehetővé teszik számunkra, hogy ezt a problémát valószínűségi grafikus modellek keretében formalizáljuk, ahol az adatok naplószerű valószínűségére vonatkozó alsó korlátot maximalizálunk.
- Autoregressive modellek, mint például a PixelRNN, ehelyett olyan hálózatot képeznek, amely minden egyes képpont feltételes eloszlását modellezi az előző képpontokkal (balra és felül). Ez hasonló a kép képpontjainak char-rnn-be történő csatlakoztatásához, de az RNNs mind vízszintesen, mind függőlegesen fut a kép felett, nem csak egy 1D karaktersorozat helyett.
mindegyik megközelítésnek megvannak a maga előnyei és hátrányai. Például a variációs Autoencoderek lehetővé teszik számunkra, hogy mind a tanulási, mind a hatékony Bayes-következtetést végezzünk kifinomult valószínűségi grafikus modellekben látens változókkal (pl. A generált minták azonban kissé homályosak. A GANs jelenleg a legélesebb képeket generálja, de az instabil képzési dinamika miatt nehezebb optimalizálni őket. PixelRNNs van egy nagyon egyszerű, stabil képzési folyamat (softmax veszteség), és jelenleg adja meg a legjobb log likelihoods (azaz valószínűség a generált adatok). A mintavétel során azonban viszonylag hatástalanok, és nem nyújtanak egyszerű, alacsony dimenziós kódokat a képekhez. Mindezek a modellek aktív kutatási területek, és szívesen látjuk, hogyan fejlődnek a jövőben!
friss hozzászólásaink
nagyon izgatottak vagyunk az OpenAI generatív modelljei miatt, és most megjelent négy olyan projekt, amely előmozdítja a technika állását. Ezen hozzájárulások mindegyikéhez technikai jelentést és forráskódot is kiadunk.
javítása GANs (kód). Először is, mint már említettük, GANs egy nagyon ígéretes család generatív modellek, mert, ellentétben más módszerekkel, hogy készítsen nagyon tiszta, éles képeket, és megtanulják kódokat, amelyek értékes információkat tartalmaznak ezek a textúrák. A GANs azonban két hálózat közötti játékként van megfogalmazva, ami fontos (és trükkös!) egyensúlyban tartani őket: például oszcillálhatnak a megoldások között, vagy a generátor hajlamos összeomlani. Ebben a munkában Tim Salimans, Ian Goodfellow, Wojciech Zaremba és kollégái néhány új technikát vezettek be a GAN képzés stabilabbá tételéhez. Ezek a technikák lehetővé teszik számunkra, hogy skálázzuk a Gan-okat ,és szép 128x128
ImageNet mintákat kapjunk:
Our CIFAR-10 samples also look very sharp – Amazon Mechanical Turk workers can distinguish our samples from real data with an error rate of 21.3% (50% would be random guessing):
In addition to generating pretty pictures, we introduce an approach for semi-supervised learning with GANs that involves the discriminator producing an additional output indicating the label of the input. Ez a megközelítés lehetővé teszi számunkra, hogy a legkorszerűbb eredményeket MNIST, SVHN, CIFAR-10 Beállítások nagyon kevés jelzett példák. Például a MNIST-en 99,14% – os pontosságot érünk el osztályonként csak 10 címkézett példával, teljesen csatlakoztatott neurális hálózattal — ez az eredmény nagyon közel áll a legismertebb eredményekhez, teljesen felügyelt megközelítésekkel, mind a 60,000 címkézett példákkal. Ez nagyon ígéretes, mert a címkézett példák meglehetősen drágák lehetnek a gyakorlatban.
a generatív Adversarial Networks egy viszonylag új modell (amelyet csak két évvel ezelőtt vezettek be), és arra számítunk, hogy gyorsabb előrehaladást érünk el ezen modellek stabilitásának további javításában a képzés során.
javítása VAEs (kód). Ebben a munkában Durk Kingma és Tim Salimans egy rugalmas és számításilag skálázható módszert vezetnek be a variációs következtetések pontosságának javítására. Különösen, a legtöbb VAEs eddig képzett nyers hozzávetőleges posteriors, ahol minden látens változó független. A legújabb kiterjesztések ezt a problémát úgy oldották meg, hogy minden látens változót kondicionáltak a többiekre, mielőtt egy láncban lenne, de ez számításilag nem hatékony a bevezetett szekvenciális függőségek miatt. Ennek a munkának az inverz autoregresszív áramlásnak (IAF) nevezett alapvető hozzájárulása egy új megközelítés, amely a korábbi munkákkal ellentétben lehetővé teszi számunkra, hogy párhuzamosítsuk a gazdag hozzávetőleges posteriorok kiszámítását, és szinte önkényesen rugalmasvá tegyük őket.
mutatunk néhány példát32x32
képminták a modellből az alábbi képen, a jobb oldalon. A bal oldalon a rajzolási modell korábbi mintái összehasonlításra kerülnek (a vanília VAE minták még rosszabbnak és homályosabbnak tűnnek). A DRAW modellt csak egy évvel ezelőtt tették közzé, ismét kiemelve a generatív modellek képzésében elért gyors előrehaladást.
infogan (kód). Peter Chen és kollégái bemutatják az InfoGAN — t-a GAN kiterjesztését, amely a képekhez kapcsolódó, értelmezhetetlen ábrázolásokat tanulja meg. Egy szabályos GAN megvalósítja az adateloszlás modellben történő reprodukálásának célját, de a kódtér elrendezése és szervezése alulmeghatározott — sok lehetséges megoldás létezik a Gauss-egység képekhez való leképezésére, és az, amivel végül végzünk, bonyolult és erősen összefonódott. Az InfoGAN további struktúrát ró erre a térre új célok hozzáadásával, amelyek magukban foglalják a reprezentációs változók kis részhalmazai és a megfigyelés közötti kölcsönös információ maximalizálását. Ez a megközelítés meglehetősen figyelemre méltó eredményeket nyújt. Például az alábbi 3D-s arcok képein a kód egy folyamatos dimenzióját változtatjuk meg, az összes többi rögzített marad. Az öt megadott példából (minden sor mentén) egyértelmű, hogy a kódban kapott méretek értelmezhető méreteket rögzítenek, és hogy a modell talán megértette, hogy vannak kameraállások, arcváltozatok stb., anélkül, hogy azt mondták volna, hogy ezek a funkciók léteznek és fontosak:
We also note that nice, disentangled representations have been elért előtt (mint például a DC-IGN által Kulkarni et al.), de ezek a megközelítések további felügyeletre támaszkodnak, míg megközelítésünk teljesen felügyelet nélküli.
a következő két legutóbbi projekt megerősítő tanulási (RL) környezetben van (az OpenAI másik fókuszterülete), de mindkettő generatív modellkomponenst tartalmaz.
kíváncsiság-vezérelt kutatás mély megerősítés tanulás keresztül Bayes neurális hálózatok (kód). A nagy dimenziós és folyamatos terek hatékony feltárása jelenleg megoldatlan kihívás a megerősítéses tanulás terén. Anélkül, hogy hatékony kutatási módszerek ügynökeink thrash körül, amíg véletlenszerűen megbotlik kifizetődő helyzetekben. Ez sok egyszerű játékfeladatban elegendő, de nem megfelelő, ha ezeket az algoritmusokat nagy dimenziós cselekvési terekkel rendelkező komplex beállításokra kívánjuk alkalmazni, amint ez a robotikában gyakori. Ebben a tanulmányban Rein Houthooft és kollégái javaslatot tesznek a VIME-re, a generatív modellek bizonytalanságának felhasználásával történő feltárás gyakorlati megközelítésére. VIME teszi az ügynök önálló motivált; aktívan keresi meglepő állami intézkedések. Megmutatjuk, hogy a VIME számos szakpolitikai keresési módszert javíthat, és jelentős előrehaladást ér el a reálisabb feladatokban, ritka jutalmakkal (például olyan forgatókönyvekkel, amelyekben az ügynöknek útmutatás nélkül meg kell tanulnia a mozgásszervi primitíveket).
Végül, szeretnénk, hogy tartalmaz egy bónusz ötödik projekt: Generatív Kontradiktórius Utánzás a Tanulás (kód), amely Jonathan Ho kollégák jelen, egy új megközelítés, az utánzás a tanulás. Jonathan Ho nyári gyakornokként csatlakozik hozzánk az OpenAI-ban. A legtöbb munkát a Stanfordon végezte, de ide soroljuk, mint a GANs RL-hez kapcsolódó és rendkívül kreatív alkalmazását. A standard megerősítés tanulási beállítás általában megköveteli, hogy tervezzen egy jutalmazási funkciót, amely leírja az ügynök kívánt viselkedését. A gyakorlatban azonban ez néha magában drága próba szerencse folyamat, hogy a részleteket. Ezzel szemben az utánzás során az ügynök tanul a példamutatásokból (például a robotika teleoperációjával), kiküszöbölve a jutalom funkció tervezésének szükségességét.
a Népszerű utánzat megközelítés magában egy két-színpadon csővezeték: első a tanulás jutalmat funkció, akkor fut RL a jutalom. Egy ilyen csővezeték lassú lehet, és mivel közvetett, nehéz garantálni, hogy az ebből eredő politika jól működik. Ez a munka megmutatja, hogyan lehet közvetlenül kivonni a házirendeket az adatokból a Gan-ekkel való kapcsolat révén. Ennek eredményeként, ez a megközelítés lehet használni, hogy megtanulják politikák szakértői tüntetések (jutalmak nélkül) kemény OpenAI Tornaterem környezetben, mint a Hangya és Humanoid.
Going forward
Generative models are a rapidly advancing area of research. Mivel továbbra is fejlesztjük ezeket a modelleket, és bővítjük a képzést és az adatkészleteket, arra számíthatunk, hogy végül olyan mintákat hozunk létre, amelyek teljesen hihető képeket vagy videókat ábrázolnak. Ez önmagában több alkalmazásban is használható, például az igény szerinti generált művészetben vagy a Photoshop++ parancsokban, például a “mosolyom szélesebbé tétele”. További, jelenleg ismert alkalmazások közé tartozik a kép denoising, inpainting, super-resolution, strukturált predikció, feltárása megerősítése tanulás, valamint a neurális hálózat pretraining azokban az esetekben, ahol jelölt adatok drága.
ennek a munkának a mélyebb ígérete azonban az, hogy a generatív modellek képzése során a számítógépet a világ megértésével ruházzuk fel, és miből áll.
Leave a Reply