A Transformers egy nagyon erős mélytanulási modell, amely számos természetes nyelvi feldolgozási feladatban szabványossá vált, és forradalmasíthatja a számítógépes látás területét is.
Az egész 2017-ben kezdődött, amikor a Google Brain közzétette az Attention Is All You Need című újságot, amelynek célja mindent megváltoztatni [4]. A kutatók ezt az új architektúrát számos természetes nyelvi feldolgozási problémára alkalmazzák, és azonnal nyilvánvaló, hogy ez mennyire képes leküzdeni azokat a korlátokat, amelyek az RNN-eket sújtják, amelyeket hagyományosan olyan feladatokhoz használnak, mint például az egyik nyelvről a másikra történő fordítás.
Ha ez a mélyreható oktatási tartalom hasznos az Ön számára, iratkozzon fel AI kutatási levelezőlistánkra figyelmeztetni kell, ha új anyagot adunk ki.
Az évek során a Transformers a Natural Language Processing és a Google Brain intézményévé vált, 2020-ban megkérdezi, vajon ugyanolyan hatékonyak lesznek-e a képeken? A válasz igen, megszületnek a Vision Transformerek, és némi előzetes képmódosítással sikerül kihasználniuk a Transformers klasszikus architektúráját, és hamarosan ezen a téren is számos problémában a legkorszerűbbek.
Az izgalom óriási, és néhány hónap elteltével, 2021 elején a Facebook kutatói ezúttal a Transformers új verzióját publikálták, azonban kifejezetten videóhoz, a TimeSformers-t. Nyilvánvaló, hogy ebben az esetben is, kis szerkezeti változtatásokkal ez az architektúra hamarosan nyerő lesz a videózás terén, és a Facebook 2021 februárjában bejelentette, hogy a közösségi oldala videóival együtt felhasználná új modellek létrehozására a legkülönfélébb célokra.
Miért van szükségünk transzformátorokra?
De tegyünk egy lépést hátra, és vizsgáljuk meg azokat a motivációkat, amelyek arra késztették a Google kutatóit, hogy új alternatív architektúrát keressenek a természetes nyelvi feldolgozási feladatok megoldására.
Hagyományosan az olyan feladatokat, mint például a fordítás, a Recurrent Neural Networks segítségével hajtották végre, amelyekről ismert, hogy számos problémával küzdenek. Az egyik fő probléma a szekvenciális működése. Például egy mondat angolról olaszra történő fordításához az ilyen típusú hálózatokkal a lefordítandó mondat első szava egy kezdeti állapottal együtt átkerült a kódolóba, majd a következő állapot egy második kódolóba. a mondat második szava, és így tovább az utolsó szóig. Az utolsó kódoló eredményül kapott állapota ezután egy dekódolóhoz kerül, amely kimenetként az első lefordított szót és egy következő állapotot is visszaadja, amelyet egy másik dekódernek továbbít, és így tovább.
A probléma itt teljesen nyilvánvaló, a következő lépés végrehajtásához rendelkeznem kell az előző lépés eredményével. Ez nagy hiba, mert nem használja ki a modern GPU-k párhuzamosítási képességét, és így veszít a teljesítményben. Vannak más problémák is, mint például a gradiens robbanás, az egy mondatban lévő távoli szavak közötti függőségek észlelésének képtelensége stb.
Csak a figyelem kell?
Felmerült a kérdés, hogy létezik-e párhuzamosan kiszámítható mechanizmus, amely lehetővé teszi, hogy a mondatból kivonjuk a szükséges információkat? A válasz igen, és ez a mechanizmus a figyelem.
Ha úgy határoznánk meg a figyelmet, hogy egy pillanatra megfeledkezünk minden technikai és megvalósítási szempontról, hogyan tennénk ezt?
Vegyünk egy példamondatot, és kérdezzük meg magunktól, az „adta” szóra összpontosítva, hogy a mondat mely szavaira fordítsam még a figyelmemet, hogy értelmet adjunk ennek a szónak? Feltehetnék magamnak egy sor kérdést, például, hogy ki adott? És ebben az esetben az „én” szóra koncentrálnék, majd megkérdezhetném, hogy Kinek adta? Ha figyelmemet ebben az esetben a Charlie szóra irányítom, és végül megkérdezhetem, mit adott? Végül az étel szóra összpontosítva.
Ha felteszem magamnak ezeket a kérdéseket, és talán ezt teszem a mondat minden egyes szavára, akkor talán megértem a jelentését és oldalait. A probléma ezen a ponton az, hogy hogyan valósíthatom meg ezt a koncepciót a gyakorlatban?
A figyelem számításának megértéséhez párhuzamot vonhatunk az adatbázisok világával. Amikor keresést végzünk az adatbázisban, egy lekérdezést (Q) küldünk, és a rendelkezésre álló adatok között keresünk egy vagy több kulcsot, amelyek kielégítik a lekérdezést. A kimenet a lekérdezés szempontjából leginkább releváns kulcshoz tartozó érték.
Ami a figyelemszámításnál történik, az rendkívül hasonló.
Kezdjük azzal, hogy vektorok halmazaként tekintjük azt a mondatot, amelyre a figyelmet számítani kell. Minden szó egy szóbeágyazó mechanizmuson keresztül egy vektorba van kódolva. Ezeket a vektorokat tekintjük kulcsoknak, amelyek között kereshetünk egy keresett lekérdezés tekintetében, amely lehet ugyanabból a mondatból (önfigyelem) vagy egy másik mondatból származó szó. Ezen a ponton ki kell számítanunk a hasonlóságot a lekérdezés és az egyes elérhető kulcsok között, matematikailag a skálázott pontszorzat segítségével. Ez a folyamat valós értékek sorozatát adja vissza, amelyek talán nagyon különböznek egymástól, de mivel 0 és 1 közötti súlyokat szeretnénk kapni, amelyek összege 1, ezért az eredményekre SoftMax-ot alkalmazunk. Miután megkaptuk a súlyokat, meg kell szoroznunk minden szó súlyát, és így a lekérdezés szempontjából való relevanciáját az azt reprezentáló vektorral. Végül ezeknek a termékeknek a kombinációját adjuk vissza figyelmi vektorként.
Ennek a mechanizmusnak a felépítéséhez lineáris rétegeket használunk, amelyek a bemeneti vektorból kiindulva kulcsokat, lekérdezéseket és értékeket generálnak mátrixszorzással. A billentyűk és a lekérdezések kombinációja lehetővé teszi a két halmaz legmegfelelőbb párosítását, amelynek eredményét azután az értékekkel kombinálják, hogy a legrelevánsabb kombinációt kapják.
De ez a mechanizmus elegendő lenne, ha egyetlen szóra akarnánk összpontosítani, de mi van akkor, ha több nézőpontból akarnánk a mondatot nézni, majd párhuzamosan többször is kiszámítani a figyelmet? Az úgynevezett többfejes figyelmet használjuk, hasonló szerkezettel, amelynek eredményeit egyszerűen kombináljuk a végén, hogy a kiszámított figyelem egyetlen összegző vektorát adja vissza.
Most, hogy megértettük, melyik mechanizmust kell használni, és megbizonyosodtunk a párhuzamosíthatóságáról, elemezzük azt a struktúrát, amelybe a többfejes figyelem be van ágyazva, és melyik alkotja a transzformátort.
Tekintettel arra, hogy mindig fordítási feladat, akkor először a kép bal oldalára koncentráljunk, a kódoló részre, amely bemenetként veszi az angolról olaszra fordítandó teljes mondatot. Már itt is látjuk, hogy az RNN megközelítéshez képest óriási forradalom zajlik, mert ahelyett, hogy szóról szóra feldolgoznák a mondatot, azt teljes egészében beadják. A figyelemszámítás megkezdése előtt a szavakat reprezentáló vektorokat egy szinuszon és koszinuszon alapuló pozíciókódoló mechanizmussal kombinálják, amely a vektorokba ágyazza a szavak mondatbeli helyzetére vonatkozó információkat. Ez nagyon fontos, mert tudjuk, hogy bármely nyelvben több mint releváns a szavak helyzete a mondatban, és ez olyan információ, amelyet nem veszíthetünk el, ha helyesen akarunk értékelni. Mindezek az információk egy többfejes figyelemmechanizmusba kerülnek át, amelynek eredménye normalizálva van, és egy előrecsatolásnak kerül át. A kódolást N-szer el lehet végezni, hogy több értelmes információt kapjunk.
De nem a lefordítandó mondat az egyetlen bemenet a transzformátorhoz, van egy második blokk, a dekóder, amely a transzformátor előző végrehajtásának kimenetét veszi át. Ha például feltételezzük, hogy az első két szót már lefordítottuk, és a mondat harmadik szavát szeretnénk megjósolni olaszul, akkor a dekóderben átadjuk az első két lefordított szót. A pozíciókódolás és a többfejes figyelem ezeken a szavakon történik, és az eredményt kombinálja a kódoló eredményével. A figyelem újraszámításra kerül a kombináción, és az eredmény egy lineáris réteg és egy softmax segítségével az új lefordított szó potenciális jelöltszavainak vektora lesz, mindegyikhez tartozó valószínűséggel. A következő iterációban a dekóder ezt a szót is beveszi az előzőek mellé.
Ez a struktúra tehát hihetetlenül hatékonynak és eredményesnek bizonyult, mivel a mondatot a maga teljességében dolgozza fel, nem szóról szóra, megőrzi az információkat a szavak helyzetéről a mondatban, és kihasználja a figyelmet, amely egy olyan mechanizmus, amely képes hatékonyan kifejezni a mondatot. a mondat tartalma.
Ennyi szép magyarázat után azt gondolhatja, hogy a transzformátorok tökéletesek és mindenféle hiba nélkül. Nyilván nem így van és az egyik erőssége a gyengesége, a figyelem számítása is!
Az egyes szavak figyelmének kiszámításához az összes többihez képest N² számításokat kell végeznem, amelyek még ha részben párhuzamosíthatóak is, mégis nagyon drágák. Ilyen bonyolultság mellett képzeljük el, mit jelent egy több száz és száz szóból álló bekezdésre sokszor kiszámolni a figyelmet.
Grafikusan elképzelhető egy mátrix, amelyet minden szó figyelmi értékével kell feltölteni a többi szóhoz képest, és ennek nyilvánvalóan releváns költsége van. Fontos kiemelni, hogy opcionálisan és általában a dekóderen lehetséges a maszkolt figyelem kiszámítása, amely során elkerülhető a figyelem kiszámítása a lekérdező szó és az azt követő szó között.
Néhányan vitatkozhatnak, de valóban szükségünk van-e a fent látható szerkezetre, ha akkor a transzformátorok előnyei közül sok inkább a figyelemmechanizmushoz kapcsolódik? De nem az első, 2017-es Google Brain-papírban az áll, hogy „A figyelem minden, amire szükséged van”? [4] Természetesen jogos, de 2021 márciusában a Google kutatói ismét megjelentettek egy tanulmányt „A figyelem nem minden, amire szükséged van” [6] címmel. Az mit jelent? A kutatók kísérleteket végeztek az önfigyelő mechanizmus viselkedésének elemzésével, a transzformátorok többi alkatrésze nélkül, és azt találták, hogy az 1. rangú mátrixhoz konvergál, kétszeresen exponenciális sebességgel. Ez azt jelenti, hogy ez a mechanizmus önmagában gyakorlatilag használhatatlan. Akkor miért olyan erősek a transzformátorok? Ez annak köszönhető, hogy a mátrix rangját csökkentő önfigyelő mechanizmus és a transzformátorok két másik összetevője, a kihagyó csatlakozások és az MLP közötti kötélhúzás következik be.
Az első lehetővé teszi az útvonalak eloszlásának diverzifikálását, elkerülve, hogy ugyanazt az utat kapjuk, és ez drasztikusan csökkenti annak valószínűségét, hogy a mátrix rang 1-re csökkenjen. Az MLP-nek ehelyett sikerül növelnie a kapott mátrix rangját a nemlinearitása miatt. Ezzel szemben kimutatták, hogy a normalizálásnak nincs szerepe az önfigyelem mechanizmus ezen viselkedésének elkerülésében. Ezért nem csak a figyelemre van szükség, hanem a transzformátor architektúra képes kihasználni azt, hogy lenyűgöző eredményeket érjen el.
Vision Transformers
2020-ban idáig érkezve a Google kutatói ismét azon töprengtek, hogy „de ha a Transformers olyan hatékonynak bizonyult a természetes nyelvi feldolgozás területén, hogyan fognak teljesíteni a képekkel?”. Kicsit úgy, mint az NLP-vel, a figyelem fogalmából indulunk ki, de ezúttal a képekre vonatkoztatjuk. Próbáljuk meg egy példán keresztül megérteni.
Ha figyelembe vesszük a fal előtt álló kutya képét, bármelyikünk azt mondaná, hogy ez egy „kutya képe”, nem pedig „fal képe”, ez azért van, mert figyelmünket a a kép domináns és megkülönböztető alanya, és pontosan ezt teszi a képekre alkalmazott figyelemmechanizmus.
Most, hogy megértjük, hogy a figyelem fogalma kiterjeszthető a képekre is, már csak meg kell találnunk a módját, hogy képeket vigyünk be egy klasszikus transzformátorba.
Tudjuk, hogy a transzformátor bemeneti vektorként veszi a szavak vektorait, tehát hogyan alakíthatunk át egy képet vektorokká? Minden bizonnyal az első megoldás az lenne, ha a kép összes pixelét felhasználnánk, és azokat „inline”-ként helyeznénk el, hogy vektort kapjunk. De álljunk meg egy pillanatra, és nézzük meg, mi történne, ha ezt a lehetőséget választanánk.
Korábban azt mondtuk, hogy a figyelem számításának bonyolultsága egyenlő O(N²), ez azt jelenti, hogy ha ki kell számítanunk az egyes pixelek komplexitását az összes többihez képest, akkor egy kis felbontású, például 256×256 pixeles képen kapnánk. extrém mennyiségű számítás, és a mai erőforrásokkal teljesen leküzdhetetlen. Tehát ez a megközelítés biztosan nem életképes.
A megoldás meglehetősen egyszerű, és a „Egy kép 16 × 16 szót ér” című cikkben [2] azt javasolják, hogy a képet foltra osszák, majd minden foltot vektorokká alakítsanak át egy lineáris vetítés segítségével, amely leképezi a foltokat egy vektorba. hely.
Most már csak mennünk kell, és megnézni a Vision Transformer architektúráját.
A képet ezután foltra osztják, amelyek lineáris vetületen mennek keresztül, hogy vektorokat kapjanak, amelyek a folt képen belüli helyzetére vonatkozó információkkal párosulnak, és egy klasszikus transzformátornak vetik alá. A képen belüli folt eredeti helyzetére vonatkozó információk hozzáadása alapvető fontosságú, mert a lineáris vetítés során ez az információ akkor is elveszne, ha nagyon fontos a kép tartalmának teljes megértése. Egy további vektor kerül beillesztésre, amely független az elemezni kívánt képtől, és amelyet arra használnak, hogy globális információkat szerezzenek a teljes képről, és valójában az ennek a javításnak megfelelő kimenet az egyetlen, amelyet figyelembe vesz és átad egy MLP-nek, amely visszaad a megjósolt osztály.
Ennek a folyamatnak azonban van egy pontja, ahol nagyon jelentős információvesztés következik be. Valójában a foltról a vektorra való átmenet során minden információ elvész a foltban lévő pixelek helyzetéről. Ez minden bizonnyal komoly dolog – mutatják rá a Transformer in Transformer (TnT) [3] szerzői, mert a pixelek elrendezése az elemezni kívánt kép egy részében olyan információ, amelyet nem szeretnénk elveszíteni a minőség érdekében. jóslat.
A TnT szerzői ezután feltették maguknak a kérdést, hogy lehet-e jobb módot találni arra, hogy a vektorokat alávegyék a transzformátornak?
A javaslatuk ezután az, hogy a kép minden egyes foltját (pxp) készítsék el, amelyek maguk is 3 RGB csatorna képei, és alakítsák át c-csatornás tenzorrá. Ezt a tenzort ezután p' részekre osztjuk p'-vel
Ezután összefűzik és lineárisan vetítik, hogy ugyanolyan méretűek legyenek, mint az eredeti folt lineáris vetületéből kapott és azzal kombinált vektorral.
Ezzel a transzformátor bemeneti vektoraira is hatással lesz a pixelek elrendezése a foltokon belül, és ezzel a szerzőknek sikerült tovább javítaniuk a különböző számítógépes látási feladatok teljesítményét.
TimeSformers
Tekintettel a transzformátorok elsőként az NLP-ben, majd a képekre való alkalmazásában elért nagy sikereire, 2021-ben a Facebook kutatói megpróbálták ezt az architektúrát videóra is alkalmazni.
Intuitív módon egyértelmű, hogy ez lehetséges, hiszen mindannyian tudjuk, hogy a videó nem más, mint egymás utáni képkockák halmaza, a képkockák pedig nem mások, mint képek.
Csak egy apró részlet különbözteti meg őket a Vision Transformerstől, nem csak a teret, hanem az időt is figyelembe kell venni. Ebben az esetben, amikor a figyelem kiszámításához megyünk, nem tekinthetjük a képkockákat elszigetelt képeknek, hanem találnunk kell a figyelem valamilyen formáját, amely figyelembe veszi az egymást követő képkockák között előforduló eltéréseket, mivel ez központi szerepet játszik a kép kiértékelésében. egy videó.
A probléma megoldására a szerzők több új figyelemmechanizmust javasoltak, kezdve a kizárólag a térre fókuszáló, elsősorban referenciapontként használtaktól a figyelmet axiálisan, elszórtan vagy tér és idő között együttesen számolókig.
A legjobb eredményeket elérő módszer azonban a Megosztott tér-idő figyelem. Ez abból áll, hogy a t pillanatban adott keretet és annak egyik foltját lekérdezésként kiszámolja a térbeli figyelmet a teljes keretre, majd az időbeli figyelmet a lekérdezés ugyanabban a foltjában, de az előző és a következő keretben.
De miért működik olyan jól ez a megközelítés? Ennek az az oka, hogy több különálló funkciót tanul meg, mint más megközelítések, és ezért jobban képes megérteni a különböző kategóriákba tartozó videókat. Ezt láthatjuk a következő vizualizáción, ahol minden videót egy térbeli pont képvisel, színe pedig azt a kategóriát, amelybe tartozik.
A szerzők megkérdőjelezték a videók felbontásának és a bennük lévő képkockák számának relevanciáját is, és azt találták, hogy minél nagyobb a felbontás, annál pontosabb a modell, egy pontig. Ami a képkockák számát illeti, a képkockák számának növekedésével a pontosság is nő. A dolog érdekessége, hogy a grafikonon láthatónál nagyobb képkockaszámmal nem lehetett teszteket készíteni, ezért potenciálisan a pontosság még javulhat, ennek a javulásnak még nem találtuk meg a felső határát.
A Vision Transformersben ismert, hogy egy nagyobb képzési adatkészlet gyakran jobb pontosságot eredményez. Ezt a szerzők a TimeSformersen is ellenőrizték, és ismét, ahogy nő a figyelembe vett oktatóvideók száma, úgy nő a pontosság is.
Következtetések
Most mi van hátra? A transzformátorok most landoltak a számítógépes látás világában, és a jelek szerint több mint eltökélt szándékuk, hogy leváltsák a hagyományos konvolúciós hálózatokat, vagy legalábbis fontos szerepet töltsenek be maguknak ezen a területen. A tudományos közösség ezért zűrzavaros, hogy megpróbálja tovább fejleszteni a Transformers-t, kombinálni különféle technikákkal és alkalmazni őket valós problémákra, hogy végre olyan dolgokat tegyen, amelyekre a közelmúltig nem volt lehetőség. A nagy óriások, mint a Facebook és a Google, aktívan dolgoznak a Transformers fejlesztésén és alkalmazásán, és valószínűleg még csak a felszínt kapargattuk.
Tetszett a cikk? Csatlakozz hozzám a LinkedIn-en! És ha érdekel a Transformers olvasd el a DINO-ról szóló cikkemet!
Referenciák és meglátások
[1] „Gedas Bertasius, Heng Wang és Lorenzo Torresani”. ”Csak a tér-idő figyelem kell a videó megértéséhez?".
[2] „Alexey Dosovitskiy et al.”. ”Egy kép 16×16 szót ér: Transzformátorok a méretarányos képfelismeréshez".
[3] „Kai Han et al.”. ”Transzformátor a Transzformátorban".
[4] „Ashish Vaswani et al.”. ”Csak a figyelem kell".
[5] „Qizhe Xie et al.”. ”A Noisy Student funkcióval végzett önképzés javítja az ImageNet besorolását".
[6] „Yihe Dong et al.”, „A figyelem nem minden, amire szüksége van: a tiszta figyelem a mélységgel kétszeresen exponenciálisan veszít a rangsorban"
[7] „Nicola Messina et al.”, „Transformer Reasoning Network kép-szöveg egyeztetéshez és visszakereséshez"
[8] „Nicola Messina et al.”, „Finom szemcsés vizuális szövegigazítás a transzformátoros kódolók használatával történő kereszt-modális visszakereséshez"
[9] „Davide Coccomini”, „TimeSformer videó osztályozáshoz edzéskóddal"
Ezt a cikket eredetileg közzétették Az adattudomány felé és a szerző engedélyével újra közzétesszük a TOPBOTS-nál.
Tetszett ez a cikk? Iratkozzon fel további AI-frissítésekért.
Értesíteni fogunk, ha további műszaki oktatást adunk ki.
Összefüggő
Forrás: https://www.topbots.com/transformers-timesformers-and-attention/
- 2020
- 2021
- 7
- 9
- Fiók
- Előny
- AI
- ai kutatás
- Minden termék
- között
- bejelenti
- Alkalmazás
- építészet
- TERÜLET
- Művészet
- cikkben
- szerzők
- BEST
- Bit
- épít
- változik
- csatornák
- besorolás
- közösség
- Kiszámít
- Számítógépes látás
- kapcsolatok
- tartalom
- dátum
- adatbázis
- adatbázisok
- mély tanulás
- részlet
- Fejleszt
- Oktatás
- nevelési
- Hatékony
- Angol
- végrehajtás
- Exploit
- Jellemzők
- Végül
- vezetéknév
- hibája
- Összpontosít
- élelmiszer
- forma
- gif
- Globális
- GPU
- nagy
- itt
- Hogyan
- HTTPS
- hatalmas
- Több száz
- kép
- Képfelismerés
- ImageNet
- Növelje
- információ
- Intézmény
- IT
- Kulcs
- kulcsok
- nyelv
- tanulás
- térkép
- március
- modell
- hónap
- Természetes nyelv
- Természetes nyelvi feldolgozás
- hálózat
- hálózatok
- ideg-
- neurális hálózatok
- NLP
- opció
- érdekében
- Más
- Egyéb
- Papír
- Tapasz
- Patches
- teljesítmény
- kép
- pixel
- Pestis
- előrejelzés
- Termékek
- Termékek
- javaslat
- világítás
- csökkenteni
- kutatás
- Tudástár
- Eredmények
- Visszatér
- Keresés
- Series of
- készlet
- Egyszerű
- Méret
- kicsi
- So
- Közösség
- SOLVE
- Hely
- térbeli
- kezdet
- Állami
- diák
- benyújtott
- felületi
- Műszaki
- tesztek
- A grafikon
- idő
- Képzések
- Fordítás
- Frissítés
- us
- érték
- videó
- Videók
- Megnézem
- látomás
- megjelenítés
- háború
- WHO
- belül
- szavak
- Munka
- világ
- érdemes
- év