Kapsli närvivõrgud - pesastatud närvikihtide komplekt

Kapslivõrgud - see ajaveeb räägib konvolutsiooniliste närvivõrkude piirangutest ja sellest, kuidas kapsli närvivõrgud need piirangud lahendab.

Kapslivõrgud:

Mis on kapslivõrgud? Põhimõtteliselt on see pesastatud närvikihtide kogum.

Ma soovitaksin teil läbi vaadata ka järgmised blogid:





Ma eeldan, et te teate konvolutsioonilisi närvivõrke (CNN). Siinkohal esitan teile väikese sissejuhatuse selle kohta, et saaksin arutada CNN-ide piiranguid.

Allolevat videot saate vaadata ka konvolutsioonilise närvivõrgu kohta.



Konvolutsioonilised närvivõrgud (CNN)

Konvolutsioonilised närvivõrgud on põhimõtteliselt virn erinevatest kunstlike neuronite kihtidest, mida kasutatakse arvutinägemiseks. Allpool olen maininud neid kihte:

Konvolutsiooniline närvivõrk - kapsli närvivõrk - Edureka

Konvolutsiooniline kiht: Kui kasutame piltide klassifitseerimiseks Feedforward Neural Networks (mitmekihiline Perceptron), on sellega palju probleeme. Kõige masendavam väljakutse on see, et see tutvustab palju parameetreid, kaaluge videoõpetust CNN-is.



Sellest väljakutsest ülesaamiseks Konversioonikiht võeti kasutusele. eeldatakse, et ruumiliselt üksteisele lähemal asuvad pikslid 'teevad koostööd' huvipakkuva konkreetse tunnuse moodustamisel palju rohkem kui pildi vastasnurkades olevad. Samuti, kui teatud (väiksem) funktsioon leitakse pildi sildi määratlemisel suurt tähtsust, on sama oluline, kui see funktsioon leiti pildi kusagil, olenemata asukohast.

ReLU kiht: Parandatud lineaarse üksuse (ReLU) teisendusfunktsioon aktiveerib sõlme ainult siis, kui sisend on üle teatud koguse, samas kui sisend on alla nulli, on väljund null, kuid kui sisend tõuseb üle teatud künnise, on sellel lineaarne suhe sõltuv muutuja.

  • Selles kihis eemaldame filtreeritud piltidelt kõik negatiivsed väärtused ja asendame need nulliga
  • Seda tehakse selleks, et vältida väärtuste summeerimist nullini

Liimikiht: Seda kasutatakse alamvalimiks, mis kulutab pildi väikesi ja (tavaliselt) lahutamata tükke ja koondab need ühtseks väärtuseks. Liitmiseks on mitu võimalikku skeemi - kõige populaarsem olend Max pooling , kus võetakse maksimaalne piksli väärtus igas tükis. See muudab võrgu muutumatuks sisendkujutise väikeste teisenduste, moonutuste ja tõlgete suhtes (väike sisendi moonutus ei muuda Poolingu väljundit - kuna võtame kohaliku naabruses maksimaalse / keskmise väärtuse).

Täielikult ühendatud kiht: See kiht arvutab klassi hinded, kus iga number vastab klassi hindele. Nagu tavaliste närvivõrkude puhul, ja nagu nimigi ütleb, on selle kihi kõik neuronid ühendatud kõigi eelmise mahu neuronitega. Lühidalt öeldes täidab see lõpliku klassifikatsiooni.

Nii muundab ConvNets algse pildi kihtide kaupa algsetest piksliväärtustest lõplikesse klassi tulemustesse.

See oli väga lühike sissejuhatus konvolutsioonilistesse närvivõrkudesse. Ma soovitaksin teil siiski vaadata CNN-i videot, mille olen selle postituse sisse põiminud.

Selles Capsule Networks'i ajaveebis käsitlen nüüd konvolutsiooniliste närvivõrkude väheseid piiranguid

Konvolutsiooniliste närvivõrkude piirangud:

Noh, lubage mul selgitada seda analoogiaga.

Oletame, et on olemas inimene, kelle silmad suudavad tuvastada erinevate piltide tunnuseid. Vaatleme näiteks inimese nägu. Niisiis, see õnnetu tüüp suudab tuvastada erinevaid tunnuseid, näiteks silmad, nina jne, kuid ei suuda tuvastada tunnuste vahelisi ruumilisi suhteid (perspektiiv, suurus, suund). Näiteks võib järgmine pilt lollitada seda tüüpi, kui ta liigitab selle inimese näo heaks visandiks.

See on probleem ka konvolutsiooniliste närvivõrkudega. CNN suudab hästi tuvastada funktsioone, kuid aktiveerib näo tuvastamiseks neuroni valesti. Seda seetõttu, et funktsioonide vaheliste ruumiliste suhete uurimisel on see vähem efektiivne.

Lihtne CNN-mudel suudab nina, silmade ja suu omadused õigesti välja tõmmata, kuid aktiveerib näo tuvastamiseks neuroni valesti. Ruumilise orientatsiooni ja suuruse sobimatust teadvustamata on näotuvastuse aktiveerimine liiga kõrge.

tõsta Java-s midagi võimule

Noh, see piirang tuleneb Max Pooling kihist.

CNN-i maksimaalne liitmine käsitleb translatiivseid erinevusi. Isegi funktsiooni on veidi nihutatud, kui see on endiselt ühisvaateaknas, saab selle siiski tuvastada. Sellest hoolimata hoiab selline lähenemine ainult maksimaalset funktsiooni (kõige domineerivam) ja viskab teised minema.

Niisiis, ülaltoodud näopilt klassifitseeritakse tavaliseks näoks. Seda tüüpi invariantsust lisab ka kihtide ühendamine.

See ei olnud kunagi basseinikihi eesmärk. Mida peaks ühendamine tegema, on positsiooniliste, orientatsiooniliste ja proportsionaalsete muutumatuste sisseviimine.

Tegelikkuses lisab see koondamiskiht kõikvõimalikku positsiooni muutumatust. Nagu näete ka ülaltoodud diagrammilt, toob see kaasa näo õige tuvastamise dilemma.

Vaatame, mis on pakutud lahendus Geoffrey Hinton .

Kuidas seda probleemi lahendada?

Nüüd kujutame ette, et iga neuron sisaldab nii tunnuste tõenäosust kui ka omadusi. Näiteks väljastab see vektori, mis sisaldab [tõenäosus, suund, suurus]. Selle ruumiteabe abil saame tuvastada nina, silmade ja kõrva tunnuste orientatsiooni ja suuruse järjepidevuse ning seetõttu näo tuvastamiseks palju vähem aktiveerida.

Avaldatud paberil Geoffrey Hinton , nimetatakse seda tüüpi neuroneid kapsliteks. Need kapslid annavad ühe skaleerija väärtuse asemel vektori.

Las ma panen mõned valgused kapslivõrkudele.

Mis on kapslivõrgud?

Kapsel on põhimõtteliselt pesastatud närvikihtide kogum. Kapsli sees olevate neuronite olek haarab pildi sees oleva üksuse erinevaid omadusi, näiteks poosi (asend, suurus, suund), deformatsiooni, kiirust, tekstuuri jne.

Konkreetse variandiga funktsiooni jäädvustamise asemel treenitakse kapslit funktsiooni ja selle variandi tõenäosuse jäädvustamiseks. Niisiis, kapsli eesmärk pole mitte ainult funktsiooni tuvastamine, vaid ka mudeli treenimine variandi õppimiseks.

Nii, et sama kapsel suudab tuvastada sama objektiklassi erineva suunaga (näiteks pöörata päripäeva):

Võime öelda, et see töötab ekvivalentsuse, mitte invariantsuse korral.

Invarianss: on funktsioonide tuvastamine variantidest olenemata. Näiteks tuvastab nina tuvastav neuron nina orientatsioonist sõltumata.

Ekvivalentsus: on teineteiseks transformeeruvate objektide tuvastamine (näiteks erineva suunaga nägude tuvastamine). Intuitiivselt tuvastab kapselivõrk näo pööramise paremale 31 ° (ekvivalentsus), selle asemel, et nägu vastaks 31 ° pööratud variandile. Sundides mudelit tundma varianti kapslis õppima, võime vähemate treeningandmetega võimalikke variante tõhusamalt ekstrapoleerida. Lisaks võime vastaseid tõhusamalt tagasi lükata.

Kapsel väljastab üksuse olemasolu esindamiseks vektori. Vektori suund tähistab üksuse omadusi.

Vektor saadetakse kõigile võimalikele vanematele närvivõrgus. Iga võimaliku vanema jaoks võib kapsel leida ennustusvektori. Ennustusvektor arvutatakse selle enda kaalu ja maatriksi korrutamise põhjal. Ükskõik kummal vanemal on suurim skalaarprognoosivektori toode, suurendab kapslisidet. Ülejäänud vanemad vähendavad sidet. Seda nimetatakse kui Marsruut kokkuleppel .

See on kindlasti parem lähenemine kui maksimaalne ühendamine, kus marsruutimine põhineb alumisel kihil tuvastatud tugevaimal omadusel.

Pärast seda on lisatud pritsimisfunktsioon. Seda tehakse mittelineaarsuse sisseviimiseks. Seda pritsimisfunktsiooni rakendatakse iga kapsli vektorväljundile.

Las ma ütlen teile kohe, kuidas Capsule Networks töötab.

Kuidas kapslivõrgud toimivad?

Tehkem samm tagasi. Täielikult ühendatud võrgus on iga neuroni väljund sisendite kaalutud summa.

Vaatame nüüd, mis juhtub kapslivõrkudes.

Kapsli närvivõrk:

Vaatleme kapsli närvivõrku, kus ‘ui‘On kapsli aktiivsusvektor’ma ’allpool asuvas kihis.

Samm - 1: rakendage teisendusmaatriksINijkapsli väljundini ui eelmise kihi. Näiteks m × k maatriksiga teisendame k-Dui m-D-niu ^j | i. ((m × k) × (k × 1) = m × 1).

See on ennustus ( hääletama ) ülaltoodud kapsli ‘j’ väljundil olevast kapslist ’i’. ‘Vj‘On kapsli aktiivsusvektor’j ’ülal asuvas kihis

2. samm: arvutage kaalutud summa sjraskustegacij.cijon sidestuskoefitsiendid. Nende koefitsientide summa on võrdne ühega. See on tegelik parameeter, mis töötab varem räägitud kapslite rühma suhte alusel.

Samm 3: Konvolutsioonilistes närvivõrkudes kasutasime ReLU funktsiooni. Rakendame siinkohal squashing-funktsiooni, et skaleerida vektor 0 ja ühiku pikkuse vahel. See kahandab väikesed vektorid nulliks ja pikad vektorid ühikvektoriteks. Seetõttu on iga kapsli tõenäosus piiratud nulli ja ühe vahel.

See on ennustus ( hääletama ) ülaltoodud kapsli ‘j’ väljundil olevast kapslist ’i’. Kui aktiivsusvektoril on lähedane sarnasus ennustusvektoriga, järeldame, et kapsel ‘ma ’on kapsliga tihedalt seotudj ’. (Näiteks on ninakapsel tihedalt seotud näokapsliga.) Sellist sarnasust mõõdetakse prognoosimis- ja aktiivsusvektori skalaarvoode abil. Seetõttu võetakse sarnasuses arvesse nii tõenäosust kui ka omaduste omadusi. (selle asemel, et neuronites lihtsalt meeldida).

4. etapp: arvutage asjakohasuse skoor ‘bij“. See on aktiivsusvektori ja ennustusvektori punktprodukt. Sidumiskoefitsiendidcijarvutatakse kuibij:

Sidestustegur cijarvutatakse b pehmaksij.

See bijvärskendatakse iteratiivselt mitmes korduses.

Seda nimetatakse kui Marsruut kokkuleppel .

Diagrammi all on üks näide:

Pärast seda Capsule Networks'i ajaveebi mõtlen välja ajaveebi Capsule Neural Network rakenduse TensorFlow abil.

Loodan, et teile on meeldinud seda blogi kapslivõrkudes lugeda, vaadake lehte Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Kursus Edureka Deep Learning with TensorFlow sertifitseerimiskoolitus aitab õppijatel saada ekspertideks põhi- ja konvolutsiooniliste närvivõrkude koolitamisel ning optimeerimisel, kasutades reaalajas toimuvaid projekte ja ülesandeid koos selliste mõistetega nagu SoftMax-funktsioon, Auto-encoder Neural Networks, Restricted Boltzmann Machine (RBM).

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.