Capsule Neural Networks - Set of Nested Neural Layers



Capsule Networks - Den här bloggen talar om begränsningarna i Convolutional Neural Networks, och hur Capsule Neural Networks löser dessa begränsningar.

Kapselnätverk:

Vad är Capsule Networks? Det är i grunden ett nätverk av uppsättningar kapslade neurala lager.

Jag skulle rekommendera dig att gå igenom nedanstående bloggar också:





Jag antar att ni känner till Convolutional Neural Networks (CNN). Här kommer jag att ge dig en liten introduktion om samma, så att jag kan diskutera begränsningarna för CNN.

Du kan också hänvisa till videon nedan på Convolutional Neural Network.



Convolutional Neural Networks (CNN)

Convolutional Neural Networks, är i grunden en stapel med olika lager av konstgjorda nervceller, som används för datorsyn. Nedan har jag nämnt dessa lager:

Convolutional Neural Network - Capsule Neural Network - Edureka

Konvolutionsskikt: När vi använder Feedforward Neural Networks (Multi Layer Perceptron) för bildklassificering finns det många utmaningar med det. Den mest frustrerande utmaningen är att den introducerar många parametrar, överväga videotutorialen på CNN.



För att övervinna denna utmaning Convolution Layer introducerades. det antas att pixlar som är rumsligt närmare varandra kommer att 'samarbeta' för att bilda ett särskilt intressant särdrag mycket mer än de i motsatta hörn av bilden. Om en viss (mindre) funktion visar sig vara av stor betydelse när en bilds etikett definieras, är det lika viktigt om den här funktionen hittades någonstans i bilden, oavsett plats.

ReLU Layer: Rectified Linear Unit (ReLU) transformfunktion aktiverar bara en nod om ingången är över en viss storlek, medan ingången är under noll är utgången noll, men när ingången stiger över ett visst tröskelvärde har den ett linjärt förhållande till beroende variabel.

  • I detta lager tar vi bort alla negativa värden från de filtrerade bilderna och ersätter dem med noll
  • Detta görs för att undvika att värdena summeras till noll

Pooling Layer: Detta används för att utföra nedprovtagning, som förbrukar små och (vanligtvis) ojämna bitar av bilden och sammanställer dem till ett enda värde. Det finns flera möjliga scheman för aggregeringen - den mest populära varelsen Maxpooling , där det maximala pixelvärdet i varje bit tas. Det gör nätverket oförändrat för små transformationer, snedvridningar och översättningar i ingångsbilden (en liten förvrängning i ingången kommer inte att förändra utdata från Pooling - eftersom vi tar det maximala / genomsnittliga värdet i ett lokalt område).

Helt anslutet lager: Detta lager beräknar klasspoängen, där vart och ett av siffrorna motsvarar ett klasspoäng. Som med vanliga neurala nätverk och som namnet antyder kommer varje neuron i detta lager att anslutas till alla nervceller i föregående volym. I ett nötskal utför den den slutliga klassificeringen.

På detta sätt omvandlar ConvNets originalbilden lager för lager från de ursprungliga pixelvärdena till slutklasspoängen.

Detta var en mycket kort introduktion till Convolutional Neural Networks, jag skulle fortfarande rekommendera dig att titta på CNN-videon som jag har inbäddat i det här inlägget.

I denna Capsule Networks-blogg kommer jag nu att diskutera några begränsningar av Convolutional Neural Networks

Begränsningar av konvolutionsneurala nätverk:

Låt mig förklara detta med en analogi.

Anta att det finns en människa vars ögon kan upptäcka funktionerna i olika bilder. Låt oss betrakta en människas ansikte som ett exempel. Så denna olyckliga kille kan identifiera olika funktioner som, ögon, näsa etc. men kan inte identifiera de rumsliga förhållandena mellan funktioner (perspektiv, storlek, orientering). Till exempel kan följande bild lura den killen att klassificera den som en bra skiss av ett mänskligt ansikte.

Detta är också problemet med Convolutional Neural Networks. CNN är bra på att upptäcka funktioner, men kommer felaktigt att aktivera neuronen för ansiktsdetektering. Detta beror på att det är mindre effektivt för att utforska rumsliga förhållanden mellan funktioner.

En enkel CNN-modell kan extrahera funktionerna för näsa, ögon och mun korrekt men aktiverar felaktigt neuronen för ansiktsdetektering. Utan att inse fel matchning i rumslig orientering och storlek kommer aktiveringen för ansiktsavkänning att bli för hög.

Tja, den här begränsningen beror på Max Pooling-lagret.

Den maximala poolningen i en CNN hanterar translationell varians. Även en funktion flyttas något, om den fortfarande finns inom poolningsfönstret kan den fortfarande upptäckas. Ändå håller detta tillvägagångssätt bara maxfunktionen (den mest dominerande) och kastar bort de andra.

Så ansiktsbilden som visas ovan kommer att klassificeras som ett normalt ansikte. Poollager lägger också till denna typ av invarians.

Detta var aldrig avsikten med poollagret. Vad poolingen skulle göra är att införa positionella, orienterande, proportionella invarianter.

I verkligheten lägger detta poolskikt till alla slags positionella invarianser. Som du också kan se i ovanstående diagram leder det till dilemmaet att detektera ansiktet korrekt.

Låt oss se vilken lösning som föreslås av Geoffrey Hinton .

Hur löser jag detta problem?

Nu föreställer vi oss att varje neuron innehåller sannolikheten och egenskaperna hos funktionerna. Till exempel matar den ut en vektor som innehåller [sannolikhet, orientering, storlek]. Med denna rumsliga information kan vi upptäcka överensstämmelsen i orienteringen och storleken bland näsa, ögon och öron och därför ger en mycket lägre aktivering för ansiktsavkänning.

I tidningen som släpptes av Geoffrey Hinton , dessa typer av nervceller kallas kapslar. Dessa kapslar matar ut en vektor istället för ett enda skalningsvärde.

Låt mig sätta några lampor på vad som är Capsule Networks.

Vad är kapselnätverk?

Kapseln är i grunden en uppsättning kapslade neurala lager. Neuronernas tillstånd inuti en kapsel fångar upp de olika egenskaperna som - pose (position, storlek, orientering), deformation, hastighet, struktur etc., för en enhet inuti en bild.

Istället för att fånga en funktion med en specifik variant tränas en kapsel för att fånga upp sannolikheten för en funktion och dess variant. Så syftet med kapseln är inte bara att upptäcka en funktion utan också att träna modellen för att lära sig varianten.

Så att samma kapsel kan upptäcka samma objektklass med olika riktningar (till exempel rotera medurs):

Vi kan säga att det fungerar på likvärdighet inte invarians.

Invarians: är detektering av funktioner oavsett varianter. Till exempel upptäcker en näsdetekteringsneuron en näsa oavsett orientering.

Likvärdighet: är detektering av objekt som kan förvandlas till varandra (till exempel detektering av ansikten med olika orientering). Intuitivt upptäcker kapselnätverket att ansiktet roteras höger 31 ° (ekvarians) snarare än att inse att ansiktet matchar en variant som roteras 31 °. Genom att tvinga modellen att lära sig funktionsvarianten i en kapsel kan vi extrapolera möjliga varianter mer effektivt med mindre träningsdata. Dessutom kan vi avvisa motståndare mer effektivt.

En kapsel matar ut en vektor som representerar enhetens existens. Orienteringen av vektorn representerar enhetens egenskaper.

Vektorn skickas till alla möjliga föräldrar i det neurala nätverket. För varje möjlig förälder kan en kapsel hitta en prediktionsvektor. Förutsägelsevektorn beräknas baserat på att multiplicera sin egen vikt och en viktmatris. Oavsett vilken förälder som har den största skalära förutsägelsesvektorprodukten ökar kapselbindningen. Resten av föräldrarna minskar sitt band. Detta kallas som Routing enligt överenskommelse .

Detta är definitivt ett bättre tillvägagångssätt än maxpooling, där routing baseras på den starkaste funktionen som upptäcks i det nedre lagret.

konvertera från dubbel till int

Efter detta finns en squashing-funktion som läggs till. Detta görs för att införa icke-linjäritet. Denna squashing-funktion tillämpas på vektorkapaciteten för varje kapsel.

Låt mig berätta nu hur Capsule Networks fungerar.

Hur fungerar kapselnätverk?

Låt oss ta ett steg tillbaka. I ett helt anslutet nätverk är utgången från varje neuron den vägda summan av ingångarna.

Låt oss nu se vad som händer i Capsule Networks.

Capsule Neural Network:

Låt oss överväga ett kapselneuralt nätverk där dui”Är aktivitetsvektorn för kapseln”jag 'i skiktet nedan.

Steg 1: Använd en transformationsmatrisII jtill kapselns utgång ui i föregående lager. Till exempel, med en m × k-matris transformerar vi en k-Dui till en m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

Det är förutsägelsen ( rösta ) från kapseln 'i' på utgången från kapseln 'j' ovan. ‘Vj”Är aktivitetsvektorn för kapseln”j 'i skiktet ovan

Steg 2: Beräkna en vägd summajmed viktercI j.cI jär kopplingskoefficienterna. Summan av dessa koefficienter är lika med en. Det är den faktiska parametern som fungerar på förhållandet mellan grupp av kapslar som vi pratade tidigare.

Steg 3: I Convolutional Neural Networks använde vi ReLU-funktionen. Här kommer vi att använda en squashing-funktion för att skala vektorn mellan 0 och enhetslängd. Det krymper små vektorer till noll och långa vektorer till enhetsvektorer. Därför begränsas sannolikheten för varje kapsel mellan noll och en.

Det är förutsägelsen ( rösta ) från kapseln 'i' på utgången från kapseln 'j' ovan. Om aktivitetsvektorn har nära likhet med prediktionsvektorn drar vi slutsatsen att kapseln ”jag 'är starkt besläktad med kapseln ”j '. (Till exempel är näskapseln starkt relaterad till ansiktskapseln.) Sådan likhet mäts med användning av den skalära produkten av förutsägelses- och aktivitetsvektorn. Därför tar likheten hänsyn till både likhet och funktionsegenskaper. (istället för bara sannolikhet i nervceller).

Steg - 4: Beräkna relevanspoäng ‘bI j'. Det kommer att vara punktprodukten för aktivitetsvektorn och prediktionsvektorn. Kopplingskoefficienternacijberäknas som softmax förbij:

Kopplingskoefficienten cI jberäknas som softmax för bI j.

Detta bI juppdateras iterativt i flera iterationer.

Detta kallas som Routing enligt överenskommelse .

Nedanstående diagram är ett exempel:

Efter den här bloggen på Capsule Networks kommer jag att komma med en blogg om Capsule Neural Network implementering med TensorFlow.

Jag hoppas att du har haft glädje av att läsa den här bloggen i kapselnätverk, kolla in av Edureka, ett pålitligt online-lärande företag med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Edureka Deep Learning with TensorFlow Certification Training-kursen hjälper eleverna att bli experter på utbildning och optimering av grundläggande och konvolutionsneurala nätverk med hjälp av realtidsprojekt och uppdrag tillsammans med koncept som SoftMax-funktion, Auto-encoder Neural Networks, Restricted Boltzmann Machine (RBM).

Har du en fråga till oss? Vänligen nämna det i kommentarfältet så återkommer vi till dig.