Капсульна нейронна мережа

Капсульна нейронна мережа (англ. capsule neural network CapsNet) — це система машинного навчання, що являє собою тип штучної нейронної мережі (ANN), яку можна використовувати для кращого моделювання ієрархічних відносин. Цей підхід є спробою більш точно імітувати біологічну нейронну організацію.[1]

Ідея полягає в тому, щоб додати структури, що називаються «капсули» до згорткової нейронної мережі (CNN) і повторно використовувати вихідні дані від декількох з цих капсул для формування більш стійких до різних шумів ознак для наступних капсул.[2] Результат являє собою вектор, що складається з ймовірності спостереження[en] та пози[en] для цього спостереження. Цей вектор подібний до того, що створюється, наприклад, під час виконання класифікації з локалізацією в згортковій нейронній мережі.

Серед інших переваг, капсульні мережі вирішують «проблему Пікассо» при розпізнаванні зображень: зображення, які мають усі правильні частини, але не знаходяться в правильному просторовому співвідношенні (наприклад, на «обличчі», міняються місцями рот та одне око). Для розпізнавання зображень використовується той факт, що хоча зміна точки спостереження має нелінійний вплив на рівні пікселів, але лінійні на рівні деталі/об'єкта.[3] Це можна порівняти з інверсією відтворення об'єкта, що складається з декількох частин.[4]

Історія ред.

У 2000 році Джеффрі Гінтон та ін. описали систему візуалізації, яка поєднує сегментацію та розпізнавання в єдиний процес виведення з використанням дерев синтаксичного аналізу. Так звані мережі імовірності описують спільний розподіл за прихованими змінними та за можливими деревами синтаксичного аналізу. Ця система виявилася корисною в базі рукописних цифр MNIST.[4]

Механізм динамічної маршрутизації для капсульних мереж був запропонований Гінтоном та його командою у 2017 році. Стверджувалося, що цей підхід зменшує рівень помилок у MNIST та зменшує розміри навчальних наборів. Стверджувалося, що результати були значно кращими, ніж CNN на цифрах, які сильно накладаються.[1]

За початковою ідеєю Гінтона, одна мініколонка повинна була представляти та відстежувати один багатовимірний запис.[5][note 1]

Перетворення ред.

Інваріант — це властивість об'єкта, яка не змінюється в результаті деякого перетворення. Наприклад, площа кола не змінюється, якщо коло зсунути вліво.

Неформально еквіваріант[en] — це властивість, яка прогнозовано змінюється під час перетворення. Наприклад, центр кола переміщується на ту ж величину, що й коло при зсуві.[6]

Нееквіваріант — це властивість, значення якої змінюється непрогнозовано під час перетворення. Наприклад, перетворення кола в еліпс означає, що його периметр більше не може бути обчислений як  , помножений на діаметр.

У комп'ютерному зорі очікується, що клас об'єкта буде інваріантом при багатьох перетвореннях. Тобто кішка залишається кішкою, якщо її переміщують, перевертають догори ногами або зменшують у розмірі. Однак багато інших властивостей є еквіваріантними. Обсяг кота змінюється, при масштабуванні.

Еквіваріантні властивості, такі як просторові відносини, фіксуються в позі, дані, які описують перенесення, обертання, масштабування і дзеркальне відображення[1] об'єкта.

Капсульні мережі некеровано вивчають глобальний лінійний простір між об'єктом і його позою у вигляді матриці ваг. Іншими словами, CapsNet можуть ідентифікувати об'єкт незалежно від його пози, замість того, щоб навчитися розпізнавати об'єкт, включаючи його просторові відносини як частину об'єкта. Крім того, поза може містити властивості, відмінні від просторових відносин, наприклад, колір (кішки можуть бути різних кольорів).

Множення об'єкта на різновид створює об'єкт (для об'єкта в просторі).[7]

Об'єднання ред.

Капсульні нейронні мережі відкидають стратегію агрегувальних шарів звичайних CNN, яка зменшує кількість деталей, що обробляються у наступному шарі. Об'єднання забезпечує певний ступінь трансляційної інваріантності (воно може розпізнавати один і той же об'єкт у дещо іншому місці) і дозволяє представляти більшу кількість типів об'єктів. Прихильники CapsNet стверджують, що агрегація:[1]

  • порушує біологічне сприйняття форми, оскільки не має внутрішньої системи координат;
  • забезпечує інваріантність (відкидання позиційної інформації) замість еквіваріантності (розбір цієї інформації);
  • ігнорує лінійне різноманіття, що лежить в основі багатьох варіацій між зображеннями;
  • маршрутизує статично замість того, щоб повідомляти про потенційну «знахідку» об'єкту, який може його оцінити;
  • пошкоджує довколишні детектори об'єктів, видаляючи інформацію, на яку вони покладаються.

Капсули ред.

Капсула — це набір нейронів, які окремо активуються для різних властивостей типу об'єкта, таких як положення, розмір і відтінок. Формальна капсула — це набір нейронів, які разом створюють вектор активності з одним елементом для кожного нейрона, який містить значення екземпляра цього нейрона (наприклад, відтінок).[1] Графічні програми використовують значення екземпляра для малювання об'єкта. CapsNet намагаються отримати їх зі своїх вхідних даних. Імовірність присутності об'єкта у певному потоці вхідних даних — це довжиною вектора, тоді як орієнтація вектора кількісно визначає властивості капсули.[1][3]

Як правило, штучні нейрони видають скалярну дійсну активацію, яка в загальних рисах представляє ймовірність спостереження. CapsNet замінюють приймачі функцій зі скалярним виводом на капсули з векторним виводом, а максимізаційне агрегування — на маршрутизацію за угодою.[1]

Оскільки капсули незалежні, коли кілька капсул узгоджуються, ймовірність правильного виявлення набагато вища. Мінімальний кластер з двох капсул, що розглядають шестивимірний об'єкт, буде узгодженим з точністю до 10 % випадково лише один раз на мільйон випробувань. Зі збільшенням кількості вимірів імовірність випадкового узгодяться в більшому кластері з більшою кількістю вимірів зменшується експоненціально.[1]

Капсули наступних шарів отримують вихідні дані з капсул попередніх і приймають ті, чиї вихідні дані кластеризуються. Кластер призводить до того, що настуна капсула видає високу ймовірність спостереження присутності об'єкта, а також видає багатовимірну (20 — 50+) позу.[1]

Капсули наступного шару ігнорують відхилення, концентруючись на кластерах. Це схоже на перетворення Хафа, RHT та RANSAC з класичної цифрової обробки зображень.[1]

Маршрутизація за домовленістю ред.

Вихідні дані з однієї капсули (нащадка) спрямовуються до капсул наступного шару (батьків) відповідно до здатності нащадка передбачати вихідні дані батьків. Протягом кількох ітерацій результати кожного з батьків можуть збігатися з прогнозами одних нащадків і відрізнятися від прогнозів інших, що означає, що цей батьківського елемента присутній або відсутній на сцені.[1]

Для кожного можливого батьківського елемента кожний нащадок обчислює вектор прогнозування шляхом множення його вихідних даних на матрицю ваг (навчену шляхом зворотного поширення).[3] Далі вихідні дані батьківського елемента обчислюються як скалярний добуток передбачення з коефіцієнтом, що представляє ймовірність того, що цей нащадок належить цьому батьківському елементу. Нащадок, чиї прогнози відносно близькі до вихідного результату, послідовно збільшує коефіцієнт між цим батьком і дитиною і зменшує його для батьків, яким він відповідає меншою мірою. Це збільшує внесок, який цей нащадок вносить в батьківський, тим самим збільшуючи скалярний добуток прогнозу капсули на вихідні дані батьківського елементу. Після декількох ітерацій коефіцієнти міцно пов'язують батьківський елемент з його найімовірнішими нащадками, вказуючи на те, що присутність нащадка передбачає присутність батьківського елемента на сцені.[1] Чим більше нащадків, чиї прогнози близькі до результатів батьків, тим швидше зростають коефіцієнти, що сприяє зближенню. Поза батька (відображена в його результатах) поступово стає сумісною з позою його нащадків.[3]

Початкові логіти коефіцієнтів — це логарифмічні ймовірності того, що нащадок належить до батьківського елементу. Пріори можна навчати вибірково разом із вагами. Пріори залежать від розташування та типу дочірніх і батьківських капсул, але не від вхідних даних. На кожній ітерації коефіцієнти коригуються за допомогою softmax «маршрутизації» таким чином, щоб вони продовжували дорівнювати 1 (щоб висловити ймовірність того, що дана капсула є батьківською для даного дочірнього елемента). Softmax підсилює великі значення та зменшує менші значення, чим більша їх частка в загальному обсязі. Аналогічно, ймовірність того, що ознака присутня у вхідних даних, перебільшується нелінійною функцією «стискання», яка зменшує значення (менші значення — різко, а більші — так щоб вони були менші за 1).[3]

Цей механізм динамічної маршрутизації забезпечує необхідне знецінення альтернатив («обґрунтування»), яке необхідне для сегментації об'єктів, що перекриваються.

Ця вивчена маршрутизація сигналів не має чіткого біологічного еквівалента. Деякі операції можна знайти в кортикальних шарах, але вони, здається, не пов'язані з цією технікою.

Математика/код ред.

Вектор пози   обертається та перетворюється матрицею   у вектор  , який передбачає вихідні дані батьківської капсули.

 

Капсули   наступного шару отримують суму прогнозів від усіх капсул попереднього, кожен з коефіцієнтом зв'язку  .

 

Процедура softmax ред.

Коефіцієнти зв'язку від капсули   у шарі   до всіх капсул у шарі   підсумовуються до одиниці, та визначаються «softmax маршрутизацією». Початкові логіти[en]   є попередніми логарифмічними ймовірностями для маршрутизації. Це апріорна ймовірність того, що капсула   у шарі   має з'єднатися з капсулою   у шарі  . Нормалізація коефіцієнтів зв'язку:[1]

 

Щоб ця процедура була оптимальною, потрібно запам'ятати кілька значень і скидати ці значення на кожній ітерації. Тобто, якщо вектор   змінюється, то запам'ятовані значення необхідно оновити. Не показано, як це потрібно зробити. Запам'ятовування дільника не показано.[1]

Процедура squash ред.

Оскільки довжина векторів представляє ймовірності, вони повинні бути від нуля (0) до одиниці (1), і для цього застосовується функція стиснення:[1]

 

Вектор, зведений до нуля, має градієнт, що зникає.

Маршрутизація процедури ред.

Один з підходів до маршрутизації полягає в наступному[1]

 

У рядку 8 функція softmax може бути замінена будь-яким типом WTA мереж . Біологічно це дещо нагадує канделяберні клітини, але вони також можуть бути залучені до обчислення коефіцієнтів зв'язку (рядок 9) або обчислення угод (рядок 11).

У рядку 9 показана матриця ваг для коефіцієнтів зв'язку та прихована матриця прогнозування. Структура рівнів I та II дещо схожа на кору головного мозку, якщо припустити, що зірчасті клітини[en] беруть участь у транспонуванні вхідних векторів. Неясно, чи виконують обидва типи зірчастих клітин одну і ту функцію, оскільки рівень I містить колючи клітини, що збуджують, а рівень II має гальмівні аспині клітини. Останнє вказує на зовсім іншу мережу.

У рядку 10 функція squash може бути замінена іншими функціями та мережевими топологіями, які зберігають напрямок вектора.

Процедура виконує   ітерацій, зазвичай 4–5, з   індексом вихідного або первинного рівня капсули, звідки йде маршрут, та рівень капсули   наступний вищий рівень.

Навчання ред.

Навчання є керованим.[3] Мережа навчається шляхом мінімізації евклідової відстані між зображенням і вихідними даними CNN, який відтворює вхідні дані з вихідних даних останніх капсул.[1]

Мережа навчається на основі вибору, використовуючи ітераційну маршрутизацію за угодою.[1]

Вектори активності всіх, крім правильного батьківського елемента, маскуються.[1]

Розподілення втрат ред.

Довжина вектора створення екземпляра представляє ймовірність того, що об'єкт капсули присутній на сцені. Капсула наступного рівня має довгий вектор тоді і тільки тоді, коли присутній пов'язаний з ним об'єкт. Щоб врахувати декілька об'єктів, для кожної капсули розраховується окрема втрата. Зменшення ваги втрат для відсутніх об'єктів зупиняє процес навчання від скорочення довжин векторів активності для всіх об'єктів. Загальні втрати — це сума втрат всіх об'єктів.[1] У прикладі Хінтона функція втрат виглядає так:[1]

 

Цей тип функції втрат поширений в ANN. Параметри   та   встановлені таким чином, щоб довжина не була максимальною або не зменшувалася,   та  . Зменшення ваги початкових ваг для відсутніх класів контролюється  , з   як розумний вибір.[1]

Втрати при відновленні ред.

Додаткова втрата при відновленні спонукає об'єкти кодувати параметри створення своїх вхідних даних. Остаточний вектор активності потім використовується для відновлення вхідного зображення за допомогою декодера CNN, що складається з 3 повністю пов'язаних шарів. Реконструкція мінімізує суму квадратів різниць між виходами логістичних одиниць та інтенсивністю пікселів. Ця втрата від відновлення зменшена на 0,0005, щоб вона не переважала розподілену втрату під час навчання.[1]

Приклад конфігурації ред.

Перші згорткові шари виконують виділення ознак. Для тесту зображення MNIST розміром 28x28 пікселів вхідні 256 згорткових ядер розміром 9x9 пікселів (з використанням активації кроку 1 та випрямленої лінійної одиниці (ReLU), що визначають рецептивне поле 20x20 пікселів) перетворюють вхідні пікселі в активації одновимірних об'єктів та викликають нелінійність.[1]

Первинний (початковий) шар капсул ділить 256 ядер на 32 капсули по 8 ядер 9x9 в кожній (використовуючи крок 2, визначають сприйнятливі поля 6x6). Активація капсул ефективно інвертує процес візуалізації графіків, переходячи від пікселів до об'єктів. Кожна капсула використовує єдину матрицю ваг для всіх рецептивних полів. Кожна первинна капсула бачить усі вихідні дані початкового рівня, поля яких перекриваються з центром поля в первинному шарі. Кожна первинна капсула (для певного поля) являє собою 8-вимірний вектор.[1][3]

Другий шар капсули з цифрами має одну 16-вимірну капсулу для кожної цифри (0-9). Динамічна маршрутизація з'єднує (тільки) первинний і цифровий шар. Матриця ваг [32x6x6] x 10 контролює відображення між шарами.[1]

CapsNet є ієрархічною, оскільки кожна капсула попереднього рівня робить значний внесок лише в одну капсулу наступного рівня.[1]

Однак відтворення набутих знань залишається цінним. Для досягнення цієї мети попередні шари CapsNet є згортковими, включаючи приховані шари капсул. Таким чином, наступні шари охоплюють більші області, зберігаючи при цьому інформацію про точне положення кожного об'єкта в межах області. Для капсул попереднього шару інформація про місцеперебування «закодована» відповідно до того, яка капсула активна. Чим далі, тим більше і більше інформації про місцеперебування кодується у вихідному векторі капсули. Цей перехід від кодування місця до кодування швидкості в поєднанні з тим фактом, що капсули наступних шарів представляють більш складні об'єкти з великою кількістю ступенів свободи, свідчить про те, що розмірність капсули збільшується з номером шару.[1]

Людський зір ред.

Людський зір досліджує послідовність фокусних точок (керованих сакадами), обробляючи лише частину сцени з найвищою роздільною здатністю. Розробка капсульних мереж була натхнена кортикальними мініколоноками в корі головного мозку. Мініколонка — це структура, що містить 80-120 нейронів, діаметром приблизно 28-40 мкм, яка охоплює всі шари кори головного мозку. Усі нейрони у великих мініколонках мають однакове рецептивне поле, і вони видають свої активації у вигляді нервового імпульсу.[1] Нейрони в мікроколонці отримують загальні вхідні дані, мають спільні вихідні дані, взаємопов'язані й можуть становити фундаментальну обчислювальну одиницю кори головного мозку.[8]

Капсульні мережі досліджують наочне уявлення, згідно з яким зорова система людини створює деревоподібну структуру для кожної фокальної точки та координує ці дерева для розпізнавання об'єктів. Проте, за допомогою капсульних мереж кожне дерево «вирізається» з фіксованої мережі (шляхом коригування коефіцієнтів), а не збирається на льоту.[1]

Альтернативи ред.

Стверджується, що капсульні нейроні мережі мають чотири основні концептуальні переваги перед згортковими нейронними мережами (CNN):

  • Інваріантність точки зору: використання матриць поз дозволяє капсульним мережам розпізнавати об'єкти незалежно від перспективи, з якої вони розглядаються.
  • Менша кількість параметрів: оскільки капсули групують нейрони, зв'язки між шарами вимагають меншої кількості параметрів.
  • Краще узагальнення для нових точок зору: CNN, навчені розуміти обертання, часто дізнаються, що об'єкт можна розглядати однаково з декількох різних обертань. Проте капсульні мережі краще узагальнюють нові точки зору, оскільки матриці поз можуть фіксувати ці характеристики у вигляді лінійних перетворень.
  • Захист від атак «білого ящика»: метод швидкого градієнта (FGSM) є типовим методом для атаки на CNN. Він оцінює градієнт кожного пікселя щодо втрати мережі та змінює кожен піксель не більше ніж на епсилон (термін помилки), щоб максимізувати втрати. Хоча цей метод може різко знизити точність CNN (наприклад, нижче 20 %), капсульні мережі зберігають точність вище 70 %.

Повністю згорткові мережі не можуть бути узагальнені на невивчені точки зору (крім перетворення). Для інших афінних перетворень або детектори об'єктів мають повторюватися на сітці, яка зростає експоненціально зі збільшенням кількості вимірювань перетворення, або розмір позначеного навчального набору повинен (експоненціально) розширюватися, щоб охопити ці точки зору. Ці експоненціальні стрибки роблять їх непридатними для вирішення більших завдань.[1]

Матриці перетворення капсульних мереж вивчають (незалежні від точки зору) просторові відносини між частиною і цілим, що дозволяє розпізнавати ціле на основі таких відносин. Проте капсульні мережі припускають, що в кожному місці відображається не більше одного екземпляра об'єкта капсули. Це припущення дозволяє капсулі використовувати розподілене представлення (вектор її активності) об'єкта для представлення цього об'єкта в цьому місці.[1]

Капсульні мережі використовують нейронні активності, які змінюються в залежності від точки зору. Їм не потрібно нормалізувати об'єкти (як у просторових мережах перетворення) і навіть можуть розпізнавати багаторазово трансформовані об'єкти. Капсульні мережі також можуть обробляти сегментовані об'єкти.[1]

Див. також ред.

Замітка ред.

  1. In Hinton's own words this is «wild speculation».

Примітки ред.

  1. а б в г д е ж и к л м н п р с т у ф х ц ш щ ю я аа аб ав аг ад ае аж аи ак Sabour, Sara; Frosst, Nicholas; Hinton, Geoffrey E. (2017-10-26). «Dynamic Routing Between Capsules». arXiv:1710.09829 [cs.CV]. 
  2. Hinton, Geoffrey E.; Krizhevsky, Alex; Wang, Sida D. (14 червня 2011). Transforming Auto-Encoders. Lecture Notes in Computer Science (англ.). Т. 6791. Springer, Berlin, Heidelberg. с. 44—51. CiteSeerX 10.1.1.220.5099. doi:10.1007/978-3-642-21735-7_6. ISBN 9783642217340. {{cite book}}: Проігноровано |journal= (довідка)
  3. а б в г д е ж Srihari, Sargur. Capsule Nets (PDF). University of Buffalo. Архів оригіналу (PDF) за 21 січня 2022. Процитовано 7 грудня 2017.
  4. а б Hinton, Geoffrey E; Ghahramani, Zoubin; Teh, Yee Whye (2000). Solla, S. A.; Leen, T. K.; Müller, K. (ред.). Advances in Neural Information Processing Systems 12 (PDF). MIT Press. с. 463—469. Архів оригіналу (PDF) за 2 липня 2020. Процитовано 26 травня 2022.
  5. Meher Vamsi (15 листопада 2017), Geoffrey Hinton Capsule theory, архів оригіналу за 26 травня 2022, процитовано 6 грудня 2017
  6. Understanding Matrix capsules with EM Routing (Based on Hinton's Capsule Networks). jhui.github.io. Архів оригіналу за 18 квітня 2022. Процитовано 31 грудня 2017.
  7. Tan, Kendrick (10 листопада 2017). Capsule Networks Explained. kndrck.co (англ.). Архів оригіналу за 7 травня 2022. Процитовано 26 грудня 2017.
  8. Microcolumns in the Brain. www.physics.drexel.edu. Архів оригіналу за 27 травня 2018. Процитовано 31 грудня 2017.


Посилання ред.