inzicht in de Capsulenetwerken van Hinton. Deel IV: CapsNet architectuur

stel dat het juiste label 1 is, dan betekent dit dat de eerste DigitCap verantwoordelijk is voor het coderen van de aanwezigheid van het cijfer 1. Voor de verliesfunctie van deze DigitCap zal T_c één zijn en voor alle resterende negen DigitCaps zal t_c 0 zijn. Wanneer T_c 1 is dan wordt de eerste term van de verliesfunctie berekend en wordt de tweede nul. Voor ons voorbeeld, om het verlies van de eerste DigitCap te berekenen nemen we de uitvoervector van deze DigitCap en trekken deze af van m+, die is vastgesteld op 0.9. Dan houden we de resulterende waarde alleen in het geval dat het groter is dan nul en kwadrateren het. Geef anders 0 terug. Met andere woorden, het verlies zal nul zijn als de correcte DigitCap het correcte label met groter dan 0.9 waarschijnlijkheid voorspelt, en het zal niet-nul zijn als de waarschijnlijkheid kleiner is dan 0.9.

de waarde van de verliesfunctie voor correcte en onjuiste DigitCap. Merk op dat de rode grafiek verticaal “geplet” is in vergelijking met de groene. Dit komt door de lambda multiplier van de formule. Bron: auteur.

voor DigitCaps die niet overeenkomen met het juiste label, zal T_c nul zijn en daarom zal de tweede term worden geëvalueerd (overeenkomend met (1 — T_c) deel). In dit geval kunnen we zien dat het verlies nul zal zijn als de mismatching DigitCap voorspelt een onjuist label met waarschijnlijkheid minder dan 0,1 en niet-nul als het voorspelt een onjuist label met waarschijnlijkheid meer dan 0,1.

ten slotte is in de formule lambda-coëfficiënt opgenomen voor numerieke stabiliteit tijdens de training (de waarde is vastgesteld op 0,5). De twee termen in de formule hebben vierkanten omdat deze verliesfunctie L2 norm heeft en de auteurs blijkbaar van mening dat deze norm beter werkt.

Deel II. Decoder.

CapsNet decoder architectuur. Bron: original paper.

Decoder neemt een 16-dimensionale vector van de juiste DigitCap en leert deze te decoderen in een afbeelding van een cijfer (merk op dat het alleen de juiste digitcap vector gebruikt tijdens de training en de onjuiste negeert). Decoder wordt gebruikt als een regularisator, het neemt de output van de juiste DigitCap als input en leert om een 28 bij 28 pixels afbeelding opnieuw te maken, met de verliesfunctie Euclidische afstand tussen de gereconstrueerde afbeelding en de invoer afbeelding. Decoder dwingt capsules om functies te leren die nuttig zijn voor het reconstrueren van de originele afbeelding. Hoe dichter het gereconstrueerde beeld bij het invoerbeeld komt, hoe beter. Voorbeelden van gereconstrueerde beelden zijn te zien in de afbeelding hieronder.

Bovenste rij: originele afbeeldingen. Onderste rij: gereconstrueerde beelden. Bron: original paper.

laag 4. Volledig verbonden # 1

ingang: 16×10.
Output: 512.
aantal parameters: 82432.

elke uitgang van het lagere niveau wordt gewogen en gericht in elk neuron van de volledig verbonden laag als input. Elk neuron heeft ook een bias term. Voor deze laag zijn er 16×10 ingangen die allemaal zijn gericht op elk van de 512 neuronen van deze laag. Daarom zijn er (16×10 + 1)x512 trainbare parameters.

voor de volgende twee lagen is de berekening hetzelfde: aantal parameters = (aantal ingangen + bias) x aantal neuronen in de laag. Daarom is er geen verklaring voor volledig verbonden lagen 2 en 3.

laag 5. Volledig verbonden # 2

ingang: 512.
Output: 1024.
aantal parameters: 525312.

laag 6. Volledig verbonden # 3

ingang: 1024.
uitgang: 784 (die na een nieuwe vorm geeft een 28×28 gedecodeerd beeld).
aantal parameters: 803600.

totaal aantal parameters in het netwerk: 8238608.

conclusie

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.