Neurónové siete kapsúl - sada vnorených neurálnych vrstiev



Kapsulové siete - Tento blog hovorí o obmedzeniach konvolučných neurónových sietí a o tom, ako tieto obmedzenia riešia kapsulové neurónové siete.

Kapsulové siete:

Čo je to Capsule Networks? Je to v podstate sieť množín vnorených neurálnych vrstiev.

Odporučil by som vám tiež prejsť si nasledujúce blogy:





Predpokladám, že viete, Convolutional Neural Networks (CNN). Tu vám uvediem malý úvod k tomu istému, aby som mohol diskutovať o obmedzeniach CNN.

Môžete tiež odkázať na nižšie uvedené video o Konvolučnej neurálnej sieti.



Konvolučné neurónové siete (CNN)

Konvolučné neurónové siete sú v podstate stoh rôznych vrstiev umelých neurónov, ktorý sa používa na počítačové videnie. Ďalej som spomenul tieto vrstvy:

Konvolučná neurónová sieť - neurónová sieť toboliek - Edureka

Konvolučná vrstva: Keď používame na klasifikáciu obrázkov Feedforward Neural Networks (Multi Layer Perceptron), je s tým veľa výziev. Najviac frustrujúcou výzvou je, že predstavuje veľa parametrov, zvážte videonávod na CNN.



Aby sme prekonali túto výzvu Konvolučná vrstva bol predstavený. predpokladá sa, že pixely, ktoré sú priestorovo bližšie pri sebe, budú „spolupracovať“ na formovaní konkrétnej zaujímavej vlastnosti oveľa viac ako pixely v opačných rohoch obrazu. Ak sa zistí, že konkrétna (menšia) funkcia má veľký význam pri definovaní štítka obrázka, bude rovnako dôležité, ak sa táto funkcia nachádzala kdekoľvek na obrázku bez ohľadu na umiestnenie.

Vrstva ReLU: Transformačná funkcia Rectified Linear Unit (ReLU) aktivuje uzol iba vtedy, ak je vstup nad určitou veličinou, zatiaľ čo vstup je pod nulou, výstup je nulový, ale keď vstup stúpne nad určitú prahovú hodnotu, má lineárny vzťah s závislá premenná.

  • V tejto vrstve odstránime z filtrovaných obrázkov všetky záporné hodnoty a nahradíme ich nulou
  • Toto sa robí, aby sa zabránilo sčítaniu hodnôt až k nule

Spoločná vrstva: Používa sa na vykonávanie vzorkovania, ktoré spotrebuje malé a (zvyčajne) disjunktné kúsky obrazu a agreguje ich do jednej hodnoty. Existuje niekoľko možných schém agregácie - najobľúbenejšie Max-Pooling , kde sa berie maximálna hodnota pixelov v rámci každého bloku. Robí sieť invariantnou voči malým transformáciám, skresleniam a prekladom na vstupnom obrázku (malé skreslenie na vstupe nezmení výstup Pooling - pretože berieme maximálnu / priemernú hodnotu v lokálnom susedstve).

Plne pripojená vrstva: Táto vrstva bude počítať skóre triedy, kde každé z čísel zodpovedá skóre triedy. Rovnako ako u bežných neurónových sietí a ako už z názvu vyplýva, každý neurón v tejto vrstve bude spojený so všetkými neurónmi v predchádzajúcom zväzku. Stručne povedané, vykonáva konečnú klasifikáciu.

Týmto spôsobom ConvNets transformuje pôvodný obrázok vrstvu po vrstve z pôvodných hodnôt pixelov na konečné skóre triedy.

Toto bol veľmi krátky úvod do Convolutional Neural Networks, stále by som vám odporúčal pozrieť si video CNN, ktoré som vložil do tohto príspevku.

V tomto blogu o Capsule Networks sa teraz budem venovať niekoľkým obmedzeniam konvolučných neurónových sietí

Obmedzenia konvolučných neurónových sietí:

No, dovoľte mi to vysvetliť analogicky.

Predpokladajme, že existuje človek, ktorého oči dokážu detekovať znaky rôznych obrazov. Zoberme si za príklad tvár človeka. Tento nešťastník teda môže identifikovať rôzne znaky, ako sú oči, nos atď., Ale nedokáže identifikovať priestorové vzťahy medzi znakmi (perspektíva, veľkosť, orientácia). Napríklad nasledujúci obrázok môže toho chlapa oklamať, keď ho klasifikuje ako dobrý náčrt ľudskej tváre.

To je problém aj pri konvolučných neurónových sieťach. CNN je dobrá v detekcii funkcií, ale nesprávne aktivuje neurón na detekciu tváre. Je to preto, lebo je menej efektívne pri skúmaní priestorových vzťahov medzi znakmi.

Jednoduchý model CNN dokáže správne extrahovať funkcie pre nos, oči a ústa, ale nesprávne aktivuje neurón na detekciu tváre. Bez uvedomenia si nesprávneho zhody v priestorovej orientácii a veľkosti bude aktivácia detekcie tváre príliš vysoká.

Toto obmedzenie je spôsobené vrstvou Max Pooling.

Maximálne združenie v CNN zvláda translačnú odchýlku. Aj keď je objekt mierne posunutý, je možné ho rozpoznať, ak je stále v okne združovania. Napriek tomu si tento prístup ponecháva iba maximálnu vlastnosť (najviac dominujúca) a ostatné zahodí.

Vyššie uvedený obrázok tváre bude klasifikovaný ako normálna tvár. Spoločná vrstva tiež pridáva tento typ invariance.

To nikdy nebolo zámerom spojovacej vrstvy. To, čo združovanie malo robiť, je zaviesť pozičné, orientačné, proporcionálne invariancie.

V skutočnosti táto vrstva združovania pridáva všetky druhy pozičnej invariantnosti. Ako môžete vidieť aj na vyššie uvedenom diagrame, vedie to k dileme správnej detekcie tváre.

Pozrime sa, aké je riešenie, ktoré navrhuje Geoffrey Hinton .

Ako vyriešiť tento problém?

Teraz si predstavíme, že každý neurón obsahuje pravdepodobnosť a vlastnosti týchto prvkov. Napríklad vydáva vektor obsahujúci [pravdepodobnosť, orientácia, veľkosť]. Pomocou týchto priestorových informácií dokážeme zistiť nesúlad v orientácii a veľkosti medzi znakmi nosa, očí a uší, a preto bude mať výstup detekcie tváre oveľa nižšiu úroveň.

V článku, ktorý vydal Geoffrey Hinton , tieto typy neurónov sa nazývajú tobolky. Tieto kapsuly vydávajú vektor namiesto jednej škálovacej hodnoty.

Dovoľte mi uviesť nejaké svetlá na to, čo sú Capsule Networks.

Čo sú to kapsulové siete?

Kapsula je v podstate sada vnorených nervových vrstiev. Stav neurónov vo vnútri kapsuly zachytáva rôzne vlastnosti, ako sú - poloha (poloha, veľkosť, orientácia), deformácia, rýchlosť, textúra atď. Jednej entity vo vnútri obrázka.

Namiesto zachytenia prvku pomocou konkrétneho variantu sa kapsula trénuje, aby zachytila ​​pravdepodobnosť prvku a jeho variantu. Účelom kapsuly teda nie je iba zistiť vlastnosť, ale aj vyškoliť model, aby sa naučil variant.

Také, aby tá istá kapsula dokázala detekovať rovnakú triedu objektov s rôznymi orientáciami (napríklad otáčať sa v smere hodinových ručičiek):

Môžeme povedať, že to funguje na ekvivariancii, nie na invariantnosti.

Invariance: je detekcia funkcií bez ohľadu na varianty. Napríklad neurón na detekciu nosa deteguje nos bez ohľadu na orientáciu.

implementovať min haldy v jave

Rovnocennosť: je detekcia objektov, ktoré sa môžu navzájom transformovať (napríklad detekcia tvárí s rôznou orientáciou). Sieť kapsúl intuitívne skôr detekuje tvár otočenú o 31 ° (ekvivariancia), ako by si uvedomila, že tvár zodpovedala variantu, ktorý je otočený o 31 °. Keď model prinútime naučiť sa variant variantu v kapsule, môžeme efektívnejšie extrapolovať možné varianty s menším počtom tréningových údajov. Okrem toho môžeme efektívnejšie odmietať protivníkov.

Z kapsuly vychádza vektor, ktorý predstavuje existenciu entity. Orientácia vektora predstavuje vlastnosti entity.

Vektor sa odošle všetkým možným rodičom v neurónovej sieti. Pre každého možného rodiča môže kapsula nájsť vektor predikcie. Predikčný vektor sa počíta na základe vynásobenia jeho vlastnej hmotnosti a váhovej matice. Ktorýkoľvek z rodičov má najväčší vektorový produkt skalárnej predikcie, zvyšuje väzbu kapsuly. Zvyšok rodičov znižuje väzby. Toto sa nazýva ako Smerovanie podľa dohody .

Toto je určite lepší prístup ako max pooling, pri ktorom je smerovanie založené na najsilnejšej funkcii zistenej v spodnej vrstve.

Potom sa pridá funkcia stlačenia. Toto sa robí kvôli zavedeniu nelinearity. Táto funkcia stlačenia sa aplikuje na vektorový výstup každej kapsuly.

Teraz vám poviem, ako fungujú siete kapsúl.

Ako fungujú kapsulové siete?

Urobme krok späť. V plne pripojenej sieti je výstupom každého neurónu vážený súčet vstupov.

Teraz sa pozrime, čo sa stane v kapsulových sieťach.

Neurónová sieť kapsúl:

Uvažujme o neurónovej sieti kapsúl, kde ‘ui„Je vektor aktivity pre kapsulu“ja ‘vo vrstve dole.

Krok 1: Aplikujte transformačnú maticuINijdo výstupu kapsuly ui predchádzajúcej vrstvy. Napríklad s maticou m × k transformujeme k-Dui do m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

Je to predpoveď ( hlasovať ) z kapsuly „i“ na výstupe z kapsuly „j“ vyššie. „Vj„Je vektor aktivity pre kapsulu“j ‘vo vrstve vyššie

Krok 2: Vypočítajte vážený súčet sjs váhamicij.cijsú väzbové koeficienty. Súčet týchto koeficientov sa rovná jednej. Je to skutočný parameter, ktorý pracuje na vzťahu skupiny kapsúl, o ktorom sme hovorili už skôr.

Krok 3: V konvolučných neurónových sieťach sme použili funkciu ReLU. Tu použijeme funkciu stlačenia na zväčšenie vektora od 0 do dĺžky jednotky. Zmenšuje malé vektory na nulu a dlhé vektory na jednotkové vektory. Pravdepodobnosť každej kapsuly je preto ohraničená medzi nulou a jednou.

Je to predpoveď ( hlasovať ) z kapsuly „i“ na výstupe z kapsuly „j“ vyššie. Ak má vektor aktivity podobnosť s vektorom predikcie, dospejeme k záveru, že kapsula ‘ja ‘veľmi súvisí s kapsulou ‘j ‘. (Napríklad nosová kapsula veľmi súvisí s tobolkou na tvári.) Takáto podobnosť sa meria pomocou skalárneho súčinu vektora predikcie a aktivity. Preto podobnosť zohľadňuje pravdepodobnosť aj vlastnosti vlastnosti. (namiesto iba podobnosti v neurónoch).

Krok 4: Vypočítajte skóre relevantnosti ‘bij„. Bude to bodový produkt vektora aktivity a vektoru predikcie. Spojovacie koeficientycijsa počíta ako softmax zbij:

Spojovací koeficient cijsa počíta ako softmax bij.

Toto bijsa aktualizuje iteratívne vo viacerých iteráciách.

Toto sa nazýva ako Smerovanie podľa dohody .

Nižšie uvedený diagram je jedným príkladom:

Po tomto blogu o Capsule Networks prídem s blogom o implementácii Capsule Neural Network pomocou TensorFlow.

Dúfam, že sa vám čítanie tohto blogu v kapsulárnych sieťach páčilo, pozrite si stránku autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Kurz Edureka Deep Learning with TensorFlow Certification Training pomáha študentom stať sa odborníkmi na výcvik a optimalizáciu základných a konvolučných neurónových sietí pomocou projektov a úloh v reálnom čase spolu s konceptmi, ako sú funkcia SoftMax, neurónové siete s automatickým kódovaním, obmedzený Boltzmann Machine (RBM).

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.