Зворотні шари: накладати чи не прокладати?


19

Архітектура AlexNet використовує нульові прокладки, як показано на малюнку: введіть тут опис зображення Однак у статті немає пояснень, чому це введення вкладено

Курс Standford CS 231n вчить, що ми використовуємо набивки для збереження просторових розмірів: введіть тут опис зображення

Мені цікаво, це єдина причина, коли нам потрібні набивки? Я маю на увазі, якщо мені не потрібно зберігати просторовий розмір, чи можу я просто видалити прокладки? Я знаю, що це призведе до дуже швидкого зменшення просторових розмірів, коли ми переходимо на більш глибокі рівні. Однак я можу це компенсувати, видаляючи об'єднання шарів. Я був би дуже радий, якби хто-небудь міг дати мені обґрунтування за нульовим накладом. Спасибі!

Відповіді:


20

Є кілька причин, що важливо:

  1. Простіше спроектувати мережі, якщо ми збережемо heightі widthне потрібно занадто турбуватися про розміри тензорів при переході від одного шару до іншого, оскільки розміри просто "працюватимуть" .

  2. Це дозволяє нам проектувати більш глибокі мережі . Без оббивки зменшення обсягу зменшилось би занадто швидко.

  3. Прокладка фактично покращує продуктивність, зберігаючи інформацію на кордонах .

Цитата зі лекцій Стенфорда: "На додаток до вищезгаданої переваги постійного збереження просторових розмірів після CONV, це фактично покращує продуктивність. Якщо шари CONV не повинні вводити нульові вкладки та виконувати лише дійсні згортки, то розмір обсяги зменшуються на невелику кількість після кожного CONV, і інформація на кордонах буде занадто швидко "змита" ". - джерело

  1. Як уже сказано @dontloo, новим мережевим архітектурам потрібно об'єднати згорткові шари з фільтрами 1x1, 3x3 і 5x5, і це було б неможливо, якби вони не використовували прокладки, оскільки розміри не відповідали б. Перевірте це зображення початкового модуля, щоб краще зрозуміти, чому корисні накладки тут.

введіть тут опис зображення


4
Чому нульова накладка настільки всюдисуща? При обробці зображень використовується багато різних режимів облямування, такі як різні типи дзеркального відображення або продовження значення на межі. Чисті нулі мають дуже різну структуру порівняно з реальними зображеннями / особливостями.
ісаранді

3

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

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

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


2

Чудове запитання. Drag0 добре пояснив, але я згоден, щось не так.

Це як дивитися на фотографію і мати справу з кордоном. У реальному житті ви можете рухати очима, щоб дивитися далі; Реальних кордонів немає. Тож це обмеження середовища.

Окрім збереження розміру, це має значення? Я не знаю задовільної відповіді, але гадаю (недоведено), що експерименти з уваги та оклюзії (часткові об'єкти) нам не потрібні, втрачена на кордонах інформація. Якби ви зробили щось розумніше (скажімо, скопіюйте піксель поруч), це не змінило б відповідь, хоча я сам не експериментував. Прокладка з 0s - це швидко і зберігає розмір, тому ми це робимо.


1

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

а як щодо останнього часу? Роздільна здатність векторного зображення дуже мала, а значення пікселя означає своєрідний вектор якогось глобального розміру.

Я думаю, що в останньому випадку якесь дзеркальне відображення краще, ніж нульове набивання.


1

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


1

Я спробую сказати з погляду інформації, що коли це добре, щоб прокладати і коли це не так.

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

Ця втрата інформації залежить від розміру ядра або фільтра, який ви використовуєте. Наприклад, скажімо, у вас є зображення розміром 28x28, а розмір фільтра - 15x15 (скажімо). Вихід повинен мати розмір 16x16, але якщо ви використовуєте "те ж" у тензорфлоу, це буде 28x28. Тепер 12 рядків і 12 стовпців самі по собі не несуть ніякої змістовної інформації, але все ще існують як форма шуму. І всі ми знаємо, наскільки сприйнятливі моделі глибокого навчання щодо шуму. Це може сильно погіршити навчання. Тож якщо ви використовуєте великі фільтри, краще не переходьте з прокладками.

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