Капсулска неуронска мрежа (CapsNet) је систем машинског учења који спада у врсту вештачких неуронских мрежа (ANN) и може се користити за боље моделирање хијерархијских односа. Овај приступ представља покушај да се ближе имитира биолошка неуронска организација.
Идеја је да се конволуционој неуронској мрежи (CNN) додају структуре које се називају „капсуле“, при чему се излази више капсула поново користе за формирање стабилнијих (са становишта различитих поремећаја) представљања у капсулама на вишем нивоу. Излаз је вектор који садржи вероватноћу присуства објекта и његову позу. Овај вектор је сличан ономе што се ради при класификацији са локализацијом у CNN-овима.
Међу осталим предностима, капсулске мреже решавају „Пикасо проблем“ у препознавању слика: слике које имају све праве делове али нису у исправном просторном односу (нпр. код „лица“, положаји уста и једног ока су мењани). За препознавање слика, капсулске мреже користе чињеницу да промене угла гледања имају нелинеарне ефекте на нивоу пиксела, али линеарне ефекте на нивоу делова/објеката. Ово се може упоредити са обрнутим рендеровањем објекта с више делова.
Историја Године 2000, Џефри Еверест Хинтон и сарадници описали су систем за обраду слика који је комбиновao сегментацију и препознавање у један процес извлачења закључака користећи дрво извођења. Такозване мреже кредибилитета описивале су заједничку дистрибуцију латентних променљивих и могућих парсинг стабала. Тај систем је био користан на бази података MNIST руком писаних цифара.
Механизам динамичког усмеравања за капсулске мреже уведен је 2017. године од стране Хинтона и његовог тима. Тврђено је да овај приступ смањује стопе грешака на MNIST-у и смањује величину тренинг сета. Резултати су били значајно бољи од CNN-а на високо преклапајућим цифрама.
У Хинтоновој оригиналној идеји, једна миниколона представљала би и детектовала један мултидимензионални ентитет.
Трансформације Инваријанта је својство објекта које се не мења као резултат неке трансформације. На пример, површина круга не мења вредност ако се круг помери улево.
Неформално, еквиваријанта је својство које се предвидиво мења под трансформацијом. На пример, центар круга се помера исто колико и сам круг.
Није-еквиваријанта је својство чија се вредност не мења предвидиво током трансформације. На пример, трансформација круга у елипсу значи да се њен обим више не може израчунати као π пута пречник.
У рачунарском виду, очекује се да је класа објекта инваријанта кроз многе трансформације. То јест, мачка је и даље мачка ако се помери, окрене наопако или смањи. Међутим, многа друга својства су екаваријантна. Волумен мачке се мења када се скалира.
Еквиваријантна својства, као што је просторни однос, бележе се у пози (pose), подацима који описују транслацију, ротацију, скалу и рефлексију објекта. Транслација је промена локације у једној или више димензија. Ротација је промена оријентације. Скала је промена величине. Рефлексија је огледални приказ.
Надгледано учење капсулских мрежа омогућава да се научи глобални линеарни манифолд између објекта и његове позе као матрице тежина. Другим речима, капсулске мреже могу идентификовати објекат независно од његове позе, без потребе да уче учење препознавања објекта укључујући просторне односе као део објекта. У капсулским мрежама, поза може укључивати својства осим просторних односа, нпр. боју (мачке могу бити различитих боја).
Множење објекта са манифолдом поставља објекат у простор.
Пулинг Капсулске мреже одбацују стратегију пулинг слојева конвенционалних CNN-ова, која смањује количину детаља који се обрађују у наредном слоју. Пулинг омогућава одређени степен транслационе инваријанце (може препознати исти објекат на мало другачијој позицији) и омогућава представљање већег броја типова карактеристика. Промотери капсулских мрежа тврде да пулинг:
крши биолошку перцепцију облика јер нема унутрашњи координатни систем; пружа инваријанцу (игнорише позиционе информације) уместо еквиваријанце (раздвајање тих информација); занемарује линеарни манифолд који лежи иза многих варијација међу сликама; усмерава статички уместо да потенцијално „откривање“ комуницира са функцијом која то може да препозна; оштећује оближње детекторе карактеристика брисањем информација на којима они зависе.
Капсуле Капсула је скуп неурона који се појединачно активирају за различита својства типа објекта, као што су положај, величина и боја. Формално, капсула је скуп неурона који заједно производе вектор активности са једним елементом по неурону који садржи његову вредност инстанцирања (нпр. боју). Графички програми користе вредност инстанцирања за цртање објекта. Капсулске мреже покушавају да изведу ове вредности из свог улаза. Вероватноћа присуства ентитета у одређеном улазу је дужина вектора, док оријентација вектора квантфикује својства капсуле.
Вештачки неурони традиционално излазе скаларну, реалну активацију која приближно представља вероватноћу посматрања. Капсулске мреже замењују детекторе карактеристика са скаларним излазом векторским капсулама и пулинг са механизмом routing-by-agreement.
Пошто су капсуле независне, када више капсула постигне сагласност, вероватноћа правилне детекције је много већа. Минимални кластер од две капсуле које разматрају шестодимензионални ентитет би се случајно сагласио само једанпут у милион покушаја. Како број димензија расте, вероватноћа случајне сагласности у већем кластеру са више димензија опада експоненцијално.
Капсуле у вишим слојевима узимају излаз из капсула нижих слојева и прихватају оне чији се излаз кластеризује. Кластер узрокује да виша капсула произведе високу вероватноћу посматрања присуства ентитета, као и вектор високе димензије (20-50+) за позу.
Капсуле вишег нивоа игноришу изоловане вредности и концентришу се на кластере.
Routing by agreement (усмеравање по сагласности) Излази једне капсуле (дете) усмеравају се на капсуле у следећем слоју (родитељ) у складу са способношћу дете капсуле да предвиди излаз родитеља. Током неколико итерација, излази родитеља могу да се ускладе са предвиђањима неких деце, а да се удаље од других, што значи да је тај родитељ присутан или одсутан на сцени.
За сваког могућег родитеља, свака дете капсула израчунава предиктивни вектор множењем свог излаза са матрицом тежина (обучава се путем бекпропагације). Следећи корак је израчунавање излаза родитеља као скаларног производа предикције са коефицијентом који представља вероватноћу да ово дете припада том родитељу. Дете чија предвиђања су релативно близу резултујућем излазу постепено повећава коефицијент између родитеља и себе, а смањује га за родитеље који му мање одговарају. Ово повећава допринос детета родитељу, чиме се повећава скаларни производ предикције капсуле и излаза родитеља. Након неколико итерација, коефицијенти снажно повезују родитеља са његовим највероватнијим децом, што показује да присуство деце имплицира присуство родитеља на сцени. Што више деце чија предвиђања су блиска излазу родитеља, то брже расту коефицијенти, водећи ка конвергенцији. Поза родитеља постепено постаје компатибилна са позом његове деце.
Почетни логити коефицијената представљају логаритам приор вероватноће да дете припада родитељу. Приори се могу дискриминативно обучавати заједно са тежинама. Они зависе од локације и типа дете и родитељ капсула, али не и од тренутног улаза. У свакој итерацији, коефицијенти се подешавају кроз софтмакс тако да њихов збир остане 1 (да би изразили вероватноћу да је дата капсула родитељ датог детета). Софтмакс појачава веће вредности и смањује мање вредности у односу на укупан збир. Слично томе, вероватноћа присуства карактеристике у улазу појачава се нелинеарном „сквашујућом“ функцијом која смањује вредности (мање драстично, веће тако да су мање од 1).
Овај динамички механизам усмеравања омогућава неопходно „објашњавање“ (explaining away) које је потребно за сегментацију преклапајућих објеката.
Математика / код
Вектор позе ротира и трансформише матрицом у вектор који предвиђа излаз родитељске капсуле:
Капсуле у следећем слоју добијају суму предвиђања свих капсула нижег слоја, свака помножена коефицијентом повезивања :
Процедура softmax Којефицијенти повезивања између капсуле у слоју и свих капсула у слоју збрајају се до један и дефинисани су као „routing softmax“. Почетни логити представљају претходне логаритамске вероватноће за рутирање. Другим речима, то је претходна вероватноћа да капсула у слоју треба да се повеже са капсулом у слоју . Нормализација коефицијената повезивања:
Да би процедура била оптимална, неке вредности могле би да се кеширају, али ако се вектор мења током итерација рутирања, те вредности морају да се поново израчунају. У имплементацијама се овај корак обично решава имплицитно.
Да би ова процедура била оптимална, морала би да памти неколико вредности и да их ресетује у свакој итерацији. Ако се вектор промени, меморисане вредности морају се ажурирати, што није приказано.
Процедура squash Пошто дужина вектора представља вероватноће, она треба да буде између 0 и 1, па се примењује функција скваширања:
Вектор који је скваширан до нуле има нестајући градијент.
Процедура routing Један приступ усмеравању:
На линији 8, softmax функцију може заменити било која winner-take-all мрежа. Биолошки, ово делимично подсећа на chandelier cells, али могу бити укључене и у израчунавање коефицијената повезивања (линија 9) или сагласности (линија 11). На линији 9, матрица тежина за коефицијенте повезивања и скривена матрица предвиђања су приказане. Структура у слојевима I и II делимично подсећа на церебрални кортекс ако се претпостави да stellate cells учествују у трансформацији улазних вектора. На линији 10, функција squash може бити замењена другим функцијама или топологијама мреже које задржавају смер вектора.
Процедура изводи итерација (обично 4-5), где је индекс извора (почетног слоја капсула), а слој је следећи виши слој.
Тренинг
Учење је надгледано. Мрежа се тренира минимизирањем еуклидске раздаљине између оригиналне слике и излаза CNN-а који реконструише улаз из излаза завршних капсула.
Мрежа се дискриминативно тренира, користећи итеративни механизам routing-by-agreement.
Вектор активности свих капсула осим исправне родитељске маскира се.
Губитак маргине
Дужина вектора инстанцирања представља вероватноћу да је ентитет капсуле присутан на сцени. Капсула на највишем нивоу има дуг вектор ако и само ако повезани ентитет је присутан. Да би се омогућило више ентитета, за сваку капсулу се израчунава посебан губитак маргине (енгл. margin loss). Смањење тежине губитка за непостојеће ентитете спречава да мрежа смањује дужину вектора активности за све ентитете. Укупни губитак је збир губитака за све ентитете.
Пример функције губитка коју је предложио Хинтон:
Ова врста губитка је честа у ANN-овима. Параметри и се постављају тако да дужина вектора не достигне максимум или не падне на нулу (, ). Смањење тежине за непостојеће класе контролише ( је разумна вредност).
Губитак реконструкције
Додатни губитак реконструкције (енгл. reconstruction loss) стимулише ентитете да кодирају параметре свог улаза. Коначни вектор активности се користи за реконструкцију улазне слике преко CNN декодера од 3 потпуно повезана слоја. Реконструкција минимизира збир квадрата разлика између излаза логистичких јединица и интензитета пиксела. Губитак реконструкције је смањен скаларом 0.0005 како не би доминирао маргиналним губитком током тренинга.
Пример конфигурације
Први конволуциони слојеви врше екстракцију обележја. За тест са MNIST сликама величине 28×28 пиксела, почетна конволуција са 256 9×9 пиксел конволуционих кернела (са кораком 1 и ReLU активацијом, чиме се дефинишу рецептивна поља величине 20×20) претвара улазне пикселе у једнодимензионе активације обележја и уводи нелинеарност.