Kapszulahálózatok:
Mi az a kapszulahálózat? Alapvetően egymásba ágyazott idegrétegek hálózata.
Azt javaslom, hogy nézze át az alábbi blogokat is:
Feltételezem, hogy ti ismeritek a Convolutional Neural Networks-t (CNN). Itt egy kis bevezetőt tartok ugyanerről, hogy megvitathassam a CNN-ek korlátait.
Az alábbi videót a konvolúciós neurális hálózaton is megtekintheti.
Konvolúciós neurális hálózatok (CNN)
A konvolúciós ideghálózatok alapvetően mesterséges neuronok különböző rétegeiből állnak, amelyeket számítógépes látáshoz használnak. Az alábbiakban megemlítettem ezeket a rétegeket:
Konvolúciós réteg: Amikor a Feedforward Neural Networks-t (többrétegű Perceptron) használjuk a képek osztályozásához, sok kihívás van vele. A legnagyobb frusztráló kihívás az, hogy rengeteg paramétert vezet be, fontolja meg a CNN-n található oktatóvideót.
Ennek a kihívásnak a leküzdésére Konvolúciós réteg vezették be. feltételezzük, hogy azok a pixelek, amelyek térben közelebb vannak egymáshoz, sokkal jobban „együttműködnek” az érdeklődésre számot tartó sajátos jellemző kialakításában, mint a kép ellentétes sarkaiban lévő pixelek. Továbbá, ha egy adott (kisebb) tulajdonságnak kiderül, hogy nagy jelentősége van a kép címkéjének meghatározásakor, akkor ugyanolyan fontos lesz, ha ez a funkció a képen belül bárhol megtalálható volt, helytől függetlenül.
ReLU réteg: A Rectified Linear Unit (ReLU) transzformációs funkció csak akkor aktivál egy csomópontot, ha a bemenet egy bizonyos mennyiség felett van, míg a bemenet nulla alatt van, a kimenet nulla, de amikor a bemenet egy bizonyos küszöbérték fölé emelkedik, akkor lineáris kapcsolatban áll a függő változó.
- Ebben a rétegben minden negatív értéket eltávolítunk a szűrt képekről, és nullára cseréljük
- Ez azért történik, hogy elkerüljük az értékek nullára való összegzését
Pooling réteg: Ezt használják az almintavétel elvégzésére, amely a kép kicsi és (általában) el nem választott darabjait emészti fel, és egyetlen értékre összesíti azokat. Az összesítésre többféle séma létezik - a legnépszerűbb Max-Pooling , ahol az egyes darabokon belül megkapjuk a maximális pixelértéket. Invariánssá teszi a hálózatot a bemeneti kép kis átalakulásaival, torzulásaival és fordításaival szemben (a bemenet kis torzulása nem változtatja meg a Pooling kimenetét - mivel a maximális / átlagos értéket vesszük egy helyi környéken).
Teljesen összekapcsolt réteg: Ez a réteg kiszámítja az osztály pontszámait, ahol minden szám egy osztály pontszámának felel meg. Mint a szokásos ideghálózatoknál, és ahogy a neve is mutatja, ebben a rétegben minden idegsejt össze fog kapcsolódni az előző kötet összes idegsejtjével. Dióhéjban végzi el a végső besorolást.
Ily módon a ConvNets az eredeti képet rétegenként átalakítja az eredeti pixelértékekből a végső osztályozási pontszámokba.
Ez nagyon rövid bevezetés volt a konvolúciós neurális hálózatokhoz, továbbra is azt ajánlom, hogy nézze meg a CNN videót, amelyet beágyaztam ebbe a bejegyzésbe.
Ebben a Capsule Networks blogban most a konvolúciós neurális hálózatok néhány korlátozását fogom megvitatni
A konvolúciós neurális hálózatok korlátai:
Nos, hadd magyarázzam el ezt egy hasonlattal.
Tegyük fel, hogy van olyan ember, akinek a szeme felismeri a különféle képek jellemzőit. Tekintsük példának az ember arcát. Tehát ez a szerencsétlen fickó képes azonosítani a különféle jellemzőket, mint például a szem, az orr stb., De nem képes azonosítani a jellemzők közötti térbeli viszonyokat (perspektíva, méret, orientáció). Például a következő kép megtévesztheti azt a fickót, amikor az emberi arc jó vázlata közé sorolja.
Ez a probléma a konvolúciós neurális hálózatokkal is. A CNN jól érzékeli a funkciókat, de tévesen aktiválja az idegsejtet az arcfelismeréshez. Ez azért van, mert kevésbé hatékony a tulajdonságok közötti térbeli viszonyok feltárásában.
Egy egyszerű CNN modell képes megfelelően kinyerni az orr, a szem és a száj tulajdonságait, de tévesen aktiválja az idegsejtet az arcfelismeréshez. Anélkül, hogy észrevennénk a térbeli tájolás és méret eltéréseit, az arcfelismerés aktiválása túl magas lesz.
Nos, ez a korlátozás a Max Pooling réteg miatt van.
A CNN maximális összevonása kezeli a transzlációs varianciákat. Még egy funkció is kissé elmozdul, ha még mindig benne van a pooling ablakban, akkor is észlelhető. Mindazonáltal ez a megközelítés csak a max tulajdonságot tartja fenn (a leginkább domináns), és eldobja a többieket.
Tehát a fent látható arckép normál arcnak minősül. A pooling réteg szintén hozzáadja ezt a fajta változatlanságot.
A gyűjtőrétegnek soha nem ez volt a célja. Amit a poololásnak meg kellett tennie, az a pozíciós, orientációs, arányos invarianciák bevezetése.
A valóságban ez a pooling réteg mindenféle helyzetbeli változatlanságot ad hozzá. Amint a fenti ábrán is látható, az dilemma vezet az arc helyes észleléséhez.
Lássuk, mi a javasolt megoldás Geoffrey Hinton .
Hogyan lehet megoldani ezt a problémát?
Most azt képzeljük, hogy minden idegsejt tartalmazza a tulajdonságok valószínűségét és tulajdonságait. Például egy [valószínűség, orientáció, méret] tartalmú vektort ad ki. Ezzel a térinformációval észlelhetjük az orr, a szem és a fül jellemzőinek orientációjában és méretében rejlő következetlenséget, és ennélfogva sokkal alacsonyabb aktiválást eredményezünk az arcfelismeréshez.
Által kiadott lapban Geoffrey Hinton , az ilyen típusú idegsejteket kapszuláknak nevezzük. Ezek a kapszulák egyetlen skálaérték helyett vektorot bocsátanak ki.
Hadd világítsak meg néhányat a Capsule Networksről.
Mik azok a kapszulahálózatok?
A kapszula alapvetően beágyazott idegrétegek összessége. A kapszula belsejében található idegsejtek állapota megragadja a képen belüli egy entitás különböző tulajdonságait, mint például a póz (helyzet, méret, orientáció), deformáció, sebesség, textúra stb.
Ahelyett, hogy egy tulajdonságot egy adott variánssal rögzítenék, egy kapszulát arra oktatnak, hogy rögzítse a jellemző és annak variánsának valószerűségét. Tehát a kapszula célja nemcsak egy funkció észlelése, hanem a modell megtanítása a változat megtanulására.
Olyan, hogy ugyanaz a kapszula azonos irányú objektumosztályt képes felismerni (például az óramutató járásával megegyező irányban forog):
Mondhatjuk, hogy az egyenértékűségen működik, nem pedig az invariancián.
Invarancia: a jellemzők észlelése a változatoktól függetlenül. Például egy orrdetektáló idegsejt az orrát az irányától függetlenül detektálja.
Egyenértékűség: az egymással átalakulni képes objektumok felismerése (például különböző irányú arcok észlelése). Intuitív módon a kapszulahálózat észleli, hogy az arcot jobbra 31 ° -kal elforgatják (ekvivalencia), ahelyett, hogy rájönne, hogy az arc illeszkedik a 31 ° -kal elforgatott változathoz. Arra kényszerítve a modellt, hogy megtanulja a tulajdonságváltozatot egy kapszulában, hatékonyabban extrapolálhatjuk a lehetséges variánsokat kevesebb edzési adattal. Ezenkívül hatékonyabban utasíthatjuk el az ellenfeleket.
konvertálni kettősről int-re
A kapszula egy vektort bocsát ki az entitás létezésének ábrázolására. A vektor orientációja az entitás tulajdonságait képviseli.
A vektort az összes lehetséges szülőnek megküldi az ideghálózatban. Minden lehetséges szülő számára egy kapszula megtalálhat egy predikciós vektort. Az előrejelzési vektort a saját súlyának és a súlymátrixnak a szorzata alapján számítják ki. Amelyik szülő rendelkezik a legnagyobb skaláris predikciós vektor szorzattal, növeli a kapszulakötést. A szülők többi része csökkenti a köteléküket. Ezt hívják Útvezetés megállapodás alapján .
Ez mindenképpen jobb megközelítés, mint a max pooling, amelyben az útválasztás az alsó rétegben észlelt legerősebb tulajdonságon alapszik.
Ezután van egy összecsapás funkció, amely hozzáadódik. Ez a nem-linearitás bevezetésére szolgál. Ezt az összecsapási funkciót az egyes kapszulák vektor kimenetére alkalmazzák.
Hadd mondjam el most, hogyan működik a Capsule Networks.
Hogyan működnek a kapszulahálózatok?
Tegyünk egy lépést hátra. Teljesen összekapcsolt hálózatban az egyes neuronok kimenete a bemenetek súlyozott összege.
Most nézzük meg, mi történik a Capsule Networks szolgáltatásban.
Kapszula neurális hálózata:
Vegyünk egy kapszula ideghálózatot, ahol ‘uén„A kapszula aktivitásvektora”én'alatti rétegben.
1. lépés: Alkalmazzon transzformációs mátrixotBAN BENija kapszula kimenetéhez uén az előző réteg. Például m × k mátrixszal átalakítunk egy k-D-tuén m-D-reu ^j | i. ((m × k) × (k × 1) = m × 1).
Ez az előrejelzés ( szavazás ) a fenti „j” kapszula kimenetén lévő „i” kapszulától. ’Vj„A kapszula aktivitásvektora”j ’a fenti rétegben
2. lépés: Számítson ki egy súlyozott összegetjsúlyokkalcij.cija kapcsolási együtthatók. Ezen együtthatók összege egyenlő eggyel. Ez a tényleges paraméter, amely a kapszulacsoport viszonyán működik, amiről korábban beszéltünk.
3. lépés: A konvolúciós neurális hálózatokban a ReLU függvényt használtuk. Itt squashing függvényt alkalmazunk a vektor 0 és egységhossz közötti skálázására. A kis vektorokat nullára, a hosszúakat pedig az egység vektorokra zsugorítja. Ezért az egyes kapszulák valószínűsége nulla és egy között van.
Ez az előrejelzés ( szavazás ) a fenti „j” kapszula kimenetén lévő „i” kapszulától. Ha az aktivitásvektor szoros hasonlóságot mutat a predikciós vektorral, arra a következtetésre jutunk, hogy a kapszulaén'szorosan kapcsolódik a kapszuláhozj ’. (Például az orrkapszula nagyon rokon az arckapszulával.) Ilyen hasonlóságot a predikció és az aktivitás vektor skaláris szorzatával mérünk. Ezért a hasonlóság mind a valószerűséget, mind a tulajdonság tulajdonságait figyelembe veszi. (ahelyett, hogy csak a neuronokban való valószerűség lenne).
4. lépés: Számítsa ki a relevancia pontszámot ’bij’. Ez lesz az aktivitásvektor és a predikciós vektor pontterméke. A kapcsolási együtthatókcénja softmax értékebénj:
C kapcsolási együtthatóija b softmax-jaként van kiszámítvaij.
Ez a bijtöbbször ismétlődik iteratív módon.
Ezt hívják Útvezetés megállapodás alapján .
Az alábbi ábra egy példa:
A Capsule Networks blog után elkészül egy blog a Capsule Neural Network megvalósításáról a TensorFlow segítségével.
Remélem, hogy élvezettel olvasta ezt a blogot a kapszulahálózatokon, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka mély tanulás a TensorFlow tanúsítással tanfolyam segít a tanulóknak abban, hogy szakértőkké váljanak az alap- és konvolúciós neurális hálózatok képzésében és optimalizálásában valós idejű projektek és feladatok felhasználásával, olyan koncepciókkal együtt, mint a SoftMax funkció, az Auto-encoder Neural Networks, a Restricted Boltzmann Machine (RBM).
Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben, és mi kapcsolatba lépünk Önnel.