Capsule Neural Networks - Sæt med indlejrede neurale lag

Capsule Networks - Denne blog taler om begrænsningerne ved Convolutional Neural Networks, og hvordan Capsule Neural Networks løser disse begrænsninger.

Kapselnetværk:

Hvad er kapselnetværk? Det er dybest set et netværk af sæt indlejrede neurale lag.



Jeg vil anbefale dig også at gennemgå nedenstående blogs:



Jeg antager, at I kender Convolutional Neural Networks (CNN). Her vil jeg give dig en lille introduktion om det samme, så jeg kan diskutere begrænsningerne ved CNN'er.

Du kan også se nedenstående video om Convolutional Neural Network.



Convolutional Neural Networks (CNN)

Convolutional Neural Networks er grundlæggende stak af forskellige lag af kunstige neuroner, som bruges til computersyn. Nedenfor har jeg nævnt disse lag:

Convolutional Neural Network - Capsule Neural Network - Edureka

Konvolutionslag: Når vi bruger Feedforward Neural Networks (Multi Layer Perceptron) til billedklassificering, er der mange udfordringer med det. Den mest frustrerende udfordring er, at det introducerer en masse parametre, overvej video tutorial på CNN.



For at overvinde denne udfordring Convolution Layer Blev introduceret. det antages, at pixels, der er rumligt tættere på hinanden, vil 'samarbejde' om at danne et bestemt træk af interesse meget mere end dem i modsatte hjørner af billedet. Hvis en bestemt (mindre) funktion viser sig at være af stor betydning, når man definerer et billedes etiket, vil det også være lige så vigtigt, hvis denne funktion blev fundet overalt i billedet, uanset placering.

ReLU-lag: Rectified Linear Unit (ReLU) transformeringsfunktion aktiverer kun en node, hvis input er over en bestemt størrelse, mens input er under nul, output er nul, men når input stiger over en bestemt tærskel, har den et lineært forhold til afhængig variabel.

  • I dette lag fjerner vi alle negative værdier fra de filtrerede billeder og erstatter dem med nul
  • Dette gøres for at undgå, at værdierne opsummeres til nul

Pooling Layer: Dette bruges til at udføre downsampling, som forbruger små og (normalt) uensartede klumper af billedet og samler dem i en enkelt værdi. Der er flere mulige ordninger for sammenlægningen - det mest populære væsen Max-pooling , hvor den maksimale pixelværdi inden for hvert stykke tages. Det gør netværket uforanderligt for små transformationer, forvrængninger og oversættelser i inputbilledet (en lille forvrængning i input ændrer ikke output fra Pooling - da vi tager den maksimale / gennemsnitlige værdi i et lokalt kvarter).

Fuldt forbundet lag: Dette lag beregner klassens scores, hvor hvert af numrene svarer til en klassescore. Som med almindelige neurale netværk, og som navnet antyder, vil hver neuron i dette lag være forbundet med alle neuroner i det foregående bind. I en nøddeskal udfører den den endelige klassifikation.

På denne måde omdanner ConvNets det originale billede lag for lag fra de originale pixelværdier til de endelige klassescore.

Dette var en meget kort introduktion til Convolutional Neural Networks, jeg vil stadig anbefale dig at se på CNN-videoen, som jeg har indlejret i dette indlæg.

I denne Capsule Networks-blog vil jeg nu diskutere få begrænsninger af Convolutional Neural Networks

Begrænsninger af konvolutionsneurale netværk:

Lad mig forklare dette med en analogi.

Antag at der er et menneske, hvis øjne kan registrere funktionerne i forskellige billeder. Lad os betragte et menneskes ansigt som et eksempel. Så denne uheldige fyr kan identificere forskellige funktioner såsom øjne, næse osv., Men er ude af stand til at identificere de rumlige forhold mellem funktioner (perspektiv, størrelse, orientering). For eksempel kan følgende billede narre den fyr i at klassificere det som en god skitse af et menneskeligt ansigt.

Dette er også problemet med Convolutional Neural Networks. CNN er god til at opdage funktioner, men vil forkert aktivere neuronen til ansigtsgenkendelse. Dette skyldes, at det er mindre effektivt til at udforske de rumlige forhold mellem funktioner.

En simpel CNN-model kan udtrække funktionerne til næse, øjne og mund korrekt, men vil forkert aktivere neuronen til ansigtsdetektering. Uden at indse misforholdet i rumlig orientering og størrelse, vil aktiveringen for ansigtsgenkendelse være for høj.

Nå, denne begrænsning skyldes Max Pooling-laget.

Den maksimale pooling i en CNN håndterer translationel variation. Selv en funktion flyttes let, hvis den stadig er inden for pooling-vinduet, kan den stadig registreres. Ikke desto mindre holder denne tilgang kun max-funktionen (den mest dominerende) og smider de andre væk.

Så ansigtsbilledet vist ovenfor klassificeres som et normalt ansigt. Pooling-lag tilføjer også denne type invarians.

Dette var aldrig hensigten med poollaget. Hvad pooling skulle gøre er at introducere positionelle, orienterende, proportionale invarianter.

I virkeligheden tilføjer dette poolinglag alle mulige positionelle invarianser. Som du også kan se i ovenstående diagram, fører det til dilemmaet med at opdage ansigtet korrekt.

Lad os se, hvad løsningen er foreslået af Geoffrey Hinton .

Hvordan løses dette problem?

Nu forestiller vi os, at hver neuron indeholder sandsynligheden såvel som egenskaberne ved funktionerne. For eksempel udsender den en vektor, der indeholder [sandsynlighed, orientering, størrelse]. Med denne rumlige information kan vi registrere den konsistente orientering og størrelse blandt næse-, øjne- og øreegenskaber og derfor udsende en meget lavere aktivering til ansigtsgenkendelse.

I papiret frigivet af Geoffrey Hinton , disse typer neuroner kaldes kapsler. Disse kapsler udsender en vektor i stedet for en enkelt skaleringsværdi.

Lad mig sætte nogle lys på, hvad der er Capsule Networks.

Hvad er kapselnetværk?

Kapsel er dybest set et sæt nestede neurale lag. Neuronernes tilstand inde i en kapsel fanger de forskellige egenskaber som - positur (position, størrelse, orientering), deformation, hastighed, struktur osv. Af en enhed inde i et billede.

I stedet for at indfange en funktion med en bestemt variant trænes en kapsel i at opfange sandsynligheden for en funktion og dens variant. Så formålet med kapslen er ikke kun at opdage en funktion, men også at træne modellen til at lære varianten.

Sådan at den samme kapsel kan registrere den samme objektklasse med forskellige retninger (for eksempel rotere med uret):

Vi kan sige, at det virker på ækvivalens, ikke uforanderlighed.

Invariance: er detektering af funktioner uanset varianter. For eksempel registrerer en næse-detektionsneuron en næse uanset orientering.

Ækvivalens: er detektering af objekter, der kan transformere til hinanden (for eksempel detektering af ansigter med forskellige retninger). Intuitivt registrerer kapselnetværket, at ansigtet drejes til højre 31 ° (ækvivalens) snarere end at indse, at ansigtet matcher en variant, der roteres 31 °. Ved at tvinge modellen til at lære funktionsvarianten i en kapsel, kan vi ekstrapolere mulige varianter mere effektivt med mindre træningsdata. Derudover kan vi afvise modstandere mere effektivt.

En kapsel udsender en vektor, der repræsenterer enhedens eksistens. Orienteringen af ​​vektoren repræsenterer enhedens egenskaber.

Vektoren sendes til alle mulige forældre i det neurale netværk. For hver mulig forælder kan en kapsel finde en forudsigelsesvektor. Forudsigelsesvektoren beregnes ud fra at multiplicere sin egen vægt og en vægtmatrix. Uanset hvilken forælder der har det største skalære forudsigelsesvektorprodukt, øges kapselbinding. Resten af ​​forældrene mindsker deres bånd. Dette kaldes som Routing efter aftale .

Dette er bestemt en bedre tilgang end max pooling, hvor routing er baseret på den stærkeste funktion registreret i det nederste lag.

Herefter er der en squashing-funktion, der tilføjes. Dette gøres for at indføre ikke - linearitet. Denne squashing-funktion anvendes til vektoroutputtet i hver kapsel.

Lad mig fortælle dig nu, hvordan Capsule Networks fungerer.

Hvordan fungerer kapselnetværk?

Lad os tage et skridt tilbage. I et fuldt tilsluttet netværk er output fra hver neuron den vægtede sum af input.

Lad os nu se, hvad der sker i Capsule Networks.

Capsule Neural Network:

Lad os overveje et kapselneuralt netværk, hvor 'ujeg'Er aktivitetsvektoren for kapslen'jeg'i laget nedenfor.

Trin - 1: Anvend en transformationsmatrixIijtil kapseloutput ujeg af det foregående lag. For eksempel med en m × k-matrix transformerer vi en k-Dujeg til en MDu ^j | i. ((m × k) × (k × 1) = m × 1).

Det er forudsigelsen ( stemme ) fra kapslen 'i' på output fra kapslen 'j' ovenfor. ‘Vj'Er aktivitetsvektoren for kapslen'j 'i laget ovenfor

Trin - 2: Beregn en vægtet sumjmed vægtecij.cijer koblingskoefficienterne. Summen af ​​disse koefficienter er lig med en. Det er den egentlige parameter, der fungerer på forholdet mellem gruppen af ​​kapsler, som vi talte tidligere.

Trin - 3: I Convolutional Neural Networks brugte vi ReLU-funktionen. Her anvender vi en squashing-funktion til at skalere vektoren mellem 0 og enhedens længde. Det krymper små vektorer til nul og lange vektorer til enhedsvektorer. Derfor er sandsynligheden for hver kapsel afgrænset mellem nul og en.

Det er forudsigelsen ( stemme ) fra kapslen 'i' på output fra kapslen 'j' ovenfor. Hvis aktivitetsvektoren har tæt lighed med forudsigelsesvektoren, konkluderer vi, at kapsel 'jeg'er stærkt beslægtet med kapslen 'j '. (For eksempel er næsekapslen meget relateret til ansigtskapslen.) En sådan lighed måles ved hjælp af det skalære produkt fra forudsigelses- og aktivitetsvektoren. Derfor tager ligheden hensyn til både sandsynligheden og egenskabsegenskaberne. (i stedet for bare sandsynlighed i neuroner).

Trin - 4: Beregn relevansscore ‘bij'. Det vil være prikproduktet af aktivitetsvektoren og forudsigelsesvektoren. Koblingskoefficienternecjegjberegnes som softmax forbjegj:

Koblingskoefficienten cijberegnes som softmax for bij.

Dette bijopdateres iterativt i flere iterationer.

Dette kaldes som Routing efter aftale .

Nedenstående diagram er et eksempel:

Efter denne blog på Capsule Networks vil jeg komme med en blog om Capsule Neural Network implementering ved hjælp af TensorFlow.

Jeg håber, du har nydt at læse denne blog på kapselnetværk, tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka Deep Learning with TensorFlow Certification Training kursus hjælper elever med at blive ekspert i træning og optimering af grundlæggende og konvolutionelle neurale netværk ved hjælp af realtidsprojekter og opgaver sammen med koncepter som SoftMax-funktion, Auto-encoder Neural Networks, Restricted Boltzmann Machine (RBM).

maskinlæringsalgoritmer i r

Har du et spørgsmål til os? Nævn det i kommentarfeltet, og vi vender tilbage til dig.