Капсулни невронни мрежи - Набор от вложени невронни слоеве



Капсулни мрежи - Този блог разказва за ограниченията на конволюционните невронни мрежи и как Capsule Neural Networks решава тези ограничения.

Капсулни мрежи:

Какво е капсулна мрежа? По същество това е мрежа от набор от вложени невронни слоеве.

Бих ви препоръчал да прегледате и блоговете по-долу:





Предполагам, че вие, момчета, знаете Конволюционните невронни мрежи (CNN). Тук ще ви дам малко въведение за същото, за да мога да обсъдя ограниченията на CNN.

Можете също така да се обърнете към видеото по-долу за Convolutional Neural Network.



Конволюционни невронни мрежи (CNN)

Конволюционните невронни мрежи са основно набор от различни слоеве изкуствени неврони, който се използва за компютърно зрение. По-долу споменах тези слоеве:

Конволюционна невронна мрежа - Капсулна невронна мрежа - Edureka

Свито слой: Когато използваме невронни мрежи Feedforward (многослоен персептрон) за класификация на изображенията, има много предизвикателства с него. Най-разочароващото предизвикателство е, че той въвежда много параметри, помислете за видео урока на CNN.



За да се преодолее това предизвикателство Конволюционен слой беше въведена. предполага се, че пикселите, които са пространствено по-близо един до друг, ще „си сътрудничат“ при формирането на дадена характеристика, която представлява интерес, много повече от тези в противоположните ъгли на изображението. Също така, ако се установи, че определена (по-малка) характеристика е от голямо значение при дефинирането на етикета на изображението, ще бъде също толкова важно, ако тази характеристика е намерена навсякъде в изображението, независимо от местоположението.

ReLU слой: Функцията за преобразуване на ректифицирана линейна единица (ReLU) активира възел само ако входът е над определено количество, докато входът е под нулата, изходът е нула, но когато входът се издигне над определен праг, той има линейна връзка с зависима променлива.

  • В този слой премахваме всякакви отрицателни стойности от филтрираните изображения и ги заместваме с нули
  • Това се прави, за да се избегнат суми от сумиране до нула

Обединяващ слой: Това се използва за извършване на понижаване на дискретизацията, което консумира малки и (обикновено) несвързани парчета от изображението и ги обединява в една стойност. Има няколко възможни схеми за агрегиране - най-популярното същество Максимално обединяване , където се взема максималната стойност на пикселите във всеки парче. Това прави мрежата инвариантна към малки трансформации, изкривявания и транслации във входното изображение (малкото изкривяване на входа няма да промени изхода на обединяването - тъй като приемаме максималната / средната стойност в локален квартал).

Напълно свързан слой: Този слой ще изчисли резултатите от класа, където всяко от числата съответства на резултат от класа. Както при обикновените невронни мрежи и както подсказва името, всеки неврон в този слой ще бъде свързан с всички неврони в предишния том. С две думи, той изпълнява окончателното класиране.

По този начин ConvNets трансформират оригиналното изображение слой по слой от първоначалните стойности на пикселите до крайните резултати от класа.

Това беше много кратко въведение към Свързаните невронни мрежи, все пак бих ви препоръчал да разгледате видеото на CNN, което съм вложил в тази публикация.

В този блог на Capsule Networks сега ще обсъдя няколко ограничения на революционните невронни мрежи

Ограничения на конволюционните невронни мрежи:

Е, нека да обясня това с аналогия.

Да предположим, че има човек, чиито очи могат да открият характеристиките на различни изображения. Нека разгледаме като пример лицето на човек. Така че, този нещастен човек може да идентифицира различни характеристики като, очите, носа и т.н., но не е в състояние да идентифицира пространствените отношения между характеристиките (перспектива, размер, ориентация). Например, следващата снимка може да заблуди този човек, като я класифицира като добра скица на човешко лице.

Това е проблемът и с конволюционните невронни мрежи. CNN е добър в откриването на функции, но погрешно ще активира неврона за разпознаване на лица. Това е така, защото е по-малко ефективно при изследване на пространствените отношения между характеристиките.

Един прост модел на CNN може правилно да извлече характеристиките за носа, очите и устата, но погрешно ще активира неврона за откриване на лице. Без да осъзнаем несъответствието в пространствена ориентация и размер, активирането на разпознаването на лица ще бъде твърде високо.

Е, това ограничение се дължи на слоя Max Pooling.

Максималното обединяване в CNN обработва транслационна дисперсия. Дори дадена функция е леко преместена, ако все още е в прозореца за обединяване, тя все още може да бъде открита. Въпреки това, този подход запазва само максималната функция (най-доминиращата) и изхвърля останалите.

Така че снимката на лицето, показана по-горе, ще бъде класифицирана като нормално лице. Обединяващият слой също добавя този тип инвариантност.

Това никога не беше намерението на обединяващия слой. Това, което обединяването трябваше да направи, е да въведе позиционни, ориентационни, пропорционални инварианти.

В действителност този слой за обединяване добавя всякакви позиционни инвариантности. Както можете да видите и на горната схема, това води до дилемата за правилно откриване на лицето.

Нека да видим какво е решението, предложено от Джефри Хинтън .

Как да решим този проблем?

Сега си представяме, че всеки неврон съдържа вероятността, както и свойствата на характеристиките. Например, той извежда вектор, съдържащ [вероятност, ориентация, размер]. С тази пространствена информация можем да открием несъответствието в ориентацията и размера на чертите на носа, очите и ушите и следователно да изведем много по-ниско активиране за разпознаване на лицето.

В хартията, издадена от Джефри Хинтън , тези видове неврони се наричат ​​капсули. Тези капсули извеждат вектор вместо единична стойност на скалера.

Позволете ми да запаля светлини върху това, което са Capsule Networks.

Какво представляват капсулните мрежи?

Капсулата е основно набор от вложени невронни слоеве. Състоянието на невроните в капсулата улавя различните свойства като - поза (позиция, размер, ориентация), деформация, скорост, текстура и т.н., на едно цяло в изображението.

Вместо да заснеме елемент с определен вариант, капсулата е обучена да улавя вероятността на даден елемент и неговия вариант. И така, целта на капсулата е не само да открие характеристика, но и да обучи модела да научи варианта.

Така, че една и съща капсула да може да открие един и същ обект клас с различна ориентация (например да се върти по посока на часовниковата стрелка):

Можем да кажем, че работи върху еквивариантност, а не инвариантност.

Неизменност: е откриването на характеристики, независимо от вариантите. Например, невронът за откриване на нос открива носа независимо от ориентацията.

Еквивариантност: е откриването на обекти, които могат да се трансформират един към друг (например откриване на лица с различна ориентация). Интуитивно, капсулната мрежа открива, че лицето е завъртяно надясно на 31 ° (еквивалентност), вместо да реализира лицето, което съответства на вариант, който е завъртян на 31 °. Принуждавайки модела да научи варианта на функцията в капсула, ние можем да екстраполираме възможните варианти по-ефективно с по-малко данни за обучение. Освен това можем да отхвърлим по-ефективно противниците.

използване на клас на скенер в java

Капсула извежда вектор, който представя съществуването на обекта. Ориентацията на вектора представлява свойствата на обекта.

Векторът се изпраща до всички възможни родители в невронната мрежа. За всеки възможен родител капсула може да намери вектор за прогнозиране. Векторът за прогнозиране се изчислява въз основа на умножаването на собственото му тегло и матрицата на теглото. Който и родител има най-големия скаларен векторен продукт, увеличава връзката на капсулата. Останалите родители намаляват връзката си. Това се нарича Маршрутизиране по споразумение .

Това определено е по-добър подход от максималното обединяване, при което маршрутизирането се основава на най-силната характеристика, открита в долния слой.

След това се добавя функция за смачкване. Това се прави, за да се въведе нелинейност. Тази функция за смачкване се прилага към векторния изход на всяка капсула.

Нека ви разкажа сега как работят Capsule Networks.

Как работят капсулните мрежи?

Нека направим крачка назад. В напълно свързана мрежа изходът на всеки неврон е претеглената сума от входовете.

Сега да видим какво се случва в Capsule Networks.

Капсулна невронна мрежа:

Нека разгледаме капсулна невронна мрежа, където ‘ui‘Е векторът на активност за капсулата‘азв слоя отдолу.

Стъпка - 1: Приложете матрица за трансформацияINijкъм изхода на капсулата ui на предишния слой. Например с m × k матрица трансформираме k-Dui до m-Du ^j | i. ((m × k) × (k × 1) = m × 1).

Това е прогнозата ( гласувайте ) от капсулата „i“ на изхода на капсулата „j“ по-горе. ‘Vj‘Е векторът на активност за капсулата‘j ’в горния слой

Стъпка - 2: Изчислете претеглена сума sjс тежести° Сij.° Сijса коефициентите на свързване. Сумата от тези коефициенти е равна на единица. Това е действителният параметър, който работи върху връзката на групата капсули, за които говорихме по-рано.

Стъпка - 3: В конволюционните невронни мрежи използвахме функцията ReLU. Тук ще приложим функция за смачкване, за да мащабираме вектора между 0 и дължина на единицата. Той свива малки вектори до нула и дълги вектори до единични вектори. Следователно вероятността за всяка капсула е ограничена между нула и единица.

Това е прогнозата ( гласувайте ) от капсулата „i“ на изхода на капсулата „j“ по-горе. Ако векторът на активността има близко сходство с вектора за прогнозиране, заключаваме, че капсулата „азе силно свързана с капсулатаj ’. (Например, носната капсула е силно свързана с капсулата на лицето.) Такова сходство се измерва, използвайки скаларния продукт на вектора за прогнозиране и активност. Следователно сходството взема предвид както вероятността, така и свойствата на характеристиките. (вместо просто вероятност в невроните).

Стъпка - 4: Изчисляване на оценката за уместност ‘bij‘. Това ще бъде точковото произведение на вектора на активността и вектора на прогнозата. Коефициентите на свързване° Сijсе изчислява като softmax набij:

Коефициент на свързване cijсе изчислява като softmax на bij.

Това bijсе обновява итеративно в множество итерации.

Това се нарича Маршрутизиране по споразумение .

По-долу диаграма е един пример:

След този блог в Capsule Networks ще изготвя блог за внедряването на Capsule Neural Network, използвайки TensorFlow.

Надявам се, че ви е харесало да четете този блог в капсулни мрежи, вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за дълбоко обучение Edureka с TensorFlow за сертифициране помага на обучаващите се да станат експерти в обучението и оптимизирането на основни и конволюционни невронни мрежи, използвайки проекти и задачи в реално време, заедно с концепции като функцията SoftMax, автокодиращи невронни мрежи, ограничена машина на Boltzmann (RBM).

Имате въпрос към нас? Моля, споменете го в раздела за коментари и ние ще се свържем с вас.