Kapsulas neironu tīkli - ligzdotu neironu slāņu komplekts



Kapsulu tīkli - šajā emuārā tiek runāts par konvolucionālo neironu tīklu ierobežojumiem un par to, kā kapsulas neironu tīkli atrisina šos ierobežojumus.

Kapsulu tīkli:

Kas ir kapsulu tīkli? Būtībā tas ir ligzdotu neironu slāņu kopas tīkls.

Es iesaku arī jums apskatīt šādus emuārus:





Es pieņemu, ka jūs, puiši, zināt konvolucionālos neironu tīklus (CNN). Šeit es jums sniegšu nelielu ievadu par to pašu, lai es varētu apspriest CNN ierobežojumus.

Tālāk redzamo videoklipu varat skatīt arī Convolutional Neural Network.



Konvolucionālie neironu tīkli (CNN)

Konvolucionālie neironu tīkli galvenokārt ir dažādu mākslīgo neironu slāņu kaudze, ko izmanto datora redzēšanai. Tālāk es minēju šos slāņus:

Konvolucionālais neironu tīkls - kapsulu neironu tīkls - Edureka

Konvolīcijas slānis: Kad attēlu klasifikācijai izmantojam Feedforward Neural Networks (Multi Layer Perceptron), tam ir daudz problēmu. Visnelaimīgākais izaicinājums ir tas, ka tas ievieš daudz parametrus, apsveriet video pamācību CNN.



Lai pārvarētu šo izaicinājumu Konversijas slānis tika ieviests. tiek pieņemts, ka pikseļi, kas atrodas telpiski tuvāk viens otram, 'sadarbosies', veidojot konkrētu interesējošu iezīmi daudz vairāk nekā tie, kas atrodas attēla pretējos stūros. Turklāt, ja tiek definēts, ka noteiktai (mazākai) funkcijai ir liela nozīme, nosakot attēla etiķeti, tas būs vienlīdz svarīgi, ja šī funkcija tika atrasta jebkurā attēla vietā neatkarīgi no atrašanās vietas.

ReLU slānis: Rektificētās lineārās vienības (ReLU) pārveidošanas funkcija mezglu aktivizē tikai tad, ja ieeja pārsniedz noteiktu daudzumu, savukārt ieeja ir zem nulles, izeja ir nulle, bet, kad ieeja paceļas virs noteikta sliekšņa, tai ir lineāra saistība ar atkarīgais mainīgais.

  • Šajā slānī mēs noņemam visas negatīvās vērtības no filtrētajiem attēliem un aizstājam ar nulli
  • Tas tiek darīts, lai izvairītos no vērtību summēšanas līdz nullei

Apvienošanas slānis: To izmanto, lai veiktu paraugu noņemšanu, kas patērē mazus un (parasti) nesadalītus attēla fragmentus un apvieno tos vienā vērtībā. Ir vairākas iespējamas apkopošanas shēmas - vispopulārākā būtne Max-Pooling , kur tiek ņemta maksimālā pikseļu vērtība katrā gabalā. Tas padara tīklu nemainīgu attiecībā uz nelielām transformācijām, izkropļojumiem un tulkojumiem ievades attēlā (neliels ieejas traucējums nemainīs pūla izvadi - jo vietējā apkārtnē mēs ņemam maksimālo / vidējo vērtību).

Pilnībā savienots slānis: Šis slānis aprēķinās klases rādītājus, kur katrs skaitlis atbilst klases vērtējumam. Tāpat kā parastajos neironu tīklos un, kā norāda nosaukums, katrs šī slāņa neirons tiks savienots ar visiem iepriekšējā tilpuma neironiem. Īsumā tas veic galīgo klasifikāciju.

Tādā veidā ConvNets pārveido sākotnējo attēlu slāni pa slānim no sākotnējām pikseļu vērtībām līdz galīgajiem klases rādītājiem.

Šis bija ļoti īss ievads konvolucionālajos neironu tīklos, es tomēr iesaku jums ieskatīties CNN video, kuru esmu ievietojis šajā ierakstā.

Šajā emuārā Kapsulas tīkli es tagad apspriedīšu dažus konvolucionālo neironu tīklu ierobežojumus

Konvolucionālo neironu tīklu ierobežojumi:

Nu, ļaujiet man paskaidrot to ar līdzību.

Pieņemsim, ka ir cilvēks, kura acis var noteikt dažādu attēlu iezīmes. Par piemēru uzskatīsim cilvēka seju. Tātad šis nelaimīgais puisis var identificēt dažādas pazīmes, piemēram, acis, degunu utt., Bet nespēj noteikt telpiskās attiecības starp iezīmēm (perspektīva, lielums, orientācija). Piemēram, šāds attēls var apmānīt šo puisi, klasificējot to kā labu cilvēka sejas skici.

Šī ir problēma arī ar konvolucionālajiem neironu tīkliem. CNN labi spēj atklāt funkcijas, taču nepareizi aktivizēs neironu sejas noteikšanai. Tas ir tāpēc, ka tas nav tik efektīvs, lai izpētītu telpiskās attiecības starp iezīmēm.

Vienkāršs CNN modelis var pareizi iegūt deguna, acu un mutes funkcijas, taču nepareizi aktivizēs neironu sejas noteikšanai. Neapzinoties neatbilstību telpiskajā orientācijā un izmērā, sejas noteikšanas aktivizēšana būs pārāk augsta.

Nu, šis ierobežojums ir saistīts ar Max Pooling slāni.

CNN maksimālais apvienojums apstrādā tulkošanas dispersijas. Pat objekts ir nedaudz pārvietots, ja tas joprojām atrodas koplietošanas logā, to joprojām var noteikt. Neskatoties uz to, šī pieeja saglabā tikai maksimālo iespēju (visvairāk dominē) un izmet pārējos.

Tātad iepriekš redzamais sejas attēls tiks klasificēts kā parasta seja. Pooling slānis arī papildina šāda veida nemainību.

virkne ir maināma vai nemaināma Java valodā

Tas nekad nebija apvienošanās slāņa nolūks. Tas, kas bija jādara apvienošanai, ir ieviest pozicionālas, orientējošas, proporcionālas nemainības.

Patiesībā šis apvienošanas slānis papildina visu veidu pozicionālo nemainību. Kā redzat arī iepriekš redzamajā diagrammā, tas noved pie dilemmas pareizi noteikt seju.

Apskatīsim, kāds ir piedāvātais risinājums Džofrijs Hintons .

Kā atrisināt šo problēmu?

Tagad mēs iedomājamies, ka katrs neirons satur pazīmju iespējamību, kā arī īpašības. Piemēram, tas izvada vektoru, kurā ir [varbūtība, orientācija, lielums]. Izmantojot šo telpisko informāciju, mēs varam noteikt deguna, acu un ausu pazīmju orientācijas un lieluma neatbilstību, un tāpēc sejas noteikšanas aktivizēšana ir daudz zemāka.

Iesniegtajā dokumentā Džofrijs Hintons , šāda veida neironus sauc par kapsulām. Šīs kapsulas izvada vektoru, nevis vienu mērogotāja vērtību.

Ļaujiet man iedegt nedaudz gaismas par to, kas ir Kapsulas tīkli.

Kas ir kapsulu tīkli?

Kapsula būtībā ir ligzdotu neironu slāņu kopums. Neironu stāvoklis kapsulas iekšpusē uztver viena objekta dažādas īpašības, piemēram, pozu (pozīciju, izmēru, orientāciju), deformāciju, ātrumu, faktūru utt.

Tā vietā, lai uzņemtu iezīmi ar noteiktu variantu, kapsula tiek apmācīta, lai uztvertu iezīmes un tās varianta iespējamību. Tātad kapsulas mērķis ir ne tikai noteikt kādu pazīmi, bet arī apmācīt modeli, lai uzzinātu variantu.

Tāds, lai viena un tā pati kapsula varētu noteikt to pašu objektu klasi ar dažādām orientācijām (piemēram, pagriezt pulksteņrādītāja virzienā):

Mēs varam teikt, ka tas darbojas līdzvērtības, nevis nemainības gadījumā.

Invariants: ir pazīmju noteikšana neatkarīgi no variantiem. Piemēram, deguna noteikšanas neirons nosaka degunu neatkarīgi no orientācijas.

Ekvivalence: ir tādu objektu noteikšana, kuri var pārveidoties savā starpā (piemēram, dažādu seju seju noteikšana). Intuitīvi, kapsulu tīkls nosaka, ka seja tiek pagriezta pa labi par 31 ° (ekvivalence), nevis saprot, ka seja ir saskaņota ar variantu, kas pagriezta par 31 °. Piespiežot modeli apgūt iezīmju variantu kapsulā, mēs varam efektīvāk ekstrapolēt iespējamos variantus ar mazāk treniņu datiem. Turklāt mēs varam efektīvāk noraidīt pretiniekus.

Kapsula izvada vektoru, lai attēlotu entītijas esamību. Vektora orientācija attēlo entītijas īpašības.

Vektors tiek nosūtīts visiem iespējamiem vecākiem neironu tīklā. Katram iespējamam vecākam kapsula var atrast prognozēšanas vektoru. Prognozēšanas vektors tiek aprēķināts, pavairojot paša svaru un svara matricu. Kuram no vecākiem ir vislielākais skalārā prognozes vektora produkts, palielinās kapsulas saite. Pārējie vecāki samazina saikni. To sauc par Maršrutēšana pēc vienošanās .

Šī noteikti ir labāka pieeja nekā maksimālajai apvienošanai, kurā maršrutēšana ir balstīta uz spēcīgāko pazīmi, kas konstatēta apakšējā slānī.

Pēc tam tiek pievienota skvoša funkcija. Tas tiek darīts, lai ieviestu nelinearitāti. Šī saspiešanas funkcija tiek piemērota katras kapsulas vektora izvadei.

Ļaujiet man jums pastāstīt tagad, kā darbojas kapsulu tīkli.

Kā darbojas kapsulu tīkli?

Ļaujiet mums spert soli atpakaļ. Pilnībā savienotā tīklā katra neirona izeja ir svērtā ieeju summa.

Apskatīsim, kas notiek kapsulu tīklos.

Kapsulas neironu tīkls:

Apskatīsim Kapsulas neironu tīklu, kur ‘ui‘Ir kapsulas aktivitātes vektors’es ’apakšējā slānī.

1. solis: pielietojiet transformācijas matricuINijuz kapsulas izeju ui no iepriekšējā slāņa. Piemēram, ar m × k matricu mēs pārveidojam k-Dui uz m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

Tā ir prognoze ( balsojums ) no kapsulas ‘i’ uz kapsulas ’j’ izejas augšpusē. ‘Vj‘Ir kapsulas aktivitātes vektors’j ’augšējā slānī

2. solis: aprēķiniet svērto summu sjar svariemcij.cijir sakabes koeficienti. Šo koeficientu summa ir vienāda ar vienu. Tas ir faktiskais parametrs, kas darbojas attiecībā uz kapsulu grupas attiecībām, par kuru mēs runājām iepriekš.

3. solis: Konvolucionālajos neironu tīklos mēs izmantojām ReLU funkciju. Šeit mēs pielietosim skvoša funkciju, lai vektoru mērogotu starp 0 un vienības garumu. Tas samazina mazos vektorus līdz nullei un garos vektorus uz vienības vektoriem. Tāpēc katras kapsulas iespējamība ir ierobežota starp nulli un vienu.

Tā ir prognoze ( balsojums ) no kapsulas ‘i’ uz kapsulas ’j’ izejas augšpusē. Ja aktivitātes vektoram ir cieša līdzība ar prognozēšanas vektoru, mēs secinām, ka kapsula ‘es ’ir cieši saistīts ar kapsuluj ’. (Piemēram, deguna kapsula ir ļoti saistīta ar sejas kapsulu.) Šādu līdzību mēra, izmantojot prognozes un aktivitātes vektora skalāro produktu. Tāpēc līdzībā tiek ņemta vērā gan iespējamība, gan pazīmju īpašības. (nevis tikai līdzība neironos).

4. solis: aprēķiniet atbilstības rādītāju ‘bij“. Tas būs aktivitātes vektora un prognozes vektora punktu reizinājums. Sakabes koeficienticijtiek aprēķināts kābij:

Sakabes koeficients cijtiek aprēķināts kā b mīkstmaksij.

Šī bijtiek atjaunināts iteratīvi vairākās atkārtojumos.

To sauc par Maršrutēšana pēc vienošanās .

Zem diagrammas ir viens piemērs:

Pēc šī emuāra vietnē Capsule Networks es nākšu klajā ar emuāru par kapsulas neironu tīkla ieviešanu, izmantojot TensorFlow.

Es ceru, ka jums patika lasīt šo emuāru kapsulu tīklos. Pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka dziļo mācību ar TensorFlow sertifikācijas apmācības kurss palīdz izglītojamajiem kļūt par ekspertiem apmācībā un pamata un konvolucionālo neironu tīklu apmācībā un optimizācijā, izmantojot reāllaika projektus un uzdevumus, kā arī tādus jēdzienus kā SoftMax funkcija, Auto-encoder Neural Networks, Restricted Boltzmann Machine (RBM).

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.