Neuronové sítě kapslí - sada vnořených neurálních vrstev

Kapsulové sítě - Tento blog hovoří o omezeních konvolučních neurálních sítí a o tom, jak tato omezení řeší kapslové neurální sítě.

Kapslové sítě:

Co je to Capsule Networks? Je to v podstatě síť soustavy vnořených neurálních vrstev.

Doporučil bych vám projít si také níže uvedené blogy:





Předpokládám, že vy znáte Convolutional Neural Networks (CNN). Zde vám uvedu malý úvod k témuž, abych mohl diskutovat o omezeních CNN.

Můžete také odkazovat na níže uvedené video o konvoluční neurální síti.



Konvoluční neuronové sítě (CNN)

Konvoluční neuronové sítě, jsou v podstatě stoh různých vrstev umělých neuronů, který se používá pro počítačové vidění. Níže jsem zmínil tyto vrstvy:

Konvoluční neurální síť - kapslová neurální síť - Edureka

Konvoluční vrstva: Když používáme pro klasifikaci obrázků Feedforward Neural Networks (Multi Layer Perceptron), je s tím mnoho výzev. Nejvíce frustrující výzvou je, že zavádí mnoho parametrů, zvažte videonávod na CNN.



K překonání této výzvy Konvoluční vrstva byl představen. Předpokládá se, že pixely, které jsou prostorově blíže k sobě, budou „spolupracovat“ při vytváření konkrétního zajímavého prvku mnohem více než pixely v opačných rozích obrazu. Pokud se zjistí, že konkrétní (menší) prvek má při definování štítku obrázku velký význam, bude stejně důležité, pokud byl tento prvek nalezen kdekoli v obrázku bez ohledu na jeho umístění.

Vrstva ReLU: Funkce transformace reLU (Rectified Linear Unit) aktivuje uzel pouze v případě, že je vstup nad určitou veličinou, zatímco vstup je pod nulou, výstup je nula, ale když vstup stoupne nad určitou prahovou hodnotu, má lineární vztah s závislá proměnná.

  • V této vrstvě z filtrovaných obrázků odstraníme všechny záporné hodnoty a nahradíme je nulami
  • Tím se zabrání tomu, aby se hodnoty sečetly až na nulu

Pooling Layer: To se používá k provedení převzorkování, které spotřebovává malé a (obvykle) disjunktní kousky obrazu a agreguje je do jedné hodnoty. Existuje několik možných schémat agregace - nejoblíbenější Max. Sdružování , kde se vezme maximální hodnota pixelu v každém bloku. Dělá síť invariantní vůči malým transformacím, zkreslením a překladům ve vstupním obrazu (malé zkreslení ve vstupu nezmění výstup Pooling - protože vezmeme maximální / průměrnou hodnotu v místním sousedství).

Plně připojená vrstva: Tato vrstva vypočítá skóre třídy, kde každé z čísel odpovídá skóre třídy. Stejně jako u běžných neuronových sítí a jak název napovídá, každý neuron v této vrstvě bude spojen se všemi neurony v předchozím svazku. Stručně řečeno, provádí závěrečnou klasifikaci.

Tímto způsobem ConvNets transformuje původní vrstvu obrazu po vrstvě z původních hodnot pixelů na konečné skóre třídy.

Jednalo se o velmi krátký úvod do Convolutional Neural Networks, přesto bych vám doporučil podívat se na video CNN, které jsem vložil do tohoto příspěvku.

V tomto blogu Capsule Networks se nyní budu zabývat několika omezeními konvolučních neuronových sítí

Omezení konvolučních neuronových sítí:

Dovolte mi to vysvětlit analogicky.

Předpokládejme, že existuje člověk, jehož oči mohou detekovat rysy různých obrazů. Vezměme si jako příklad tvář člověka. Tento nešťastník tedy může identifikovat různé rysy, jako jsou oči, nos atd., Ale nedokáže identifikovat prostorové vztahy mezi rysy (perspektiva, velikost, orientace). Například následující obrázek může toho chlapa zmást tím, že jej klasifikuje jako dobrý náčrt lidské tváře.

To je problém také u konvolučních neuronových sítí. CNN je dobrý v detekci funkcí, ale nesprávně aktivuje neuron pro detekci obličeje. Je to proto, že při zkoumání prostorových vztahů mezi prvky je méně efektivní.

Jednoduchý model CNN může správně extrahovat funkce pro nos, oči a ústa, ale nesprávně aktivuje neuron pro detekci obličeje. Aniž bychom si uvědomili nesprávnou shodu v prostorové orientaci a velikosti, aktivace detekce obličeje bude příliš vysoká.

Toto omezení je způsobeno vrstvou Max Pooling.

Maximální sdružení v CNN zpracovává translační rozptyl. I když je prvek mírně posunut, pokud je stále v okně sdružování, může být stále detekován. Tento přístup však zachovává pouze maximální funkci (nejvíce dominující) a ostatní zahodí.

Takže obrázek obličeje zobrazený výše bude klasifikován jako normální obličej. Pooling layer také přidává tento typ invariance.

To nikdy nebylo záměrem sdružené vrstvy. To, co sdružování mělo udělat, je zavést poziční, orientační, proporcionální invariance.

Ve skutečnosti tato vrstva sdružování přidává všechny druhy poziční invariance. Jak vidíte také na výše uvedeném diagramu, vede to k dilematu správné detekce obličeje.

Podívejme se, jaké je navrhované řešení Geoffrey Hinton .

Jak vyřešit tento problém?

Nyní si představujeme, že každý neuron obsahuje pravděpodobnost a vlastnosti vlastností. Například vydává vektor obsahující [pravděpodobnost, orientace, velikost]. S touto prostorovou informací dokážeme detekovat nekonzistenci v orientaci a velikosti mezi funkcemi nosu, očí a uší, a proto výstup mnohem nižší aktivace pro detekci obličeje.

V článku, který vydal Geoffrey Hinton , tyto typy neuronů se nazývají tobolky. Tyto kapsle vydávají vektor namísto jedné hodnoty scaleru.

Dovolte mi osvětlit, co jsou Capsule Networks.

Co jsou to kapslové sítě?

Kapsle je v podstatě sada vnořených nervových vrstev. Stav neuronů uvnitř kapsle zachycuje různé vlastnosti jako - pozice (poloha, velikost, orientace), deformace, rychlost, struktura atd. Jedné entity uvnitř obrazu.

Místo toho, aby se funkce zachytila ​​pomocí konkrétní varianty, se kapsle trénuje, aby zachytila ​​pravděpodobnost funkce a její varianty. Účelem kapsle tedy není jen detekovat prvek, ale také trénovat model, aby se naučil variantu.

Taková, že stejná kapsle dokáže detekovat stejnou třídu objektů s různou orientací (například otáčet ve směru hodinových ručiček):

Můžeme říci, že to funguje na ekvivariaci, ne na invariance.

Invariance: je detekce funkcí bez ohledu na varianty. Například neuron detekující nos detekuje nos bez ohledu na orientaci.

role a odpovědnosti scrum master pdf

Ekvivariance: je detekce objektů, které se mohou navzájem transformovat (například detekce tváří s různou orientací). Síť kapslí intuitivně detekuje, že se obličej otočí doprava o 31 ° (ekvivariační), než aby si uvědomil, že obličej odpovídá variantě, která je otočená o 31 °. Vynucením modelu, aby se naučil variantu funkce v kapsli, můžeme efektivněji extrapolovat možné varianty s méně tréninkovými daty. Navíc můžeme účinněji odmítat protivníky.

Kapsle vydává vektor, který představuje existenci entity. Orientace vektoru představuje vlastnosti entity.

Vektor je odeslán všem možným rodičům v neuronové síti. Pro každého možného rodiče může kapsle najít vektor predikce. Predikční vektor se počítá na základě vynásobení jeho vlastní hmotnosti a váhové matice. Kterýkoli z rodičů má největší skalární predikční vektorový produkt, zvyšuje vazbu tobolek. Zbytek rodičů snižuje jejich pouto. Toto se nazývá jako Směrování podle dohody .

To je rozhodně lepší přístup než maximální sdružování, ve kterém je směrování založeno na nejsilnější funkci zjištěné ve spodní vrstvě.

Poté je přidána squashingová funkce. To se provádí za účelem zavedení nelinearity. Tato funkce squashing se aplikuje na vektorový výstup každé kapsle.

Nyní vám řeknu, jak fungují Capsule Networks.

Jak fungují kapslové sítě?

Udělejme krok zpět. V plně připojené síti je výstupem každého neuronu vážený součet vstupů.

Nyní se podívejme, co se stane v Capsule Networks.

Neuronová síť kapsle:

Uvažujme o kapslové neuronové síti, kdei„Je vektor aktivity pro kapsli“ve vrstvě níže.

Krok 1: Aplikujte transformační maticiVijna výstup kapsle ui předchozí vrstvy. Například s maticí m × k transformujeme k-Dui na m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

Je to předpověď ( hlasování ) z tobolky „i“ na výstupu tobolky „j“ výše. 'protij„Je vektor aktivity pro kapsli“j “ve vrstvě výše

Krok 2: Vypočítejte vážený součet sjs váhamiCij.Cijjsou vazební koeficienty. Součet těchto koeficientů se rovná jedné. Je to skutečný parametr, který pracuje na vztahu skupiny kapslí, o kterém jsme mluvili dříve.

Krok 3: V konvolučních neuronových sítích jsme použili funkci ReLU. Zde použijeme funkci squashing, abychom změnili měřítko vektoru mezi 0 a délkou jednotky. Zmenší malé vektory na nulu a dlouhé vektory na jednotkové vektory. Proto je pravděpodobnost každé kapsle omezena mezi nulou a jednou.

Je to předpověď ( hlasování ) z tobolky „i“ na výstupu tobolky „j“ výše. Pokud má vektor aktivity podobnost s vektorem predikce, dospěli jsme k závěru, že kapslevelmi souvisí s tobolkou „j “. (Například nosní tobolka velmi souvisí s tobolkou na obličeji.) Taková podobnost se měří pomocí skalárního součinu vektoru predikce a aktivity. Podobnost proto zohledňuje jak pravděpodobnost, tak vlastnosti vlastností. (místo pouze podobnosti v neuronech).

Krok 4: Vypočítejte skóre relevance „bij„. Bude to bodový produkt vektoru aktivity a vektoru predikce. Spojovací koeficientyCijse počítá jako softmaxbij:

Koeficient vazby cijse počítá jako softmax bij.

Tento bijje aktualizován iterativně ve více iteracích.

Toto se nazývá jako Směrování podle dohody .

Níže uvedený diagram je jedním příkladem:

Po tomto blogu o Capsule Networks přijdu s blogem o implementaci Capsule Neural Network pomocí TensorFlow.

Doufám, že se vám tento blog na kapslových sítích líbil, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Kurz Edureka Deep Learning with TensorFlow Certification Training pomáhá studentům stát se odborníky na školení a optimalizaci základních a konvolučních neuronových sítí pomocí projektů a úkolů v reálném čase spolu s koncepty, jako je funkce SoftMax, automatické kodéry neuronových sítí, omezený Boltzmann Machine (RBM).

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.