Mga Capsule Neural Networks - Itakda ng Mga Pugad na Neural Layer

Capsule Networks - Pinag-uusapan ng blog na ito ang tungkol sa mga limitasyon ng Convolutional Neural Networks, at kung paano malulutas ng Capsule Neural Networks ang mga limitasyong iyon.

Mga Capsule Network:

Ano ang Capsule Networks? Karaniwan ito, isang network ng hanay ng mga naka-pugad na neural layer.

Inirerekumenda ko sa iyo na dumaan din sa mga blog sa ibaba:



Ipinapalagay ko na, alam mo sa mga Convolutional Neural Networks (CNN). Dito, bibigyan kita ng isang maliit na pagpapakilala sa pareho, upang matalakay ko ang mga limitasyon ng mga CNN.

Maaari mo ring i-refer ang video sa ibaba sa Convolutional Neural Network.

Mga Convolutional Neural Networks (CNN)

Ang Convolutional Neural Networks, ay karaniwang stack ng iba't ibang mga layer ng mga artipisyal na neuron, na ginagamit para sa paningin ng computer. Sa ibaba, nabanggit ko ang mga layer na iyon:

Convolutional Neural Network - Capsule Neural Network - Edureka

Patong na konstitusyonal: Kapag gumagamit kami ng Feedforward Neural Networks (Multi Layer Perceptron) para sa pag-uuri ng imahe, maraming mga hamon dito. Ang pinaka nakakainis na hamon ay iyon, nagpapakilala ito ng maraming mga parameter, isaalang-alang ang video tutorial sa CNN.

Upang mapagtagumpayan ang hamong ito Layer ng Convolution ipinakilala. ipinapalagay na, ang mga pixel na spatially closer na magkasama ay 'magtutulungan' sa pagbuo ng isang partikular na tampok ng interes na higit pa sa mga nasa kabaligtaran na sulok ng imahe. Gayundin, kung ang isang partikular na (mas maliit) na tampok ay napag-alamang may kahalagahan kapag tinutukoy ang label ng isang imahe, magiging pantay ang kahalagahan nito, kung ang tampok na ito ay matatagpuan kahit saan sa loob ng imahe, anuman ang lokasyon.

Layer ng ReLU: Ang rectified Linear Unit (ReLU) transform function ay nagpapagana lamang ng isang node kung ang input ay nasa itaas ng isang tiyak na dami, habang ang input ay mas mababa sa zero, ang output ay zero, ngunit kapag ang input ay tumaas sa itaas ng isang tiyak na threshold, mayroon itong isang linear na ugnayan sa umaasang variable.

  • Sa layer na ito aalisin namin ang bawat negatibong halaga mula sa mga na-filter na imahe at pinalitan ito ng zero
  • Ginagawa ito upang maiwasan ang mga halaga mula sa pagsasama hanggang sa zero

Layer ng Pooling: Ginagamit ito upang maisagawa ang downsampling, na kumokonsumo ng maliit at (karaniwang) magkahiwalay na mga tipak ng imahe at pinagsasama-sama ang mga ito sa isang solong halaga. Mayroong maraming mga posibleng pamamaraan para sa pagsasama-sama - ang pinakatanyag na pagiging Max-Pooling , kung saan ang maximum na halaga ng pixel sa loob ng bawat tipak ay nakuha. Ginagawa nitong walang pagbabago ang network sa maliit na mga pagbabago, pagbaluktot at pagsasalin sa imaheng input (isang maliit na pagbaluktot sa pag-input ay hindi magbabago sa output ng Pooling - dahil kinukuha namin ang maximum / average na halaga sa isang lokal na kapitbahayan).

Ganap na Nakakonektang Layer: Susubukan ng layer na ito ang mga marka sa klase, kung saan ang bawat isa sa mga numero ay tumutugma sa isang marka sa klase. Tulad ng ordinaryong Neural Networks at tulad ng ipinahihiwatig ng pangalan, ang bawat neuron sa layer na ito ay konektado sa lahat ng mga neuron sa nakaraang dami. Sa madaling sabi, nagsasagawa ito ng pangwakas na pag-uuri.

Sa ganitong paraan, binago ng ConvNets ang orihinal na layer ng imahe sa pamamagitan ng layer mula sa orihinal na mga halaga ng pixel patungo sa huling mga marka ng klase.

Ito ay isang napakaikling pagpapakilala sa Convolutional Neural Networks, inirerekumenda ko pa rin kayong tingnan ang video na CNN na na-embed ko sa post na ito.

Sa blog ng Capsule Networks na ito, tatalakayin ko ngayon ang ilang mga limitasyon ng Convolutional Neural Networks

Mga Limitasyon Ng Mga Convolutional Neural Networks:

Kaya, hayaan mo akong ipaliwanag ito sa isang pagkakatulad.

Ipagpalagay na mayroong isang tao, na ang mga mata ay makakakita ng mga tampok ng iba't ibang mga imahe. Isaalang-alang natin ang mukha ng isang tao bilang isang halimbawa. Kaya, ang kapus-palad na taong ito ay maaaring makilala ang iba't ibang mga tampok tulad ng, mga mata, ilong atbp ngunit, ay hindi makilala ang mga spatial na relasyon sa mga tampok (pananaw, laki, oryentasyon). Halimbawa, ang sumusunod na larawan ay maaaring lokohin ang lalaking iyon sa pag-uuri nito bilang isang mahusay na sketch ng isang mukha ng tao.

Ito ang problema sa Convolutional Neural Networks din. Mahusay ang CNN sa pagtuklas ng mga tampok, ngunit maling gagawing aktibo ang neuron para sa pagtuklas ng mukha. Ito ay sapagkat ito ay hindi gaanong epektibo sa paggalugad ng mga spatial na relasyon sa mga tampok.

Ang isang simpleng modelo ng CNN ay maaaring makuha ang mga tampok para sa ilong, mata at bibig nang tama ngunit maling gagawing aktibo ang neuron para sa pagtuklas ng mukha. Nang hindi napagtatanto ang maling tugma sa oryentasyong spatial at laki, ang pagsasaaktibo para sa pagtuklas ng mukha ay masyadong mataas.

ano ang pagpapaandar sa sql

Kaya, ang limitasyon na ito ay dahil sa layer ng Max Pooling.

Ang max pooling sa isang CNN ay humahawak sa pagkakaiba-iba ng translational. Kahit na ang isang tampok ay bahagyang inilipat, kung nasa loob pa ito ng window ng pooling, maaari pa rin itong makita. Gayunpaman, ang pamamaraang ito ay pinapanatili lamang ang max na tampok (ang pinaka nangingibabaw) at itinapon ang iba.

Kaya, ang larawan ng mukha na ipinakita sa itaas ay maiuri bilang isang normal na mukha. Ang layer ng pooling ay nagdaragdag din ng ganitong uri ng invariance.

Hindi kailanman ito ang intensyon ng layer ng pooling. Kung ano ang dapat na gawin ng pooling ay upang ipakilala ang mga posisyonal, orientational, proportional na imbitasyon.

Sa totoo lang, ang layer ng pooling na ito ay nagdaragdag ng lahat ng uri ng invalansya sa posisyonal. Tulad ng nakikita mo sa diagram sa itaas pati na rin, humahantong ito sa dilemma ng pagtuklas ng tama ang mukha.

Tingnan natin kung ano ang solusyon na iminungkahi ng Geoffrey Hinton .

Paano malulutas ang problemang ito?

Ngayon, naiisip namin na ang bawat neuron ay naglalaman ng posibilidad pati na rin mga katangian ng mga tampok. Halimbawa, naglalabas ito ng isang vector na naglalaman ng [posibilidad, oryentasyon, laki]. Sa spatial na impormasyon na ito, maaari naming makita ang hindi pagkakapare-pareho sa oryentasyon at laki sa mga tampok ng ilong, mata at tainga at samakatuwid ay naglalabas ng isang mas mababang activation para sa pagtuklas ng mukha.

Sa papel na inilabas ni Geoffrey Hinton , ang mga uri ng neuron na ito ay tinatawag na kapsula. Ang mga capsule na ito ay naglalabas ng isang vector sa halip na isang solong halaga ng scaler.

Hayaan mo akong maglagay ng mga ilaw sa kung ano ang Capsule Networks.

Ano ang Capsule Networks?

Ang Capsule ay karaniwang, isang hanay ng mga naka-pugad na neural layer. Ang estado ng mga neuron sa loob ng isang kapsula ay nakukuha ang iba't ibang mga katangian tulad ng - pose (posisyon, laki, oryentasyon), pagpapapangit, bilis, pagkakayari atbp, ng isang nilalang sa loob ng isang imahe.

Sa halip na makuha ang isang tampok na may isang tukoy na variant, ang isang kapsula ay sinanay upang makuha ang pagkakatulad ng isang tampok at ang variant nito. Kaya, ang layunin ng kapsula ay hindi lamang upang makakita ng isang tampok ngunit, upang sanayin din ang modelo na malaman ang iba.

Tulad ng ang parehong kapsula ay maaaring makakita ng parehong klase ng object na may iba't ibang mga orientation (halimbawa, paikutin nang pakanan):

Masasabi nating gumagana ito sa equivariance hindi invarian.

Pag-iimbita: ay ang pagtuklas ng mga tampok anuman ang mga pagkakaiba-iba. Halimbawa, ang isang neuron na nakakita ng ilong ay nakakakita ng isang ilong anuman ang orientation.

Equivariance: ay ang pagtuklas ng mga bagay na maaaring ibahin ang bawat isa (halimbawa, ang pagtuklas ng mga mukha na may iba't ibang oryentasyon). Intuitively, nakita ng network ng kapsula ang mukha na pinaikot nang tamang 31 ° (equivariance) sa halip na napagtanto na ang mukha ay tumugma sa isang variant na pinaikot 31 °. Sa pamamagitan ng pagpuwersa sa modelo na malaman ang tampok na variant sa isang kapsula, maaari naming i-extrapolate ang mga posibleng variant nang mas epektibo nang may mas kaunting data sa pagsasanay. Bilang karagdagan, maaari naming tanggihan nang mas epektibo ang mga kalaban.

Ang isang kapsula ay naglalabas ng isang vector upang kumatawan sa pagkakaroon ng entity. Ang oryentasyon ng vector ay kumakatawan sa mga pag-aari ng entity.

Ang vector ay ipinadala sa lahat ng mga posibleng magulang sa neural network. Para sa bawat posibleng magulang, ang isang kapsula ay maaaring makahanap ng isang vector ng hula. Ang vector ng hula ay kinakalkula batay sa pag-multiply ng sariling timbang at isang weight matrix. Alinmang magulang ang may pinakamalaking produkto ng vector ng hula sa scalar, pinapataas ang bono ng kapsula. Ang natitirang magulang ay nagbabawas ng kanilang bono. Ito ay tinatawag na bilang Pagruruta ayon sa Kasunduan .

Ito ay tiyak na isang mas mahusay na diskarte pagkatapos ay max pooling, kung saan ang pagruruta ay batay sa pinakamalakas na tampok na nakita sa ibabang layer.

Pagkatapos nito mayroong isang pag-andar ng squashing na idinagdag. Ginagawa ito upang ipakilala ang hindi linearity. Ang pagpapaandar na pag-andar na ito ay inilalapat sa output ng vector ng bawat kapsula.

Hayaan mong sabihin ko sa iyo ngayon, kung paano gumagana ang Capsule Networks.

Paano gumagana ang Capsule Networks?

Bumalik tayo ng isang hakbang. Sa isang ganap na konektado na network, ang output ng bawat neuron ay ang bigat na kabuuan ng mga input.

Ngayon, tingnan natin kung ano ang nangyayari sa Capsule Networks.

Capsule Neural Network:

Isaalang-alang natin ang isang Capsule Neural Network kung saan kaako'Ang aktibidad ng vector para sa kapsula'ako ’sa layer sa ibaba.

Hakbang - 1: Mag-apply ng isang transformation matrixSAijsa output ng kapsula uako ng nakaraang layer. Halimbawa, sa isang m × k matrix, binabago namin ang isang k-Dikawako sa isang m-Dikaw ^j | i. ((m × k) × (k × 1) = m × 1).

Ito ang hula ( bumoto ) mula sa capsule ‘i’ sa output ng capsule na ‘j’ sa itaas. ‘Vj'Ang aktibidad ng vector para sa kapsula'j ’sa layer sa itaas

Hakbang - 2: Kalkulahin ang isang timbang na sjmay timbangcij.cijay ang mga coefficients ng pagkabit. Ang kabuuan ng mga koepisyent na ito ay katumbas ng isa. Ito ang aktwal na parameter na gumagana sa ugnayan ng pangkat ng mga kapsula na pinag-usapan namin kanina.

Hakbang - 3: Sa Mga Convolutional Neural Networks ginamit namin ang pagpapaandar ng ReLU. Dito, maglalagay kami ng isang pag-andar ng pag-squash upang sukatin ang vector sa pagitan ng 0 at haba ng unit. Pinapaliit nito ang mga maliliit na vector sa zero at mahaba ang mga vector sa mga vector ng yunit. Samakatuwid ang posibilidad ng bawat kapsula ay nakasalalay sa pagitan ng zero at isa.

Ito ang hula ( bumoto ) mula sa capsule ‘i’ sa output ng capsule na ‘j’ sa itaas. Kung ang aktibidad ng vector ay may malapit na pagkakapareho sa hula ng vector, napagpasyahan namin na ang kapsula ‘ako ’ay may kaugnayan sa kapsula ‘j ’. (Halimbawa, ang ilong capsule ay lubos na nauugnay sa capsule ng mukha.) Ang nasabing pagkakapareho ay sinusukat gamit ang scalar na produkto ng hula at aktibidad ng vector. Samakatuwid, isinasaalang-alang ang pagkakapareho sa parehong pagkakatulad at mga tampok na tampok. (sa halip na pagkakatulad lamang sa mga neuron).

Hakbang - 4: Kalkulahin ang marka ng kaugnayan ng kaugnayan ‘bij‘. Ito ang magiging tuldok na produkto ng vector ng aktibidad at vector ng hula. Ang mga coefficients ng pagkabitcakojay kinakalkula bilang ang softmax ngbakoj:

Ang koepisyent ng pagkabit cijay kinakalkula bilang ang softmax ng bij.

Ito bijnai-update nang paulit-ulit sa maraming mga pag-ulit.

Ito ay tinatawag na bilang Pagruruta ayon sa Kasunduan .

Sa ibaba ng diagram ay isang halimbawa:

Matapos ang blog na ito sa Capsule Networks, makakakuha ako ng isang blog sa pagpapatupad ng Capsule Neural Network gamit ang TensorFlow.

Inaasahan kong nasiyahan ka sa pagbabasa ng blog na ito sa mga network ng kapsula, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online na may isang network na higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo. Ang kurso sa Edureka Deep Learning na may TensorFlow Certification Training na kurso ay tumutulong sa mga nag-aaral na maging dalubhasa sa pagsasanay at pag-optimize ng mga basic at convolutional neural network gamit ang mga proyekto sa real time at takdang-aralin kasama ang mga konsepto tulad ng pag-andar ng SoftMax, Auto-encoder Neural Networks, Restrected Boltzmann Machine (RBM).

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento at babalikan ka namin.