[Це питання також було задано при переповненні стека]
Питання коротше
Я вивчаю конволюційні нейронні мережі, і вважаю, що ці мережі не розглядають кожен вхідний нейрон (піксель / параметр) рівномірно. Уявіть, у нас є глибока мережа (багато шарів), яка застосовує згортання на деяке вхідне зображення. Нейрони в "середині" зображення мають багато унікальних шляхів до багатьох нейронів більш глибокого шару, а це означає, що невелика варіація середніх нейронів сильно впливає на вихід. Однак нейрони на краю зображення мають лише шлях (або, залежно від точної реалізації, порядку ) шляхи, по яких їх інформація протікає через графік. Здається, що це "недостатньо представлені".
Мене це хвилює, оскільки ця дискримінація крайових нейронів масштабується експоненціально з глибиною (кількістю шарів) мережі. Навіть додавання шару максимального об'єднання не зупинить експоненціальне збільшення, лише повне з'єднання зрівняє всі нейрони на рівних умовах. Я не переконаний, що мої міркування правильні, тому мої запитання:
- Я правий, що цей ефект має місце в глибоких згорткових мережах?
- Чи існує якась теорія з цього приводу, вона коли-небудь згадувалася в літературі?
- Чи є способи подолати цей ефект?
Оскільки я не впевнений, чи це дає достатню інформацію, я детальніше розкажу про постановку проблеми, і чому я вважаю, що це викликає занепокоєння.
Більш детальне пояснення
Уявіть, у нас є глибока нейронна мережа, яка сприймає зображення як вхід. Припустимо, що ми застосовуємо згортковий фільтр розміром пікселі над зображенням, де ми щоразу зміщуємо вікно згортки на пікселі. Це означає, що кожен нейрон на вході посилає свою активацію до нейронів у рівні . Кожен з цих нейронів може направити свою активацію на інші , таким чином, щоб наш найвищий нейрон був представлений у вихідних нейронах тощо.
Однак це не стосується нейронів на краях: вони можуть бути представлені лише у невеликій кількості вікон згортки, таким чином вони змушують активувати (на порядок) лише нейрон у наступному шарі. Використання таких прийомів, як дзеркальне відображення по краях, не допоможе цьому: нейрони нейронів другого шару все ще знаходяться на краях, а це означає, що нейрони другого шару будуть недостатньо представлені (тим самим обмежуючи важливість наші крайові нейрони також). Як видно, ця невідповідність масштабується експоненціально з кількістю шарів.
Я створив зображення для візуалізації проблеми, яку можна знайти тут (мені заборонено включати зображення до самої публікації). Ця мережа має вікно згортання розміром . Числа поруч з нейронами вказують на кількість шляхів до найглибшого нейрона. Зображення нагадує трикутник Паскаля .
https://www.dropbox.com/s/7rbwv7z14j4h0jr/deep_conv_problem_stackxchange.png?dl=0
Чому це проблема?
Цей ефект не здається проблемою з першого погляду: в принципі, ваги повинні автоматично регулюватися таким чином, щоб мережа виконувала свою роботу. Більше того, краї зображення не так важливі для розпізнавання зображень. Цей ефект може не бути помітним у повсякденних тестах на розпізнавання зображень, але він все ж стосується мене через дві причини: 1. узагальнення до інших програм та 2. проблеми, що виникають у випадку дуже глибоких мереж.
1. Можуть бути й інші програми, такі як розпізнавання мови чи звуку, де неправда, що нейрони середнього рівня є найважливішими. Застосування згортки часто робиться в цій галузі, але мені не вдалося знайти жодної статті, яка б згадувала про ефект, який мене хвилює.
2. Дуже глибокі мережі помітять експоненціально поганий ефект дискримінації прикордонних нейронів, а це означає, що центральні нейрони можуть бути завищені на кілька порядкових розмірів (уявімо, у нас є шарів таким чином, що вищенаведений приклад дав би способів центральні нейрони можуть проектувати свою інформацію). У міру збільшення кількості шарів, один повинен досягти межі, коли ваги неможливо компенсувати цей ефект.
А тепер уявіть, що ми збурюємо всі нейрони невеликою кількістю. Центральні нейрони призведуть до того, що вихід буде сильніше змінюватися на кілька порядків порівняно з реберними нейронами. Я вважаю, що для загальних програм та для дуже глибоких мереж слід знайти шляхи навколо моєї проблеми?