înțelegerea rețelelor de Capsule ale lui Hinton. Partea IV: arhitectura CapsNet

să presupunem că eticheta corectă este 1, Aceasta înseamnă că primul DigitCap este responsabil pentru codificarea prezenței cifrei 1. Pentru această funcție de pierdere DigitCap T_c va fi una și pentru toate cele nouă DigitCaps rămase T_c va fi 0. Când T_c este 1, atunci primul termen al funcției de pierdere este calculat și al doilea devine zero. Pentru exemplul nostru, pentru a calcula pierderea Primului DigitCap, luăm vectorul de ieșire al acestui DigitCap și îl scădem din m+, care este fixat la 0,9. Apoi păstrăm valoarea rezultată numai în cazul în care este mai mare decât zero și o pătrat. În caz contrar, reveniți 0. Cu alte cuvinte, pierderea va fi zero dacă DigitCap corect prezice eticheta corectă cu o probabilitate mai mare de 0,9 și va fi diferită de zero dacă probabilitatea este mai mică de 0,9.

valoarea funcției de pierdere pentru DigitCap corectă și incorectă. Rețineți că graficul roșu este „zdrobit” vertical în comparație cu cel verde. Acest lucru se datorează multiplicatorului lambda din formulă. Sursa: autor.

pentru DigitCaps care nu se potrivesc cu eticheta corectă, T_c va fi zero și, prin urmare, al doilea termen va fi evaluat (corespunzător părții (1 — T_c)). În acest caz, putem vedea că pierderea va fi zero dacă Nepotrivirea DigitCap prezice o etichetă incorectă cu probabilitate mai mică de 0,1 și diferită de zero dacă prezice o etichetă incorectă cu probabilitate mai mare de 0,1.

în cele din urmă, în formula coeficientul lambda este inclus pentru stabilitatea numerică în timpul antrenamentului (valoarea sa este fixată la 0,5). Cei doi termeni din formulă au pătrate, deoarece această funcție de pierdere are norma L2, iar autorii consideră că această normă funcționează mai bine.

Partea II. decodor.

CapsNet decodor arhitectura. Sursa: hârtie originală.

decodorul ia un vector 16-dimensional din DigitCap corect și învață să-l decodeze într-o imagine a unei cifre (rețineți că folosește doar vectorul DigitCap corect în timpul antrenamentului și ignoră cele incorecte). Decodorul este folosit ca regularizator, preia ieșirea DigitCap corectă ca intrare și învață să recreeze o imagine de 28 x 28 pixeli, funcția de pierdere fiind distanța euclidiană între imaginea reconstruită și imaginea de intrare. Decodor forțează capsule pentru a afla caracteristici care sunt utile pentru reconstruirea imaginii originale. Cu cât imaginea reconstruită este mai aproape de imaginea de intrare, cu atât mai bine. Exemple de imagini reconstruite pot fi văzute în imaginea de mai jos.

rândul de sus: imagini originale. Rândul de jos: imagini reconstruite. Sursa: hârtie originală.

stratul 4. Complet conectat # 1

intrare: 16×10.
ieșire: 512.
numărul de parametri: 82432.

fiecare ieșire a nivelului inferior devine ponderată și direcționată în fiecare neuron al stratului complet conectat ca intrare. Fiecare neuron are, de asemenea, un termen de părtinire. Pentru acest strat există intrări 16×10 care sunt direcționate către fiecare dintre cei 512 neuroni ai acestui strat. Prin urmare, există (16×10 + 1)x512 parametri antrenabili.

pentru următoarele două straturi de calcul este același: numărul de parametri = (numărul de intrări + părtinire) x numărul de neuroni din strat. Acesta este motivul pentru care nu există nicio explicație pentru straturile 2 și 3 complet conectate.

stratul 5. Complet conectat # 2

intrare: 512.
ieșire: 1024.
numărul de parametri: 525312.

stratul 6. Complet conectat #3

intrare: 1024.
ieșire: 784 (care după remodelare dă înapoi o imagine decodificată 28×28).
numărul de parametri: 803600.

numărul Total de parametri din rețea: 8238608.

concluzie

Lasă un răspuns

Adresa ta de email nu va fi publicată.