Xintonning kapsula tarmoqlarini tushunish. II qism: kapsulalar qanday ishlaydi.

Hintonning kapsula tarmoqlari tarmog'ini tushunishning bir qismi:

I qism: sezgi
II qism: kapsulalar qanday ishlaydi (hozir o'qiyapsiz)
III qism: Kapsüller orasidagi dinamik marshrutlash
IV qism: CapsNet arxitekturasi

AI³ yangi nashrimiz haqida tezkor e'lon. Biz eng yaxshi yozuvchilarni AI nazariyasi, amaliyoti va biznesi va mashina o'rganish haqida suhbatlashish uchun to'playmiz. Eng so'nggi tendentsiyalardan xabardor bo'lish uchun unga amal qiling.

Kirish

Kapsül tarmoqlarida ushbu seriyaning birinchi qismida men yangi arxitekturaning asosiy sezgi va motivatsiyasi haqida gapirdim. Ushbu bo'limda men kapsulaning nima ekanligini va uning ichki ishlashini, shuningdek uning orqasida sezgi borligini tasvirlab beraman. Keyingi bo'limda men asosan dinamik marshrutlash algoritmiga e'tibor qarataman.

Kapsül nima?

Bu savolga javob berish uchun, men Hinton va boshqalarning "Transformatsiya qilinadigan avtokoderlar" kapsulalari kiritilgan birinchi qog'ozga murojaat qilgan ma'qul, deb o'ylayman. Kapsüllarni tushunish uchun muhim bo'lgan qism quyida keltirilgan.

"Replikatsiya qilingan funktsiyalarni aniqlovchi mahalliy pullar to'plamining faoliyatini umumlashtirish uchun bitta skalyar natijadan foydalanadigan" neyronlar "faoliyatida nuqtai nazar o'zgarishi maqsadiga erishish o'rniga, sun'iy neyron tarmoqlari ba'zi murakkab ichki hisoblashlarni amalga oshiradigan mahalliy" kapsulalarni "ishlatishi kerak. ularning ma'lumotlarini kiriting va keyin ushbu hisoblashlarning natijalarini ma'lumotlarning kichik bir vektoriga joylashtiring. Har bir kapsula ko'rish sharoitlari va deformatsiyalarning cheklangan doirasi bo'yicha aniq belgilanmagan vizual ob'ektni tanib olishni o'rganadi va u ob'ektning cheklangan domen ichida bo'lishi ehtimolini va aniq pozitsiyani, yoritishni o'z ichiga olishi mumkin bo'lgan "qo'zg'atish parametrlari" ni ham oshiradi. va ushbu ob'ektning aniq belgilanmagan kanonik versiyasiga nisbatan ko'rish ob'ektining deformatsiyasi. Kapsül to'g'ri ishlayotganda, vizual ob'ektning mavjudligi ehtimoli mahalliy emas - u kapsula bilan qoplangan cheklangan doiradagi mumkin bo'lgan ko'rinishlarning turli xil belgilaridan ko'payganligi sababli o'zgarmaydi. Ammo instantitatsiya parametrlari "ekvivalent" dir - ko'rish shartlari o'zgarganda va ob'ekt tashqi ko'rinish bo'yicha o'zgarganda, instantitatsiya parametrlari mos keladigan miqdorga o'zgaradi, chunki ular tashqi ko'rinishdagi ob'ektning ichki koordinatalarini aks ettiradi. "

Yuqoridagi paragraf juda zich bo'lib, jumlalarni jumlaga qarab nimani anglatishini aniqlash uchun bir oz vaqtim ketdi. Men buni tushunganim uchun yuqorida mening paragrafimning versiyasi quyida keltirilgan.

Sun'iy neyronlar bitta skaliyani chiqaradi. Bunga qo'shimcha ravishda, CNNs konvolyutsion qatlamlardan foydalanadi, ular har bir yadro uchun bitta yadroni og'irliklarini butun kirish hajmiga ko'paytirib, so'ngra 2D matritsani chiqaradi, bu erda har bir raqam kirish hajmining bir qismi bilan yadroni yig'ish natijasidir. Shunday qilib, biz ushbu 2D matritsaga takrorlanadigan xususiyat detektori chiqishi sifatida qarashimiz mumkin. Keyin yadroning barcha 2D matritsalari bir-birining ustiga o'ralgan bo'lib, konvulsion qatlam hosil bo'ladi.

CapsNet nafaqat raqamlarni aniqlay oladi, balki ularni ichki vakilliklardan ham yaratishi mumkin. Manba.

Keyin, neyronlarning faoliyatida nuqtai nazarning o'zgaruvchanligiga erishishga harakat qilamiz. Biz buni yuqorida tavsiflangan 2D matritsadagi ketma-ket qarab turadigan va har bir mintaqadagi eng katta sonni tanlaydigan maksimal puling yordamida amalga oshiramiz. Natijada biz xohlagan narsaga erishamiz - harakatlarning o'zgarmasligi. Invarensiya shuni anglatadiki, kirishni biroz o'zgartirib, natija avvalgidek qoladi. Faoliyat shunchaki neyronning chiqish signalidir. Boshqacha qilib aytganda, kirish tasvirida biz aniqlamoqchi bo'lgan ob'ektni biroz siljitganimizda, tarmoq faoliyati (neyronlarning chiqishi) maksimal birlashtirish tufayli o'zgarmaydi va tarmoq ob'ektni aniqlay oladi.

Yuqorida tavsiflangan mexanizm juda yaxshi emas, chunki maksimal yig'ish qimmatli ma'lumotlarni yo'qotadi va xususiyatlar orasidagi nisbiy fazoviy aloqalarni kodlamaydi. Buning o'rniga biz kapsulalardan foydalanishimiz kerak, chunki ular o'zlari aniqlagan funktsiyalarning holati haqidagi barcha muhim ma'lumotlarni vektor shaklida to'playdilar (neyronlar chiqaradigan skaladan farqli o'laroq).

Kapsüller vektor shaklida aniqlangan xususiyatning holati to'g'risidagi barcha muhim ma'lumotlarni o'z ichiga oladi.

Kapsüller xususiyatni chiqish vektorining uzunligi sifatida aniqlashning ehtimolini kodlaydilar. Aniqlangan xususiyatning holati vektor ko'rsatadigan yo'nalish sifatida kodlanadi ("sozlash parametrlari"). Shunday qilib, aniqlangan xususiyat tasvir atrofida siljiganida yoki uning holati qandaydir tarzda o'zgarganda, ehtimollik avvalgidek qoladi (vektor uzunligi o'zgarmaydi), lekin uning yo'nalishi o'zgaradi.

Tasavvur qiling-a, kapsula rasmdagi yuzni aniqlaydi va 0.99 uzunlikdagi 3D vektor chiqaradi. Keyin biz tasvirni yuz bo'ylab harakat qilishni boshlaymiz. Vektor o'z bo'shlig'ida aylanadi, bu aniqlangan yuzning o'zgaruvchan holatini anglatadi, ammo uning uzunligi sobit qoladi, chunki kapsula yuzni aniqlaganiga amin. Hinton faoliyatni tenglashtiruvchi deb atagan narsa: rasmdagi ob'ekt "mumkin bo'lgan ko'rinishlar ko'payishi" ga o'tganda, neyronal harakatlar o'zgaradi. Shu bilan birga, aniqlash ehtimolligi doimiy bo'lib qolmoqda, bu biz CNN-lar tomonidan maksimal darajada birlashtiriladigan turga emas, balki biz intilishimiz kerak.

Kapsül qanday ishlaydi?

Keling, kapsulalarni sun'iy neyronlar bilan taqqoslaylik. Quyidagi jadvalda kapsula va neyron o'rtasidagi farqlar keltirilgan:

Kapsulalar va neyronlar orasidagi muhim farqlar. Manba: naturomics tomonidan berilgan CapsNets-dagi nutqdan ilhomlangan muallif.

Eslatib o'tamiz, bir neyron boshqa neyronlardan kirish skalalarini oladi, so'ng ularni skalyar og'irliklar va yig'indilarga ko'paytiradi. Ushbu yig'indidan so'ng, kirish skalasini oladigan va funktsiyaga muvofiq skalyar chiqaradigan mumkin bo'lgan nochiziqli faollashtirish funktsiyalaridan biriga o'tkaziladi. Ushbu skalalar neyronning chiqishi bo'lib, ular boshqa neyronlarga kirishga kirishadi. Ushbu jarayonning qisqacha mazmunini jadvalning o'ng tomonida va diagrammada ko'rish mumkin. Aslida, sun'iy neyronni 3 bosqich bilan tavsiflash mumkin:

  1. Kirish skalalarini skalalar bo'yicha tortish
  2. o'lchanadigan kirish sкалlari yig'indisi
  3. skalyar-to skalyar bo'lmagan chiziq
Chapdan: kapsula diagrammasi; o'ngda: sun'iy neyron. Manba: naturomics tomonidan berilgan CapsNets-dagi nutqdan ilhomlangan muallif.

Boshqa tomondan, kapsula yangi bosqichga qo'shimcha ravishda yuqorida ko'rsatilgan 3 bosqichning vektor shakliga ega, kirishning afinaviy o'zgarishiga:

  1. kirish vektorlarini matritsaga ko'paytirish
  2. kirish vektorlarining skalali og'irligi
  3. vaznli kiritish vektorlarining yig'indisi
  4. vektordan-vektorgacha bo'lmagan chiziq

Keling, kapsulada sodir bo'layotgan 4 hisoblash bosqichlarini batafsil ko'rib chiqaylik.

1. Kirish vektorlarini matritsaga ko'paytirish

Bizning kapsulamiz olgan kirish vektorlari (diagrammada u1, u2 va u3) quyidagi qavatdagi 3 ta boshqa kapsulalardan kelib chiqadi. Ushbu vektorlarning uzunligi pastki darajadagi kapsulalarning mos keladigan ob'ektlarni aniqlaganligi va vektorlarning yo'nalishi aniqlangan ob'ektlarning ichki holatini kodlash ehtimolligini kodlaydi. Aytaylik, pastki darajadagi kapsulalar mos ravishda ko'zlarni, og'izni va burunni, tashqi tomondan esa kapsulalarni aniqlaydi.

Keyinchalik bu vektorlar pastki darajadagi xususiyatlar (ko'zlar, og'iz va burun) va yuqori darajadagi xususiyatlar (yuz) o'rtasidagi muhim mekansal va boshqa aloqalarni kodlaydigan W ga tegishli og'irlik matritsalari bilan ko'paytiriladi. Masalan, W2j matritsasi burun va yuz o'rtasidagi munosabatlarni kodlashi mumkin: yuz burun atrofida, kattaligi burunning kattaligidan 10 marta va kosmosdagi yo'nalishi burun yo'nalishiga mos keladi, chunki ularning barchasi bir tekislikda yotadi. . Xuddi shunday sezgi W1j va W3j matritsalarida ham tuzilishi mumkin. Ushbu matritsalarga ko'paytirilgandan so'ng, biz yuqori darajadagi funktsiyaning taxmin qilingan pozitsiyasini olamiz. Boshqacha qilib aytganda, u1hat yuzning ko'zning aniqlangan pozitsiyasiga muvofiq bo'lishi kerakligini, u2hat yuzning aniqlangan pozitsiyasiga muvofiq bo'lishi kerakligini va u3hat yuzning aniqlangan pozitsiyasiga muvofiq bo'lishi kerakligini anglatadi. burun.

Shu nuqtada sizning sezgi quyidagicha bo'lishi kerak: agar ushbu uchta bashorat bashorati yuzning holatiga va holatiga ishora qilsa, u holda u erda yuz bo'lishi kerak.

Burun, og'iz va ko'z kapsulalarini yuzning joylashishi bo'yicha taxminlar bir-biriga mos keladi: u erda yuz bo'lishi kerak. Manba: asl tasvirga asoslangan muallif.

2. Kirish vektorlarining skalyar og'irligi

Bir qarashda, bu qadam sun'iy neyronni qo'shishdan oldin uning tarkibiy qismlarini o'lchaydigan bosqichga juda tanish ko'rinadi. Neyron holatida bu og'irliklarni orqa miya paypaslash paytida bilib olamiz, ammo kapsula holatida ular "dinamik marshrutlash" yordamida aniqlanadi, bu har bir kapsulaning qaerga ketishini aniqlashning yangi usuli hisoblanadi. Men ushbu algoritmga alohida post bag'ishlayman va faqat bu erda ba'zi bir sezgi taklif qilaman.

Pastki darajadagi kapsula o'z ma'lumotlarini uning kiritilishiga

Yuqoridagi rasmda bizda bitta quyi darajadagi kapsula bor, u yuqoriroq kapsulani qanday yuborishini "hal qilishi" kerak. U o'z vaznini sozlash orqali qaror qabul qiladi, bu kapsulani J yoki K yuqori darajadagi kapsulalarga yoki chapga yoki yuqoriga yuborishdan oldin ushbu mahsulotning chiqishini ko'paytiradi.

Endi yuqori darajadagi kapsulalar boshqa quyi darajadagi kapsulalardan ko'p kirish vektorlarini oldilar. Ushbu barcha kirishlar qizil va ko'k nuqtalar bilan ifodalanadi. Agar ushbu nuqtalar bir joyga to'plangan bo'lsa, bu pastki darajadagi kapsulalarni bashorat qilish bir-biriga yaqinligini anglatadi. Shuning uchun, misol uchun, J va K ning har ikkala kapsulasida qizil nuqtalar to'plami mavjud.

Xo'sh, quyi darajadagi kapsulamiz o'z mahsulotini qayerga yuborishi kerak: J kapsulasiga yoki K kapsulasiga? Bu savolga javob dinamik marshrutlash algoritmining mohiyati. Pastki kapsulaning chiqishi, mos keladigan matritsa V ga ko'paytirilganda, J kapsulasida "to'g'ri" bashorat qilish qizil klasteridan uzoqda joylashgan bo'lsa, boshqa tomondan, u o'ng kapsuladagi qizil "klaster" ga yaqin joylashgan bo'ladi. K. quyi darajadagi kapsula o'lchash mexanizmiga ega, uning yuqori sathidagi kapsula o'z natijalarini yaxshiroq qabul qiladi va avtomatik ravishda o'z vaznini K kapsulasiga mos keladigan S og'irligi va J kapsulasiga mos keladigan S og'irligi shunday sozlanadi.

3. O'lchangan kirish vektorlarining yig'indisi

Ushbu qadam odatdagi sun'iy neyronga o'xshaydi va kirishlarning kombinatsiyasini anglatadi. Menimcha, bu bosqichda biron bir alohida narsa yo'q (bu vektorlar yig'indisi va skalyarlarning yig'indisidan tashqari). Shuning uchun biz keyingi bosqichga o'tishimiz mumkin.

4. "Qovoq": Vektorli-Vektorli noaniqlik

CapsNet tomonidan kiritiladigan yana bir yangilik bu vektorni olib, keyin uzunligi 1 dan oshmasligi uchun "pasayadi", ammo yo'nalishini o'zgartirmaydigan yangi chiziqli bo'lmagan faollashtirish funktsiyasi.

Chiziqli bo'lmagan shkala kirish vektorini yo'nalishini o'zgartirmasdan siqish.

Tenglamaning o'ng tomoni (ko'k to'rtburchaklar) kirish vektorini o'lchov birligiga tenglashtiradi va chap tomoni (qizil to'rtburchaklar) qo'shimcha masshtablashni amalga oshiradi. Yodingizda bo'lsin, chiqish vektorining uzunligini berilgan xususiyat kapsula tomonidan aniqlanishi ehtimoli deb talqin qilish mumkin.

Snallar ko'rinishida roman nomutanosiblik grafigi. Haqiqiy dasturda funktsiya vektorlarda ishlaydi. Manba: muallif.

Chap tomonda 1D vektorga qo'llaniladigan siqish funktsiyasi, bu skalyar. Funktsiyaning qiziqarli chiziqli bo'lmagan shaklini namoyish qilish uchun men uni qo'shdim.

Faqat bitta o'lchovli vaziyatni ingl. haqiqiy dasturda vektorni olib, vektorni chiqaradi, uni tasavvur qilish qiyin bo'ladi.

Xulosa

Ushbu bo'limda biz kapsula nima, u qanday hisoblashlarni amalga oshirishi va uning orqasida sezgi haqida gaplashdik. Biz kapsulaning dizayni sun'iy neyronning dizayniga asoslanishini ko'ramiz, ammo yanada kuchli vakillik qobiliyatiga ega bo'lish uchun uni vektor shaklida kengaytiradi. Shuningdek, u turli qatlamlarning xususiyatlari o'rtasidagi muhim ierarxik aloqalarni kodlash uchun matritsali og'irliklar bilan tanishtiradi. Natija dizaynerning maqsadiga erishadi: xususiyatlarni aniqlash ehtimolligi bo'yicha kirish va o'zgarishning o'zgarishiga nisbatan neyronal faoliyat tengligi.

Kapsülün ichki ishlarining qisqacha mazmuni. Shuni yodda tutingki, hech qanday noxolislik yo'q, chunki u allaqachon W matritsasiga kiritilgan va uni va boshqa murakkabroq o'zgarishlarni va munosabatlarni joylashtirishi mumkin. Manba: muallif.

CapsNet-da seriyalarni yakunlash uchun qolgan qismlar - bu kapsulalar algoritmi o'rtasidagi dinamik marshrut, shuningdek ushbu tarmoq tarmog'ining arxitekturasining batafsil qadamlari. Bular keyingi postlarda muhokama qilinadi.

O'qiganingiz uchun rahmat! Agar sizga yoqqan bo'lsa, quyidagi chap tugmachani bosing va veb-saytimdagi yangilanishlarga obuna bo'ling! Bu men uchun juda ko'p narsani anglatar edi va menga bu kabi ko'proq hikoyalar yozishga undaydi.

Siz meni Tvitterda kuzatishingiz mumkin. Shuningdek, LinkedIn-ga ulanaylik.