Важливість нормалізації локальної реакції в CNN


41

Я виявив, що Imagenet та інші великі CNN використовують локальні шари нормалізації відповіді. Однак я не можу знайти про них стільки інформації. Наскільки вони важливі і коли їх слід використовувати?

З http://caffe.berkeleyvision.org/tutorial/layers.html#data-layers :

"Рівень нормалізації локальної відповіді виконує своєрідне" бічне гальмування "шляхом нормалізації над локальними вхідними регіонами. У режимі ACROSS_CHANNELS локальні регіони поширюються по сусідніх каналах, але не мають просторової міри (тобто вони мають форму local_size x 1 x 1) . У режимі WITHIN_CHANNEL локальні регіони розширюються просторово, але знаходяться в окремих каналах (тобто вони мають форму 1 x local_size x local_size). Кожне вхідне значення ділиться на (1+ (α / n) ∑ix2i) β, де n - це розмір кожного локального регіону, і сума береться за область, відцентровану за цією величиною (нульова підкладка додається там, де необхідно).

Редагувати:

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

Відповіді:


20

Здається, що такі види шарів мають мінімальний вплив і вже не використовуються. В основному, їх роль відмічена іншими методами регуляризації (такими як нормалізація випадання та партії), кращими ініціалізаціями та методами навчання. Це те, що написано в конспектах лекцій для Stanford Course CS321n на ConvNets:

Нормалізаційний шар

Багато типів шарів нормалізації запропоновано для використання в архітектурах ConvNet, іноді з намірами впровадити схеми гальмування, що спостерігаються в біологічному мозку. Однак останнім часом ці шари вийшли з ладу, оскільки на практиці їхній внесок виявився мінімальним, якщо такий є. Про різні типи нормалізації дивіться в дискусії в API бібліотеки cuda-convnet Олексія Крижевського.


20

Дійсно, здається, що в одному місці немає хорошого пояснення. Найкраще читати статті звідки:

Оригінальна стаття AlexNet трохи пояснює в Розділі 3.3:

  • Крижевський, Суцкевер та Хінтон, Класифікація ImageNet з глибокими конволюційними нейронними мережами, NIPS 2012. pdf

Точний спосіб зробити це було запропоновано в (але тут не так багато додаткової інформації):

  • Кевін Джарретт, Корай Кавуккуоглу, Марк Ауреліо Ранзато та Ян Лекун, яка найкраща багатоетапна архітектура для розпізнавання об'єктів ?, ICCV 2009. pdf

Це надихнуло обчислювальну нейронауку:

  • С. Лю та Е. Сімончеллі. Нелінійне зображення зображення з використанням подільної нормалізації. CVPR 2008. pdf . Цей документ заглиблюється в математику і відповідає відповіді seanv507.
  • [24] Н. Пінто, Д. Д. Кокс та Дж. Дж. Дікарло. Чому розпізнавання вірусного об'єкта в реальному світі важко? Комп'ютерна біологія PLoS, 2008.

15

XXTX

Оптимальним рішенням було б сфера / відбілити вхідні дані до кожного нейрона, однак це обчислювально занадто дорого. LCN можна обґрунтувати як приблизне відбілювання, грунтуючись на припущенні високого ступеня кореляції між сусідніми пікселями (або каналами). Отже, я б сказав, що вигода полягає в тому, що поверхня помилок є більш доброякісною для SGD ... Один коефіцієнт навчання працює добре по вхідних розмірах (кожного нейрона)


2
Нормалізація партії: прискорення глибокої підготовки до мережі за рахунок скорочення внутрішнього коваріатного зсуву Сергій Іоффе, Крістіан Іоґед, Крістіан Сегеді, arxiv.org/abs/1502.03167 зробив (ретельно спроектований) переосмислення входів нейрону і досягти значних прискорень, використовуючи більші темпи навчання.
seanv507

Ви можете відредагувати цю інформацію у своїй відповіді за допомогою кнопки редагування під текстом відповіді.
Відновіть Моніку

10

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

Мотивація: " Цей тип нормалізації відповіді (LRN) реалізує форму бічного гальмування, натхненну типом, знайденим у реальних нейронах, створюючи конкуренцію за велику активність серед вихідних нейронів, обчислених за допомогою різних ядер. ' AlexNet 3.3

Іншими словами, LRN дозволяє зменшити відповіді, однаково великі для мікрорайону, і зробити велику активацію більш вираженою в межах околиці, тобто створити більш високий контраст на карті активації. prateekvjoshi.com стверджує, що це особливо корисно з необмеженими функціями активації як RELU.

Оригінальна формула: Для кожної конкретної позиції (x, y) та ядра i, яка відповідає одному виводу "пікселя", ми застосовуємо "фільтр", який включає інформацію про виходи інших n ядер, застосованих до тієї ж позиції. Ця регуляризація застосовується перед функцією активації. Дійсно, ця регуляризація спирається на порядок ядер, який, наскільки мені відомо, просто нещасний збіг.

LRN

На практиці (див. Caffe ) можна використовувати 2 підходи:

  1. WITHIN_CHANNEL. Нормалізувати місцеве сусідство одного каналу (відповідає одному згортковому фільтру). Іншими словами, розділіть відповідь одного каналу одного пікселя відповідно до вихідних значень того ж нейрона для пікселів поблизу.
  2. ACROSS_CHANNELS. Для одного пікселя нормалізуйте значення кожного каналу відповідно до значень усіх каналів для одного пікселя

Фактичне використання LRN частіше використовувались у дні ранніх конвертів, таких як LeNet-5. Поточна реалізація GoogLeNet (Inception) у Caffe часто використовує LRN у зв’язку з методами об'єднання, але, здається, це робиться заради того, щоб просто мати його. Ні оригінальний Inception / GoogLeNet ( тут ), ні будь-яка з наступних версій жодним чином не згадують LRN. Крім того, TensorFlow реалізація Inception (надається та оновлена ​​командою оригінальних авторів) мереж не використовує LRN, незважаючи на те, що вона доступна.

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


Я також додам, що LRN - це своєрідна «нормалізація конкуренції», згідно зі сторінкою 374 у Géron, Aurélien. Ручне машинне навчання за допомогою Scikit-Learn та TensorFlow: концепції, інструменти та методи побудови інтелектуальних систем. "O'Reilly Media, Inc.", 2017 . (Я згадую це, оскільки Гінтон називає це лише "нормалізацією конкуренції" в лекції " Конволюційні мережі" для розпізнавання об'єктів у своєму курсі.
Орен Мілман

7

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

src- https://code.google.com/p/cuda-convnet/wiki/LayerParams#Local_response_normalization_layer_(same_map)


0

i

xi=xi(k+(αjxj2))β

k,α,βRκ=0α=1β=12

Однак є набагато новіша методика, що називається "пакетна нормалізація" (див. Папір ), яка працює досить схоже і пропонує більше не використовувати LRN. Пакетна нормалізація також працює піксельно:

y=xμσ2+ϵγ+β

μσ2ε>0γ,βR

Отже, відповідь така: Місцева нормалізація реакції вже не важлива, тому що у нас є щось, що працює краще і замінило LRN: Пакетна нормалізація.

Дивитися також


Я думаю, що це не правильно. LRN застосовується у висновку ядра, а не вхідного (хоча Alexnet використовує нормалізацію вводу, але це окремо).
Шітал Шах
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.