Nevronske mreže kapsule - sklop ugnezdenih nevronskih plasti

Capsule Networks - Ta blog govori o omejitvah konvolucijskih nevronskih mrež in o tem, kako Capsule Neural Networks rešuje te omejitve.

Omrežja kapsul:

Kaj je Capsule Networks? V bistvu gre za mrežo nabora ugnezdenih nevronskih plasti.

Priporočam vam, da si ogledate tudi spodnje bloge:



Predvidevam, da poznate konvolucijske nevronske mreže (CNN). Tukaj vam bom dal majhen uvod o tem, da bom lahko razpravljal o omejitvah CNN-jev.

Spodaj si lahko ogledate tudi video o konvolucijski nevronski mreži.



Konvolucijske nevronske mreže (CNN)

Konvolucijske nevronske mreže so v osnovi kup različnih plasti umetnih nevronov, ki se uporablja za računalniški vid. Spodaj sem omenil te plasti:

Konvolucijska nevronska mreža - kapsulna nevronska mreža - Edureka

Konvolucijski sloj: Ko za klasifikacijo slik uporabljamo neformalna omrežja Feedforward (večplastni perceptron), je s tem veliko izzivov. Najbolj moteč izziv je, da uvaja veliko parametrov, upoštevajte video vadnico na CNN.



Da bi premagali ta izziv Konvolucijski sloj je bila uvedena. predpostavlja se, da bodo prostorsko bližje slikovne pike veliko bolj 'sodelovale' pri oblikovanju določene zanimivosti kot tiste na nasprotnih vogalih slike. Če se ugotovi, da je določena (manjša) značilnost zelo pomembna pri določanju oznake slike, bo enako pomembno, če je bila ta funkcija najdena kjer koli znotraj slike, ne glede na lokacijo.

ReLU plast: Funkcija pretvorbe Rektificirana linearna enota (ReLU) aktivira vozlišče samo, če je vhod nad določeno količino, medtem ko je vhod pod ničlo, izhod je nič, toda ko se vhod dvigne nad določen prag, je linearno povezan z odvisna spremenljivka.

  • V tej plasti s filtriranih slik odstranimo vse negativne vrednosti in jih nadomestimo z ničli
  • To se naredi, da se izognemo seštevanju vrednosti na nič

Sloj združevanja: To se uporablja za zmanjševanje vzorčenja, ki porabi majhne in (običajno) ločene dele slike in jih združi v eno vrednost. Obstaja več možnih shem za združevanje - najbolj priljubljeno Največje združevanje , pri čemer se vzame največja vrednost slikovnih pik znotraj vsakega dela. Omrežje naredi invariantno zaradi majhnih transformacij, popačenj in prevodov na vhodni sliki (majhno popačenje vnosa ne bo spremenilo izhoda združevanja - saj vzamemo največjo / povprečno vrednost v lokalni soseski).

Popolnoma povezan sloj: Ta plast bo izračunala ocene razreda, kjer vsaka od številk ustreza oceni razreda. Kot pri običajnih nevronskih omrežjih in kot že ime pove, bo vsak nevron v tej plasti povezan z vsemi nevroni v prejšnjem zvezku. Na kratko, opravi končno razvrstitev.

Na ta način ConvNets pretvorijo izvirno sliko po plasteh iz prvotne vrednosti slikovnih pik v končne ocene razreda.

To je bil zelo kratek uvod v Convolutional Neural Networks, vseeno pa vam priporočam, da si ogledate video CNN, ki sem ga vdelal v to objavo.

V tem blogu Capsule Networks bom zdaj razpravljal o nekaj omejitvah konvolucijskih nevronskih mrež

dodaj dve številki v javi

Omejitve konvolucijskih nevronskih mrež:

No, naj to razložim z analogijo.

Recimo, da obstaja človek, katerega oči lahko zaznajo značilnosti različnih slik. Za primer si oglejmo obraz človeka. Ta nesrečnik lahko prepozna različne značilnosti, kot so oči, nos itd., Vendar ne more določiti prostorskih razmerij med značilnostmi (perspektiva, velikost, usmerjenost). Na primer, naslednja slika ga lahko zavede, ko jo uvrsti med dobre skice človeškega obraza.

To je težava tudi s konvolucijskimi nevronskimi mrežami. CNN sicer dobro zaznava funkcije, vendar bo nevrone napačno aktiviral za zaznavanje obrazov. To je zato, ker je manj učinkovito pri raziskovanju prostorskih razmerij med značilnostmi.

Preprost model CNN lahko pravilno izvleče funkcije za nos, oči in usta, vendar bo nevrono napačno aktiviral za zaznavanje obraza. Brez zaznavanja napačnega ujemanja v prostorski orientaciji in velikosti bo aktivacija za zaznavanje obrazov previsoka.

No, ta omejitev je posledica plasti Max Pooling.

Največje združevanje v CNN obravnava translacijsko varianco. Tudi funkcija je nekoliko premaknjena, če je še vedno znotraj okna združevanja, jo je še vedno mogoče zaznati. Kljub temu ta pristop ohranja samo funkcijo max (najbolj prevladujoča) in zavrže ostale.

Torej bo slika obraza, prikazana zgoraj, razvrščena kot običajni obraz. Združevalni sloj doda tudi to vrsto nespremenljivosti.

To ni bil namen združevalnega sloja. Združevanje naj bi uvedlo pozicijske, orientacijske in sorazmerne nespremenljivosti.

V resnici ta plast združevanja dodaja vse mogoče položajne nespremenljivosti. Kot lahko vidite tudi na zgornjem diagramu, vodi do dileme pravilnega zaznavanja obraza.

Poglejmo, kakšno rešitev predlaga Geoffrey Hinton .

Kako rešiti to težavo?

Zdaj si predstavljamo, da vsak nevron vsebuje verjetnost in lastnosti lastnosti. Na primer, izpiše vektor, ki vsebuje [verjetnost, usmeritev, velikost]. S temi prostorskimi informacijami lahko zaznamo neskladnost v orientaciji in velikosti med nosnimi, očesnimi in ušesnimi lastnostmi in tako sprožimo precej nižjo aktivacijo za zaznavanje obraza.

V prispevku, ki ga je objavil Geoffrey Hinton , te vrste nevronov imenujemo kapsule. Te kapsule dajo vektor namesto ene vrednosti skalerja.

Naj osvetlim nekaj, kar so Capsule Networks.

Kaj so kapsulna omrežja?

Kapsula je v osnovi skupek ugnezdenih nevronskih plasti. Stanje nevronov znotraj kapsule zajema različne lastnosti, kot so - položaj (položaj, velikost, usmerjenost), deformacija, hitrost, tekstura itd., Ene osebe znotraj slike.

Namesto da zajame element s posebno različico, je kapsula usposobljena za zajemanje verjetnosti značilnosti in njene različice. Namen kapsule ni le zaznavanje lastnosti, temveč tudi usposabljanje modela za učenje različice.

Tako, da lahko enaka kapsula zazna isti predmetni razred z različnimi usmeritvami (na primer vrti se v smeri urnega kazalca):

Lahko rečemo, da deluje na enakovrednost in ne na nespremenljivost.

Nevarnost: je zaznavanje lastnosti ne glede na različice. Na primer, nevron za zaznavanje nosu zazna nos ne glede na usmeritev.

Enakovrednost: je zaznavanje predmetov, ki se lahko med seboj preoblikujejo (na primer zaznavanje obrazov z različnimi usmeritvami). Intuitivno mreža kapsul zazna, da je obraz zasučen v desno za 31 ° (enakovrednost), namesto da bi ugotovil, da se obraz ujema z različico, ki je zasukana za 31 °. Če prisilimo model, da se v kapsuli nauči različice funkcije, bomo morda učinkoviteje ekstrapolirali manj podatkov o treningu. Poleg tega bomo morda učinkoviteje zavrnili nasprotnike.

Kapsula izda vektor, ki predstavlja obstoj entitete. Usmerjenost vektorja predstavlja lastnosti entitete.

Vektor se pošlje vsem možnim staršem v nevronski mreži. Za vsakega možnega starša lahko kapsula najde vektor napovedovanja. Napovedni vektor se izračuna na podlagi množenja lastne teže in utežne matrike. Kateri koli od staršev ima največji skalarni produkt vektorja napovedi, poveča vez kapsule. Preostali starši zmanjšajo svojo vez. Temu se reče kot Usmerjanje po dogovoru .

To je vsekakor boljši pristop kot največje združevanje, pri katerem usmerjanje temelji na najmočnejši lastnosti, zaznani v spodnji plasti.

Po tem je dodana funkcija mečkanja. To se naredi za uvedbo nelinearnosti. Ta funkcija mečkanja se uporablja za vektorski izhod vsake kapsule.

Naj vam zdaj povem, kako delujejo Capsule Networks.

Kako delujejo kapsulna omrežja?

Naredimo korak nazaj. V popolnoma povezanem omrežju je izhod vsakega nevrona ponderirana vsota vhodov.

Zdaj pa poglejmo, kaj se bo zgodilo v Capsule Networks.

Nevronska mreža kapsule:

Razmislimo o nevronski mreži kapsule, kjer je „ujaz'Je vektor aktivnosti za kapsulo'jaz'v spodnjem sloju.

Korak - 1: Uporabite matriko transformacijeINijdo izhoda kapsule ujaz prejšnjega sloja. Na primer, z matriko m × k pretvorimo k-Dujaz do m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

To je napoved ( glasovati ) iz kapsule „i“ na izhodu kapsule „j“ zgoraj. „Vj'Je vektor aktivnosti za kapsulo'j ’v zgornji plasti

2. korak: Izračunajte tehtano vsoto sjz utežmicij.cijso koeficienti spenjanja. Vsota teh koeficientov je enaka enoti. To je dejanski parameter, ki deluje na razmerje med skupino kapsul, o katerem smo že govorili.

3. korak: V konvolucijskih nevronskih omrežjih smo uporabili funkcijo ReLU. Tu bomo uporabili funkcijo mečkanja za merjenje vektorja med 0 in dolžino enote. Majhne vektorje skrči na nič, dolge pa na enote. Zato je verjetnost vsake kapsule omejena med nič in eno.

To je napoved ( glasovati ) iz kapsule „i“ na izhodu kapsule „j“ zgoraj. Če je vektor aktivnosti zelo podoben vektorju napovedi, sklepamo, da kapsula „jaz'je zelo povezan s kapsuloj ’. (Na primer, kapsula za nos je zelo povezana z obrazno kapsulo.) Takšna podobnost se meri s pomočjo skalarnega produkta vektorja napovedovanja in aktivnosti. Zato podobnost upošteva tako verjetnost kot lastnosti lastnosti. (namesto samo verjetnosti v nevronih).

Korak - 4: Izračunaj oceno ustreznosti „bij‘. To bo pikčasti produkt vektorja aktivnosti in vektorja napovedovanja. Koeficienti spenjanjacjazjse izračuna kot softmax zabjazj:

Koeficient spenjanja cijse izračuna kot softmax bij.

Ta bijse posodobi iteracijsko v več ponovitvah.

Temu se reče kot Usmerjanje po dogovoru .

Spodnji diagram je en primer:

Po tem blogu o Capsule Networks bom pripravil blog o izvajanju Capsule Neural Network z uporabo TensorFlow.

Upam, da ste uživali v branju tega spletnega dnevnika v omrežjih kapsul Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu. Tečaj Edureka za poglobljeno učenje s certifikatom TensorFlow pomaga učencem, da postanejo strokovnjaki za usposabljanje in optimiziranje osnovnih in konvolucijskih nevronskih mrež z uporabo projektov in nalog v realnem času, skupaj s koncepti, kot so funkcija SoftMax, samodejno kodiranje nevronskih mrež, omejeni stroj Boltzmann (RBM).

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.