Articles

Generativní Modely

Tento příspěvek popisuje čtyři projekty, které sdílejí společné téma zvýšení nebo pomocí generativní modely, pobočka učení bez učitele technik strojového učení. Kromě popisu naší práce, tento příspěvek vám řekne něco více o generativní modely: co jsou, proč jsou důležité, a kam by mohli jít.

jedním z našich hlavních aspirací v OpenAI je vývoj algoritmů a technik, které dávají počítačům pochopení našeho světa.

je snadné zapomenout, kolik toho víte o světě: chápete, že to je vyrobeny z 3D prostředí, objektů, které se pohybují, se srazí, komunikovat; lidé, kteří se chodit, mluvit, a myslet; zvířata, která se pasou, létat, běhat, nebo kůry; monitory, které zobrazují informace, zakódované v jazyce, o počasí, které vyhrál basketbalový zápas, nebo to, co se stalo v roce 1970.

toto obrovské množství informací je venku a do značné míry snadno dostupné-buď ve fyzickém světě atomů, nebo v digitálním světě bitů. Jedinou choulostivou částí je vývoj modelů a algoritmů, které mohou analyzovat a porozumět této pokladnici dat.

generativní modely jsou jedním z nejslibnějších přístupů k tomuto cíli. Chcete-li trénovat generativní model, nejprve shromáždíme velké množství dat v nějaké doméně (např.) a pak trénovat model generovat data, jako je to. Intuice za tímto přístupem následuje slavný citát Richarda Feynmana:

“ co nemohu vytvořit, nerozumím.“

—Richard Feynman

trik je V tom, že neuronové sítě používáme jako generativní modely mají řadu parametrů, které výrazně menší než množství dat, budeme je trénovat na, takže modely jsou nuceni objevovat a efektivně osvojit si podstatu údajů za účelem vygenerování.

generativní modely mají mnoho krátkodobých aplikací. Ale z dlouhodobého hlediska, mají potenciál automaticky se naučit přirozené vlastnosti datové sady, ať už kategorie nebo dimenze nebo něco úplně jiného.

generování obrázků

udělejme to konkrétnějším příkladem. Předpokládejme, že máme nějakou velkou sbírku obrázků, například 1, 2 milionu obrázků v datovém souboru ImageNet (ale mějte na paměti, že by to nakonec mohla být velká sbírka obrázků nebo videí z Internetu nebo robotů). Pokud budeme měnit velikost každý obrázek má šířku a výšku 256 (jak se běžně provádí), náš dataset je jeden velký 1,200,000x256x256x3 (cca 200GB) blok pixelů. Zde je několik ukázkových obrázků z této datové sady:

tyto obrázky jsou příklady toho, jak vypadá náš vizuální svět, a označujeme je jako „vzorky ze skutečné distribuce dat“. Nyní vytváříme náš generativní model, který bychom chtěli trénovat, abychom generovali takové obrazy od nuly. Konkrétně by generativním modelem v tomto případě mohla být jedna velká neuronová síť, která vydává obrázky a označujeme je jako „vzorky z modelu“.

DCGAN

jedním z takových nejnovějších modelů je síť DCGAN od Radford et al. (nížit). Tato síť bere jako vstup 100 náhodných čísel čerpaných z jednotné distribuce (označujeme je jako kód nebo latentní proměnné červeně) a vydává obraz (v tomto případě 64x64x3 obrázky vpravo, zeleně). Jak se kód mění postupně, generované obrázky také-to ukazuje, že model se naučil funkce popisovat, jak svět vypadá, spíše než jen zapamatovat si některé příklady.

síť (žlutě) je tvořena standardními složkami konvoluční neuronové sítě, jako jsou dekonvoluční vrstvy (reverzní konvoluční vrstvy), plně propojené vrstvy atd.:

DCGAN je inicializován s náhodné váhy, takže náhodný kód zapojen do sítě vygeneruje zcela náhodný obrázek. Nicméně, jak jste si možná představit, síť má miliony z parametrů, které můžeme vyladit, a cílem je najít nastavení těchto parametrů, který dělá vzorky vytvořené z náhodných kódy vypadají jako tréninková data. Nebo jinak řečeno, chceme, aby distribuce modelu odpovídala skutečné distribuci dat v prostoru obrázků.

Školení generativní model

Předpokládejme, že jsme použili nově inicializovat síť generovat 200 snímků, pokaždé od jiného náhodný kód. Otázka zní: jak bychom měli upravit síťové parametry povzbudit ho k výrobě o něco více uvěřitelný vzorků v budoucnu? Všimněte si, že nejsme v jednoduchém prostředí pod dohledem a nemáme žádné explicitní požadované cíle pro našich 200 generovaných obrázků; chceme, aby vypadaly skutečně. Jeden chytrý přístup kolem tohoto problému je sledovat přístup generativní kontradiktorní sítě (GAN). Zde představujeme druhou diskriminační síť (obvykle standardní konvoluční neuronovou síť), která se snaží klasifikovat, zda je vstupní obraz skutečný nebo generovaný. Například bychom mohli vložit 200 generovaných obrazů a 200 reálných obrazů do diskriminátoru a vycvičit jej jako standardní klasifikátor pro rozlišení mezi těmito dvěma zdroji. Ale kromě toho — a zde je ten trik — můžeme také backpropagate přes diskriminátor a generátor najít, jak bychom měli změnit generátor parametry, aby se jeho 200 vzorků mírně více matoucí pro diskriminátor. Tyto dvě sítě jsou proto uzamčeny v bitvě: diskriminátor se snaží odlišit skutečné obrázky z falešné obrazy a generátor se snaží vytvářet obrazy, které se diskriminující, že jsou skutečné. Nakonec síť generátoru vysílá obrázky, které jsou nerozeznatelné od skutečných obrazů pro diskriminátor.

existuje několik dalších přístupů k přizpůsobení těchto distribucí, o kterých budeme stručně diskutovat níže. Ale než se tam dostaneme níže jsou dvě animace, které ukazují vzorky z generativní model, aby vám vizuální smysl pro tréninkový proces.
V obou případech vzorky z generátoru začít hlučné a chaotické, a časem konvergovat k více věrohodný obraz statistiky:

VAE učení, jak generovat obrázky (log čas)
GAN učení, jak generovat obrázky (lineární čas)

je To vzrušující — tyto neuronové sítě jsou učení, jak vidí svět vypadá! Tyto modely mají obvykle jen asi 100 milionů parametry, takže síť vyškolených na ImageNet má (lossily) obklad 200GB pixel dat do 100MB závaží. To přimělo ho, aby najít nejvíce charakteristické rysy údaje: například, to bude pravděpodobně dozvíte, že pixely v blízkosti jsou pravděpodobné, že mají stejnou barvu, nebo, že svět se skládá z horizontální nebo vertikální hrany, nebo kuličky různých barev. Nakonec může model objevit mnoho složitějších zákonitostí: že existují určité typy pozadí, objektů, textur, že se vyskytují v určitých pravděpodobných uspořádáních nebo že se určitým způsobem v průběhu času mění ve videích atd.

obecnější formulace

matematicky uvažujeme o datovém souboru příkladů \(x_1, \ ldots, x_n\) jako vzorcích ze skutečné distribuce dat \(p (x)\). V příkladu na obrázku níže, modrá oblast zobrazuje část obrazu prostor, který, s vysokou pravděpodobností (přes prahu) obsahuje skutečné obrazy, a černé tečky ukazují naše data bodů (každý z nich je jeden obrázek, v našem souboru dat). Nyní, náš model také popisuje rozdělení \(\hat{p}_{\theta}(x)\) (zelená), který je definován implicitně tím, že body z jednotky Gaussovo rozdělení (červená) a jejich mapování prostřednictvím (deterministický) neuronové sítě — naše generativní model (žlutá). Naše síť je funkce s parametry \(\theta\) a vyladění těchto parametrů vyladí vygenerovanou distribuci obrázků. Naším cílem je pak najít parametry \(\theta\), které produkují distribuci, která úzce odpovídá skutečné distribuci dat (například malou ztrátou divergence KL). Proto, můžete si představit, zelená distribuce začíná náhodně a pak tréninkového procesu opakované změny parametrů \(\theta\) natáhnout a zmáčknout to, aby lépe odpovídaly modré distribuci.

tři přístupy k generativním modelům

většina generativních modelů má toto základní nastavení, ale liší se v detailech. Zde jsou tři populární příklady generativních modelových přístupů, které vám poskytnou pocit variace:

  • Generativní Sporné Sítí (GANs), které jsme již diskutovali výše, představují tréninkového procesu jako hru mezi dvě samostatné sítě: generátor sítě (jak je vidět výše) a druhý diskriminační síť, která se snaží klasifikovat vzorky buď jako přicházející od skutečné rozdělení \(p(x)\) nebo model distribuce \(\hat{p}(x)\). Pokaždé, když diskriminující všimne rozdílu mezi dvěma distribuce generátor nastaví jeho parametry lehce, aby se to jít pryč, až na konci (v teorii) generátor přesně reprodukuje skutečné distribuci dat a diskriminátor je hádání náhodně, nelze najít rozdíl.
  • Variační Autoencoders (VAEs) nám umožňují formalizovat tento problém v rámci pravděpodobnostní grafické modely, kde jsme maximalizaci dolní mez na logaritmus věrohodnosti údajů.
  • autoregresivní modely jako PixelRNN místo toho trénují síť, která modeluje podmíněné rozdělení každého jednotlivého pixelu daného předchozími pixely (vlevo a nahoře). To je podobné připojení pixelů obrazu do char-rnn, ale RNN běží vodorovně i svisle přes obraz místo pouhé 1D sekvence znaků.

všechny tyto přístupy mají své klady a zápory. Například variační Autoencodery nám umožňují provádět učení i efektivní Bayesovskou inferenci v sofistikovaných pravděpodobnostních grafických modelech s latentními proměnnými (např. Jejich generované vzorky však bývají mírně rozmazané. Gan v současné době generují nejostřejší obrázky, ale je obtížnější je optimalizovat kvůli nestabilní dynamice tréninku. PixelRNNs mají velmi jednoduchý a stabilní tréninkový proces (softmax loss) a v současné době poskytují nejlepší pravděpodobnost logu(tj. Při vzorkování jsou však relativně neefektivní a neposkytují jednoduché nízkorozměrné kódy pro obrázky. Všechny tyto modely jsou aktivními oblastmi výzkumu a my se těšíme, jak se budou vyvíjet v budoucnu!

Naše nedávné příspěvky

Jsme docela nadšeni generativní modely v OpenAI, a právě vydala čtyři projekty, které předem nejmodernější. Ke každému z těchto příspěvků také vydáváme technickou zprávu a zdrojový kód.

zlepšení GANs (kód). Za prvé, jak bylo uvedeno výše GANs jsou velmi slibné rodiny generativní modely, protože, na rozdíl od jiných metod, které produkují velmi čisté a ostré obrázky a naučit se kódy, které obsahují cenné informace o těchto textur. Gan jsou však formulovány jako hra mezi dvěma sítěmi a je to důležité (a složité!) udržet je v rovnováze: například mohou oscilovat mezi řešeními nebo má generátor tendenci se zhroutit. V této práci, Tim Salimans, Ian Goodfellow, Wojciech Zaremba a kolegové představili několik nových technik pro výrobu GAN školení více stabilní. Tyto techniky nám umožňují zvětšit GANs a získat pěkné 128x128 ImageNet vzorky:

Real images (ImageNet)
Generated images

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):

Real images (CIFAR-10)
Generated images

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. Tento přístup nám umožňuje získat nejmodernější výsledky na MNIST, SVHN, a CIFAR-10 v nastavení s několika málo označeny příklady. Na MNIST, například, můžeme dosáhnout 99.14% přesnost, pouze s 10 označeny příklady, v jedné třídě s plně propojené neuronové sítě — výsledek, který je velmi blízko k nejlepší známé výsledky s plně pod dohledem přístupy s využitím všech 60,000 označené příklady. To je velmi slibné, protože označené příklady mohou být v praxi poměrně drahé.

Generativní Sporné Sítě jsou relativně nový model (představen teprve před dvěma lety) a očekáváme, že uvidíme další rychlý pokrok v dalším zlepšení stability těchto modelů během tréninku.

zlepšení VAEs (kód). V této práci Durk Kingma a Tim Salimans zavést flexibilní a výpočetně škálovatelné metody pro zlepšení přesnosti variační odvození. Zejména, většina VAEs doposud trénoval pomocí hrubé orientační posteriors, kde každá latentní proměnná je nezávislá. Nedávné rozšíření řeší tento problém tím, že klimatizace každé latentní proměnné na ostatní, než se to v řetězci, ale tohle je výpočetně neefektivní vzhledem k zavedené sekvenční závislosti. Hlavní přínos této práce, se nazývá inverzní autoregresních tok (IAF), je nový přístup, který, na rozdíl od předchozí práce, nám umožňuje paralelizovat výpočet bohaté přibližné posteriors, a učinit je téměř libovolně flexibilní.

ukážeme příklad 32x32 ukázky obrázků z modelu na obrázku níže, vpravo. Vlevo jsou starší vzorky z modelu DRAW pro srovnání (vzorky vanilla VAE by vypadaly ještě horší a rozmazanější). Model DRAW byl zveřejněn teprve před rokem a znovu zdůraznil rychlý pokrok ve vzdělávání generativních modelů.

Generované z LOSOVÁNÍ model
Generované z VAE trénoval s IAF

InfoGAN (kód). Peter Chen a jeho kolegové představují InfoGAN-rozšíření GAN, které se učí rozpojené a interpretovatelné reprezentace obrázků. Pravidelné GAN dosahuje cíle reprodukci distribuci dat v modelu, ale v rozvržení a organizace kód prostor je underspecified — existuje mnoho možných řešení pro mapování jednotky Gaussovské pro obrázky a jednou jsme skončili s může být složité a vysoce zapletený. InfoGAN ukládá do tohoto prostoru další strukturu přidáním nových cílů, které zahrnují maximalizaci vzájemné informace mezi malými podmnožinami reprezentačních proměnných a pozorováním. Tento přístup poskytuje docela pozoruhodné výsledky. Například na obrázcích 3D tváří níže měníme jednu spojitou dimenzi kódu a všechny ostatní udržujeme pevné. Z pěti uvedených příkladů (podél každého řádku) je zřejmé, že výsledné rozměry v kódu zachycují interpretovatelné rozměry a že model možná pochopil, že existují úhly kamery,variace obličeje atd., aniž by bylo řečeno, že tyto funkce existují a jsou důležité:

(a) Azimuth (pose)
(b) Elevation
(c) Lighting
(d) Wide or Narrow

We also note that nice, disentangled representations have been dosažené dříve (například s DC-IGN Kulkarni et al.), ale tyto přístupy se opírají o dodatečný dohled, zatímco náš přístup je zcela bez dozoru.

následující dva nedávné projekty jsou v prostředí RL (další oblast zaměření na OpenAI), ale oba zahrnují komponentu generativního modelu.

průzkum založený na zvědavosti v učení hlubokého posílení pomocí Bayesovských neuronových sítí (kód). Efektivní průzkum ve vysokorozměrných a spojitých prostorech je v současné době nevyřešenou výzvou v posilování učení. Bez účinných metod průzkumu naši agenti mlátí, dokud náhodně nenarazí na odměňující situace. To je dostatečná v mnoha jednoduchá hračka úkoly, ale nedostatečné, pokud chceme použít tyto algoritmy pro komplexní nastavení s high-dimenzionální akce mezery, jak je běžné v robotice. V tomto článku Rein Houthooft a jeho kolegové navrhují VIME, praktický přístup k průzkumu pomocí nejistoty na generativních modelech. VIME dělá agenta motivovaným; aktivně hledá překvapivé státní akce. Ukázali jsme, že VIME může zlepšit celou řadu politických metod vyhledávání a dělá významný pokrok na realističtější úkoly s řídkými odměny (např. scénáře, ve kterých se agent musí naučit lokomoce primitiv bez vedení).

Politika trénoval s VIME
Politika trénoval s naivní průzkum

a Konečně, rádi bychom, aby zahrnovala bonus pátý projekt: Generativní Sporné Imitace Učení (kód), v němž Jonathan Ho a kolegy představují nový přístup k napodobování učení. Jonathan Ho se k nám připojuje na OpenAI jako letní stážista. Většinu této práce vykonal ve Stanfordu, ale zahrnujeme ji zde jako související a vysoce kreativní aplikaci GANs na RL. Standardní výztuž učení nastavení obvykle vyžaduje jeden design odměnu funkce, která popisuje požadované chování agenta. V praxi to však někdy může zahrnovat nákladný proces pokusů a omylů, aby se podrobnosti napravily. V kontrastu, v napodobování, učení se agent učí z příkladu demonstrace (například poskytována teleoperation v robotice), což eliminuje potřebu, aby design funkce odměnu.

Populární imitace přístupy zahrnují dva-fáze potrubí: první učení funkce odměnu, pak běží RL na odměnu. Takový plynovod může být pomalý, a protože je nepřímý, je těžké zaručit, že výsledná politika funguje dobře. Tato práce ukazuje, jak lze přímo extrahovat zásady z dat prostřednictvím připojení k Gan. Jako výsledek, tento přístup může být použit k naučit politik z odborné demonstrace (bez odměny) na pevný OpenAI Posilovny prostředí, jako jsou Ant a Humanoid.

do budoucna

generativní modely jsou rychle se rozvíjející oblastí výzkumu. Jak jsme se i nadále prosazovat tyto modely a rozsahu školení a datových souborů, můžeme očekávat, že nakonec generovat vzorky, které zachycují zcela věrohodné obrázky nebo videa. To může samo o sobě najít použití ve více aplikacích, jako je on-demand generované umění, nebo Photoshop++ příkazy jako „make my smile širší“. Další v současnosti známé aplikace zahrnují image denoising, inpainting, super-rozlišení, strukturovaná predikce, průzkum v posílení učení a neuronové sítě pretraining v případech, kdy označené údaje je drahé.

hlubším příslibem této práce je však to, že v procesu výcviku generativních modelů poskytneme počítači pochopení světa a toho, z čeho se skládá.