Яка різниця між розведеною згорткою і деконволюцією?


11

Ці дві згорткові операції зараз дуже поширені в глибокому навчанні.

Про розширений згортковий шар я читав у цій статті: WAVENET: ЗАГАЛЬНА МОДЕЛЬ ДЛЯ RAW AUDIO

і Деконволюція знаходиться в цій статті: Повністю згорткові мережі для семантичної сегментації

Як здається, обидва знімають зображення, але в чому різниця?

Відповіді:


9

На зразок механістичних / образотворчих / образних термінів:

Розширення: ### ДИВІТТЕ КОМЕНТАРИ, РОБОТИ НА ВИКОРИСТАННЯ ЦЕЙ РОЗДІЛ

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

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

Щоб зробити це більш конкретним, давайте візьмемо дуже простий приклад:
скажіть, у вас зображення 9x9, x без прокладки. Якщо взяти стандартне ядро ​​3x3, з кроком 2, першим підмножиною, що викликає занепокоєння, буде x [0: 2, 0: 2], і всі дев'ять пунктів у цих межах будуть розглянуті ядром. Потім ви змітаєте х [0: 2, 2: 4] тощо.

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

Але якщо ви не хочете додавати більше шарів і / або вважаєте, що передана інформація є надмірно зайвою (тобто ваші 3x3 сприйнятливі поля у другому шарі фактично несуть кількість "2x2" різної інформації), ви можете використовувати розширений фільтр. Давайте будемо дуже чіткі для цього для наочності і скажемо, що ми будемо використовувати 9x9 3-х діалектний фільтр. Тепер наш фільтр "обведе" весь вхід, тому нам зовсім не доведеться його ковзати. Однак ми все одно займемо лише 3x3 = 9 точок даних із вхідних даних, x , як правило:

x [0,0] U x [0,4] U x [0,8] U x [4,0] U x [4,4] U x [4,8] U x [8,0] U x [8,4] U x [8,8]

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


Дробово-ступінчаста або транспонірована або "деконволюція":

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

У нашому випадку 9x9 раніше, скажімо, ми хочемо тепер збільшити вибірку до 11x11. У цьому випадку у нас є два загальних варіанти: ми можемо взяти ядро ​​3x3 і з кроком 1 і перемістити його над нашим входом 3x3 за допомогою 2-padding, щоб наш перший прохід опинився над регіоном [left-pad-2: 1, нагорі-pad-2: 1], потім [зліва-pad-1: 2, вище-pad-2: 1] тощо і так далі.

Крім того, ми можемо додатково вставити прокладку між вхідними даними та промітати ядро ​​над нею, не маючи великого розміру. Зрозуміло, що ми іноді будемо ставитися до себе з однаковими однаковими вхідними точками не раз для одного ядра; саме тут термін "частково стурбований" видається більш обґрунтованим. Я думаю, що наступна анімація (запозичена звідси та заснована (я вважаю) поза цією роботою) допоможе очистити речі, незважаючи на те, що вони мають різні розміри. Вхід блакитний, білі введені нулі та накладки, а вихід зелений:

транспонтований conv, вхід синій, вихід зелений

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

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


1
Будь ласка, майте на увазі, я не фахівець, - просто хтось, кому нещодавно довелося сам розрізняти ці поняття. Будь ласка, повідомте мені про наявність явних помилок або надмірних спрощень, які можуть підірвати загальну правильність відповідей. Дякую!
— Дуг Бруммельл

Дуг Бруммель Вау чудово поясніть. У мене була така ж ідея. Мені хотілося б дізнатися вашу думку щодо застосування розширеної згортки. Як нам почати застосовувати це в CNN. Чи слід спочатку до якоїсь нормальної згортки, а потім застосовувати розширене конолюція? Інша річ, розширена згортка може пропустити інформацію, якщо ми не будемо нульового майданчика. Тож я думаю, що нам слід застосовувати розширену згортку після кількох нормальних шарів конвенту?
— Shamane Siriwardhana

Я вважаю, що стандартна ідея - збільшити кількість розширення, що рухається вперед, починаючи з нерозмитих, регулярних фільтрів на l = 1, рухаючись до 2-, а потім 3-розширених фільтрів тощо, по мірі просування по глибині мережі. Це дозволяє переконатися, що всі дані в одному шарі передаються в наступний (в тому числі, що важливо, в саму мережу), одночасно дозволяючи експоненціально швидше зменшувати вибір з кожним шаром, але без параметрів збільшення. Мета - широкі сприйнятливі поля без шкоди для включення даних. І так, увага до підкладки повинна бути важливою на початку.
— Дуг Бруммельл

Див. [Цю статтю] ( arxiv.org/pdf/1511.07122.pdf ), на неї посилалося вище і було добре розказано про те, що я прочитав по темі.
— Дуг Бруммельл

Ще одне, що в цьому документі зазначено, що втрати роздільної здатності в такій дилатаційній схемі зростаючої втрати ... Я думаю, я просто насторожуюсь щодо інших втрат, які я можу покрити під "роздільною здатністю". Звичайно, якщо ви можете замінити купу шарів conv меншою кількістю розширених і зберегти точність, чудово, ви абсолютно повинні. Але мені (і мені доведеться повернутися до книг про це), я думаю про можливі втрати у випадку, коли ти архітектор з самого початку з розширенням ...
— Doug Brummell

5

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

Спочатку ми говоримо про розведену згортку

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

Ось розширена діаграма згортки з статті .

Зображення 3

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

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

Блог: Розширені згортки та факторні згортки Kronecker

Зараз я поясню, що таке Деконволюція

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

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

Ось хороший ресурс із картинками .

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

Таким чином, більше Deconvolution - це шар, що засвоюється до вибору.

Це намагається навчитися робити вибірку, поєднуючись із остаточною втратою

Це найкраще пояснення, яке я знайшов для деконволюції. Лекція 13 в cs231, починаючи з 21.21 .


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