GAN-k generáción túl: 7 alternatív felhasználási eset

https://sigmoidal.io/beginners-review-of-gan-architectures/

Sziasztok!
Mint sok olyan embernek, aki nyomon követi az AI fejlődését, nem tudtam kihagyni a generációs modellezés terén a közelmúltban elért haladást, különösen a generációs párhuzamos hálózatok (GAN) nagy sikerét a képek generálásában. Nézd meg ezeket a mintákat: alig különböznek egymástól a valódi képektől!

Minta a BigGAN-tól: https://openreview.net/pdf?id=B1xsqj09Fm

Figyelemre méltó az arc-generáció 2014 és 2018 közötti haladása:

Nagyon izgatottak vagyok ezekről az eredményekről, de belső szkeptikusom mindig kételkedik abban, hogy azok valóban hasznosak-e és széles körben alkalmazhatók-e. Ezt a kérdést már a Facebook feljegyzésemben nyitottam meg:

Alapvetően „panaszkodtam”, hogy a generációs modellek minden erejével valójában nem használjuk fel őket valami praktikusabb célra, mint a nagy felbontású arcok vagy a hamburgerek generálása. Természetesen vannak olyan vállalkozások, amelyek közvetlenül a képgeneráción vagy a stílusátadásokon alapulhatnak (mint például a karakter vagy szint generáció a szerencsejáték-iparban, a stílus átvitele valódi fotókról az anime avatárokba), de több olyan területet kerestem, ahol a GAN-ek és más generációs modellek alkalmazhatók. Azt is szeretném emlékezni, hogy a generatív modellekkel nemcsak képeket, hanem szöveget, hangokat, hangokat, zenét, strukturált adatokat, például játékszinteket vagy gyógyszermolekulákat állíthatunk elő, és lenyűgöző blogbejegyzés található más generációs jellegű alkalmazásokkal, de itt példákkal korlátozunk minket, ahol a szintézis nem fő cél.

Játékszintű generáció az RNN segítségével

Ebben a cikkben bemutatom 7 alternatív felhasználási esetet. Néhányukkal már személyesen dolgoztam, és megerősíthetem azok hasznosságát, mások kutatásban vannak, de ez nem jelenti azt, hogy nem érdemes kipróbálni. A generatív modelleknek a nem feltétlenül a létrehozáshoz való felhasználásának mindegyik példája alkalmazható különféle területeken és különböző adatokra, mivel fő célunk nem valami reális létrehozása, hanem az ideghálózatok belső ismereteinek kiaknázása új feladatokhoz.

1. Az adatok bővítése

Lehet, hogy a legnyilvánvalóbb alkalmazás egy modell kiképzése az adatokból új minták előállításához az adatkészlet kiegészítése érdekében. Hogyan ellenőrizhetjük, hogy ez a bővítés valóban segített valamit? Nos, két fő stratégia létezik: kiképezhetjük modellünket a „hamis” adatokra és ellenőrizhetjük, hogy mennyire teljesít jól a valódi minták. És éppen ellenkezőleg: a valós adatokkal modellezzük valamilyen osztályozási feladat elvégzésére, és csak azt követően ellenőrizhetjük, hogy az teljesít-e a generált adatokat (a GAN rajongói itt felismerik a kezdő pontszámot). Ha mindkét esetben jól működik - nyugodtan hozzáadhatja a generációs modellből származó mintákat a valós adataihoz, és újra átképzheti -, akkor a teljesítmény javulására számíthat. Annak érdekében, hogy ez a megközelítés még hatékonyabbá és rugalmasabbá váljon, ellenőrizze a 6. alkalmazást.

Az NVIDIA ennek a megközelítésnek a csodálatos példáját mutatta be: a GAN-eket felhasználták a különféle betegségekkel járó, agyi orvosi agyi CT képek adatkészletének kiegészítésére, és megmutatták, hogy a klasszikus adat-kiegészítést alkalmazó osztályozási teljesítmény 78,6% érzékenységet és 88,4% specifitást eredményez. A szintetikus adatkiegészítés hozzáadásával az eredmények 85,7% -ra növelték az érzékenységet és a 92,4% -ot.

https://arxiv.org/pdf/1803.01229.pdf

2. Adatvédelem megőrzése

Nagyon sok vállalat adatai lehetnek titkosak (például a pénzt kereső pénzügyi adatok), bizalmasak vagy érzékenyek (orvosi adatok, amelyek diagnosztizálják a betegeket). De néha meg kell osztanunk ezt harmadik felekkel, például tanácsadókkal vagy kutatókkal. Ha csak azt az általános elképzelést szeretnénk megosztani adatainkról, amely magában foglalja az objektumok legfontosabb mintáit, részleteit és alakjait, akkor közvetlenül az előző bekezdéshez hasonlóan generatív modelleket is használhatunk, hogy adatainkról példákat vonjunk, hogy megosszuk másokkal. Ily módon nem fogunk megosztani pontos bizalmas adatokat, csak valamit, ami pontosan így néz ki.

Bonyolultabb eset az, amikor titkosan meg akarjuk osztani az adatokat. Természetesen különféle titkosítási sémáink vannak, például a homomorf titkosítás, ám ezeknek vannak hátrányai is, mint például az 1 MB információ elrejtése 10 GB-os kódban. 2016-ban a Google új kutatási utat nyitott a GAN versenyképesség-keretének a titkosítási problémákra való felhasználására vonatkozóan, ahol két hálózatnak versengnie kellett a kód létrehozásában és feltörésében:

https://towardsdatascience.com/adversarial-neural-cryptography-can-solve-the-biggest-friction-point-in-modern-ai-cc13b337f969

A legjobb szempont azonban nem a kapott kód vagy az „AI” szószó hatékonysága egy másik területen. Emlékezzünk arra, hogy a neurális hálózatok által előállított reprezentációk gyakran tartalmazzák a leghasznosabb információkat a bemeneti adatokról (némelyiket közvetlenül közvetlenül arra is kiképzik, hogy rendelkezzenek ilyen információkkal, mint például autoencoderek), és ebből a tömörített adatból továbbra is osztályozást / regressziót / klaszterezést végezhetünk. vagy bármi, amit akarunk. Ha a „tömörített” kifejezést a „titkosított” -ra cseréljük, akkor az ötlet egyértelmű: ez a csodálatos módszer az adatok megosztására harmadik felekkel anélkül, hogy az adatkészletről bármit megmutatnánk. Sokkal erősebb, mint az anonimizálás vagy akár hamis minták előállítása, és ez egy következő nagy dolog lehet (természetesen a blockchain használatával, mint már a Numerai is teszi)

3. Anomália észlelése

A fő generációs modellek, például a variációs autoencoder (VAE) vagy a GAN két részből állnak. A VAE rendelkezik kódolóval és dekóderrel, ahol az első alapvetően modellezi az eloszlást, a második rekonstruálja belőle. A GAN generátorból és diszkriminátorból áll, ahol az első modellezi a disztribúciót és a második bírálja, ha közel áll a vonat adataihoz. Mint láthatjuk, bizonyos szempontból nagyon hasonlóak - van egy modellező és bíráló rész (a VAE-ben az rekonstrukciót valamilyen ítéletnek tekinthetjük). A modellező rész az adatok elosztásának megtanulására szolgál. Mi történik a részbírálással, ha valamilyen mintát adunk neki, nem az edzésterjesztésből? Jól képzett GAN diszkriminátor 0-t fog mondani, és a VAE rekonstrukciós hibája nagyobb lesz, mint az edzési adatok átlaga. Itt jön: nem felügyelt anomáliás detektorunk, könnyen kiképzhető és kiértékelhető. És bizonyos szteroidokkal etethetjük, például statisztikai távolságokon, ha akarjuk (Wasserstein GAN). Ebben a cikkben találhat példákat a rendellenességek felismerésére használt GAN-ről, és itt egy autoencoderről. Hozzáteszem egy saját durva vázlatomat egy autoencoder alapú anomáliadetektorról a Kerasban írt idősorokra:

4. Diszkriminatív modellezés

A mély tanulás valójában az, hogy a bemeneti adatokat egy olyan térre térképezzük, ahol könnyebben elválasztható vagy megmagyarázható egyszerű matematikai modellek, például SVM vagy logisztikai regresszió. A generációs modellek saját leképezést is végeznek, kezdjük a VAE-kkel. Az Autoencoderek a bemeneti mintát valamilyen értelmes rejtett térbe térképezik, és alapvetően egy modellt egyenesen rajta képezhetünk. Van ennek értelme? Ez különbözik-e attól, hogy csak kódoló rétegeket használunk, és a modell kiképzésével valamilyen osztályozást közvetlenül végezzünk? Valóban az. Az autoencoder latens tere komplex nemlineáris méretcsökkentés, és variációs autoencoder esetén többváltozós eloszlás is, amely sokkal jobb indítással indul megkülönböztető modell képzésére, mint valamilyen véletlenszerű inicializálás.

A GAN-ok egy kicsit nehezebben használhatók más feladatok elvégzésére. Úgy tervezték, hogy mintákat állítson elő véletlenszerű vetőmagból, és nem számítanak rá, hogy bármilyen bemeneti adat bekerül. De mégis kétféle módon felhasználhatjuk őket osztályozóként. Az első, amelyet már megvizsgáltunk, az a megkülönböztető eszköz, amely előállítja a generált mintát különböző osztályokba, és csak azt mondja meg, hogy valódi vagy hamis. Arra számíthatunk, hogy a kapott osztályozót jobban szabályosítsuk (mivel más típusú zajokat és zavarokat látott a bemeneti adatokban), és hogy extra osztályt kapjunk a kiugró értékekre / anomáliákra:

https://towardsdatascience.com/semi-supervised-learning-with-gans-9f3cb128c5e

Másodszor: a klasszikus igazságtalan elfelejtett megközelítés a Bayes-tétel alapján, ahol p (c_k | x) -ot modellezünk p (x | c_k) (pontosan az, amit a feltételes GAN tesz!) És a p (x), p (c_k) priors alapján. A fő kérdés itt az, hogy a GAN-ok valóban megtanulják-e az adatok eloszlását? És erről néhány újabb tanulmány tárgyalja.

5. Domain adaptáció

Ez számomra az egyik legerősebb. A gyakorlatban szinte soha nincs ugyanaz az adatforrás a modellek kiképzéséhez és valós környezetben történő futtatásához. A számítógépes látás során a különféle fényviszonyok, a kamerabeállítások vagy az időjárás akár nagyon pontos modellt is használhatatlanná tehet. Az NLP / beszédelemzés során a szleng vagy az ékezetes hang megsértheti modellje teljesítményét, amelyet „nyelvtanilag helyes” nyelven tanítottak. A jelfeldolgozás során valószínűleg teljesen más eszközökkel rendelkezik az adatok rögzítéséhez, a modellek és a gyártás vonatkozásában. Azt is észrevehetjük, hogy mindkét adat „típus” nagyon hasonlóak egymáshoz. És ismerünk gépi tanulási modelleket, amelyek az egyik feltételről a másikra térképeznek, megőrizve a fő tartalmat, de megváltoztatva a részleteket. Igen, a stílusátadást most kezdem, de kevésbé kreatív célokra.

https://ml4a.github.io/ml4a/style_transfer/

Például, ha olyan alkalmazással foglalkozik, amely állítólag valamilyen CCTV kamerán működne, de a modelljét nagy felbontású képeket tanította, akkor megpróbálhatja a GAN-eket a képek előfeldolgozásához zajcsökkentés és javítás céljából. Radikálisabb példát tudok bemutatni a jelfeldolgozási területről: sok olyan adatkészlet található a mobiltelefonok gyorsulásmérő adataival kapcsolatban, amelyek leírják a különböző emberek tevékenységeit. De mi lenne, ha a telefonos adatokra kiképzett modelljeit a karkötőn szeretné alkalmazni? A GAN-k megpróbálhatnak segíteni a különféle mozgások fordításában. Általában véve azok a generációs modellek, amelyek nem a zajtól származnak, hanem néhány előre definiált módon elősegítik a tartomány adaptációját, a kovarianciaeltolódásokat és az adatok különbségeivel kapcsolatos egyéb problémákat.

6. Adatkezelés

A stílusátadásról az előző bekezdésben beszéltünk. Ami nem igazán tetszik benne, az a tény, hogy egy olyan térképező funkció, amely az egész bemeneten működik, és mindent megváltoztat. Mi van, ha csak meg akarom változtatni egy fotó orrát? Vagy megváltoztathatja az autó színét? Vagy helyettesíthet néhány beszédet egy beszédben anélkül, hogy teljesen megváltoztatná? Ha ezt meg akarjuk tenni, akkor már feltételezzük, hogy tárgyunkat néhány véges tényezővel lehet leírni, például egy arc szem, orr, haj, ajkak stb. Kombinációja, és ezeknek a tényezőknek megvannak a saját tulajdonságai (szín , méret stb.). Mi lenne, ha képeket képeinkkel képeket leképeznénk egy fényképre ... ahol csak ezeket a tényezőket állíthatjuk be, és az orrát nagyobbra vagy kisebbre tudjuk tenni? Vannak matematikai fogalmak, amelyek ezt megengedik: sokféle hipotézis és szétválasztott ábrázolás. Jó hír számunkra az, hogy az automatikus kódolók és valószínűleg a GAN-ek lehetővé teszik számunkra, hogy modellezzük az eloszlást, tehát ezek a tényezők keveréke.

https://houxianxu.github.io/assets/project/dfcvae

7. Versenyképes képzés

Lehet, hogy nem ért egyet azzal, hogy a gépi tanulási modellek támadására vonatkozó bekezdést egészítem ki, de ennek minden köze van a generatív modellekhez (az ellenfél támadás algoritmusai valóban nagyon egyszerűek) és az egymással versengő algoritmusokhoz (mivel van egy modellünk, amely egy másikkal verseng). Talán ismeri a versenytársak példáinak fogalmát: apró zavarok a modell bemenetében (akár egy pixel is lehet a képen), amelyek teljesen rossz teljesítményt okoznak. Különféleképpen lehet harcolni velük szemben, és az egyik legalapvetőbb módszert nevezik versenytársak kiképzésének: alapvetően a versenytársak példáinak kiaknázásáról szól, hogy még pontosabb modelleket készítsenek.

https://blog.openai.com/adversarial-example-research/

Anélkül, hogy részletekbe merülnénk, ez azt jelenti, hogy továbbra is kétjátékos játékunk van: egy versenytárs modell (amely egyszerűen csak zavarokat okoz néhány epsilon-nal), amelynek maximalizálnia kell a befolyását, és van egy osztályozási modell, amelynek minimalizálnia kell a veszteséget. Nagyon hasonlít GAN-ra, de különféle célokra: állítson egy modellt stabilabbá a versenytársak támadásainak és javítsa annak teljesítményét valamilyen intelligens adatkiegészítés és -szabályozás miatt.

Buktatók

Ebben a cikkben számos példát láthattunk arról, hogyan lehet a GAN-eket és más generációs modelleket felhasználni valami másra, mint szép képek, dallamok vagy rövid szövegek létrehozására. Természetesen fő hosszú távú célja az, hogy a valós helyzeteket generálják a helyes helyzetekkel, de ma kihasználhatjuk képességüket az eloszlások modellezésére és a hasznos reprezentációk megtanulására, hogy javítsuk jelenlegi AI-csővezetékeinket, biztosítsuk az adatainkat, rendellenességeket találjunk, vagy alkalmazkodjunk többhez. való világbeli esetek. Remélem, hasznosnak találja őket, és alkalmazni fogja projektjeiben. Maradjon velünk!

Ui
Kövessen engem a Facebook-ban is az AI cikkek számára, amelyek túl rövidek a közepes mérethez, az Instagram a személyes dolgokhoz és a Linkedin!