Капсульна нейронна мережа ( CapsNet) — це система машинного навчання, що являє собою тип штучної нейронної мережі (ANN), яку можна використовувати для кращого моделювання ієрархічних відносин. Цей підхід є спробою більш точно імітувати біологічну нейронну організацію.
Ідея полягає в тому, щоб додати структури, що називаються «капсули» до згорткової нейронної мережі (CNN) і повторно використовувати вихідні дані від декількох з цих капсул для формування більш стійких до різних шумів ознак для наступних капсул. Результат являє собою вектор, що складається з та для цього спостереження. Цей вектор подібний до того, що створюється, наприклад, під час виконання класифікації з локалізацією в згортковій нейронній мережі.
Серед інших переваг, капсульні мережі вирішують «проблему Пікассо» при розпізнаванні зображень: зображення, які мають усі правильні частини, але не знаходяться в правильному просторовому співвідношенні (наприклад, на «обличчі», міняються місцями рот та одне око). Для розпізнавання зображень використовується той факт, що хоча зміна точки спостереження має нелінійний вплив на рівні пікселів, але лінійні на рівні деталі/об'єкта. Це можна порівняти з інверсією відтворення об'єкта, що складається з декількох частин.
Історія У 2000 році Джеффрі Гінтон та ін. описали систему візуалізації, яка поєднує сегментацію та розпізнавання в єдиний процес виведення з використанням дерев синтаксичного аналізу. Так звані мережі імовірності описують спільний розподіл за прихованими змінними та за можливими деревами синтаксичного аналізу. Ця система виявилася корисною в базі рукописних цифр MNIST.
Механізм динамічної маршрутизації для капсульних мереж був запропонований Гінтоном та його командою у 2017 році. Стверджувалося, що цей підхід зменшує рівень помилок у MNIST та зменшує розміри навчальних наборів. Стверджувалося, що результати були значно кращими, ніж CNN на цифрах, які сильно накладаються.
За початковою ідеєю Гінтона, одна мініколонка повинна була представляти та відстежувати один багатовимірний запис.
Перетворення Інваріант — це властивість об'єкта, яка не змінюється в результаті деякого перетворення. Наприклад, площа кола не змінюється, якщо коло зсунути вліво.
Неформально — це властивість, яка прогнозовано змінюється під час перетворення. Наприклад, центр кола переміщується на ту ж величину, що й коло при зсуві.
Нееквіваріант — це властивість, значення якої змінюється непрогнозовано під час перетворення. Наприклад, перетворення кола в еліпс означає, що його периметр більше не може бути обчислений як , помножений на діаметр.
У комп'ютерному зорі очікується, що клас об'єкта буде інваріантом при багатьох перетвореннях. Тобто кішка залишається кішкою, якщо її переміщують, перевертають догори ногами або зменшують у розмірі. Однак багато інших властивостей є еквіваріантними. Обсяг кота змінюється, при масштабуванні.
Еквіваріантні властивості, такі як просторові відносини, фіксуються в позі, дані, які описують перенесення, обертання, масштабування і дзеркальне відображення об'єкта.
Капсульні мережі некеровано вивчають глобальний лінійний простір між об'єктом і його позою у вигляді матриці ваг. Іншими словами, CapsNet можуть ідентифікувати об'єкт незалежно від його пози, замість того, щоб навчитися розпізнавати об'єкт, включаючи його просторові відносини як частину об'єкта. Крім того, поза може містити властивості, відмінні від просторових відносин, наприклад, колір (кішки можуть бути різних кольорів).
Множення об'єкта на різновид створює об'єкт (для об'єкта в просторі).
Об'єднання Капсульні нейронні мережі відкидають стратегію агрегувальних шарів звичайних CNN, яка зменшує кількість деталей, що обробляються у наступному шарі. Об'єднання забезпечує певний ступінь трансляційної інваріантності (воно може розпізнавати один і той же об'єкт у дещо іншому місці) і дозволяє представляти більшу кількість типів об'єктів. Прихильники CapsNet стверджують, що агрегація:
порушує біологічне сприйняття форми, оскільки не має внутрішньої системи координат; забезпечує інваріантність (відкидання позиційної інформації) замість еквіваріантності (розбір цієї інформації); ігнорує лінійне різноманіття, що лежить в основі багатьох варіацій між зображеннями; маршрутизує статично замість того, щоб повідомляти про потенційну «знахідку» об'єкту, який може його оцінити; пошкоджує довколишні детектори об'єктів, видаляючи інформацію, на яку вони покладаються.
Капсули Капсула — це набір нейронів, які окремо активуються для різних властивостей типу об'єкта, таких як положення, розмір і відтінок. Формальна капсула — це набір нейронів, які разом створюють вектор активності з одним елементом для кожного нейрона, який містить значення екземпляра цього нейрона (наприклад, відтінок). Графічні програми використовують значення екземпляра для малювання об'єкта. CapsNet намагаються отримати їх зі своїх вхідних даних. Імовірність присутності об'єкта у певному потоці вхідних даних — це довжиною вектора, тоді як орієнтація вектора кількісно визначає властивості капсули.
Як правило, штучні нейрони видають скалярну дійсну активацію, яка в загальних рисах представляє ймовірність спостереження. CapsNet замінюють приймачі функцій зі скалярним виводом на капсули з векторним виводом, а максимізаційне агрегування — на маршрутизацію за угодою.
Оскільки капсули незалежні, коли кілька капсул узгоджуються, ймовірність правильного виявлення набагато вища. Мінімальний кластер з двох капсул, що розглядають шестивимірний об'єкт, буде узгодженим з точністю до 10 % випадково лише один раз на мільйон випробувань. Зі збільшенням кількості вимірів імовірність випадкового узгодяться в більшому кластері з більшою кількістю вимірів зменшується експоненціально.
Капсули наступних шарів отримують вихідні дані з капсул попередніх і приймають ті, чиї вихідні дані кластеризуються. Кластер призводить до того, що настуна капсула видає високу ймовірність спостереження присутності об'єкта, а також видає багатовимірну (20 — 50+) позу.
Капсули наступного шару ігнорують відхилення, концентруючись на кластерах. Це схоже на перетворення Хафа, RHT та RANSAC з класичної цифрової обробки зображень.
Маршрутизація за домовленістю Вихідні дані з однієї капсули (нащадка) спрямовуються до капсул наступного шару (батьків) відповідно до здатності нащадка передбачати вихідні дані батьків. Протягом кількох ітерацій результати кожного з батьків можуть збігатися з прогнозами одних нащадків і відрізнятися від прогнозів інших, що означає, що цей батьківського елемента присутній або відсутній на сцені.
Для кожного можливого батьківського елемента кожний нащадок обчислює вектор прогнозування шляхом множення його вихідних даних на матрицю ваг (навчену шляхом зворотного поширення). Далі вихідні дані батьківського елемента обчислюються як скалярний добуток передбачення з коефіцієнтом, що представляє ймовірність того, що цей нащадок належить цьому батьківському елементу. Нащадок, чиї прогнози відносно близькі до вихідного результату, послідовно збільшує коефіцієнт між цим батьком і дитиною і зменшує його для батьків, яким він відповідає меншою мірою. Це збільшує внесок, який цей нащадок вносить в батьківський, тим самим збільшуючи скалярний добуток прогнозу капсули на вихідні дані батьківського елементу. Після декількох ітерацій коефіцієнти міцно пов'язують батьківський елемент з його найімовірнішими нащадками, вказуючи на те, що присутність нащадка передбачає присутність батьківського елемента на сцені. Чим більше нащадків, чиї прогнози близькі до результатів батьків, тим швидше зростають коефіцієнти, що сприяє зближенню. Поза батька (відображена в його результатах) поступово стає сумісною з позою його нащадків.
Початкові логіти коефіцієнтів — це логарифмічні ймовірності того, що нащадок належить до батьківського елементу. Пріори можна навчати вибірково разом із вагами. Пріори залежать від розташування та типу дочірніх і батьківських капсул, але не від вхідних даних. На кожній ітерації коефіцієнти коригуються за допомогою softmax «маршрутизації» таким чином, щоб вони продовжували дорівнювати 1 (щоб висловити ймовірність того, що дана капсула є батьківською для даного дочірнього елемента). Softmax підсилює великі значення та зменшує менші значення, чим більша їх частка в загальному обсязі. Аналогічно, ймовірність того, що ознака присутня у вхідних даних, перебільшується нелінійною функцією «стискання», яка зменшує значення (менші значення — різко, а більші — так щоб вони були менші за 1).
Цей механізм динамічної маршрутизації забезпечує необхідне знецінення альтернатив («обґрунтування»), яке необхідне для сегментації об'єктів, що перекриваються.
Ця вивчена маршрутизація сигналів не має чіткого біологічного еквівалента. Деякі операції можна знайти в кортикальних шарах, але вони, здається, не пов'язані з цією технікою.
Математика/код Вектор пози обертається та перетворюється матрицею у вектор , який передбачає вихідні дані батьківської капсули.
Капсули наступного шару отримують суму прогнозів від усіх капсул попереднього, кожен з коефіцієнтом зв'язку .
Процедура softmax Коефіцієнти зв'язку від капсули у шарі до всіх капсул у шарі підсумовуються до одиниці, та визначаються «softmax маршрутизацією». Початкові логіти є попередніми логарифмічними ймовірностями для маршрутизації. Це апріорна ймовірність того, що капсула у шарі має з'єднатися з капсулою у шарі . Нормалізація коефіцієнтів зв'язку:
Щоб ця процедура була оптимальною, потрібно запам'ятати кілька значень і скидати ці значення на кожній ітерації. Тобто, якщо вектор змінюється, то запам'ятовані значення необхідно оновити. Не показано, як це потрібно зробити. Запам'ятовування дільника не показано.
Процедура squash Оскільки довжина векторів представляє ймовірності, вони повинні бути від нуля (0) до одиниці (1), і для цього застосовується функція стиснення:
Вектор, зведений до нуля, має градієнт, що зникає.
Маршрутизація процедури Один з підходів до маршрутизації полягає в наступному
У рядку 8 функція softmax може бути замінена будь-яким типом WTA мереж . Біологічно це дещо нагадує канделяберні клітини, але вони також можуть бути залучені до обчислення коефіцієнтів зв'язку (рядок 9) або обчислення угод (рядок 11).
У рядку 9 показана матриця ваг для коефіцієнтів зв'язку та прихована матриця прогнозування. Структура рівнів I та II дещо схожа на кору головного мозку, якщо припустити, що беруть участь у транспонуванні вхідних векторів. Неясно, чи виконують обидва типи зірчастих клітин одну і ту функцію, оскільки рівень I містить колючи клітини, що збуджують, а рівень II має гальмівні аспині клітини. Останнє вказує на зовсім іншу мережу.
У рядку 10 функція squash може бути замінена іншими функціями та мережевими топологіями, які зберігають напрямок вектора.
Процедура виконує ітерацій, зазвичай 4–5, з індексом вихідного або первинного рівня капсули, звідки йде маршрут, та рівень капсули наступний вищий рівень.
Навчання Навчання є керованим. Мережа навчається шляхом мінімізації евклідової відстані між зображенням і вихідними даними CNN, який відтворює вхідні дані з вихідних даних останніх капсул.
Мережа навчається на основі вибору, використовуючи ітераційну маршрутизацію за угодою.
Вектори активності всіх, крім правильного батьківського елемента, маскуються.
Розподілення втрат Довжина вектора створення екземпляра представляє ймовірність того, що об'єкт капсули присутній на сцені. Капсула наступного рівня має довгий вектор тоді і тільки тоді, коли присутній пов'язаний з ним об'єкт. Щоб врахувати декілька об'єктів, для кожної капсули розраховується окрема втрата. Зменшення ваги втрат для відсутніх об'єктів зупиняє процес навчання від скорочення довжин векторів активності для всіх об'єктів. Загальні втрати — це сума втрат всіх об'єктів. У прикладі Хінтона функція втрат виглядає так: