Яка архітектура складеного згорткового автокодера?


23

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

Запитання:

  • Я можу мати свій вхід, після якого проходить шар шуму, а потім шар conv, а потім шар об'єднання - там після - чи я зніму пул, перш ніж давати вихід (який є таким же моїм вхідним зображенням)?

    Скажіть, у мене є декілька (135 240) зображень. Якщо я використовую 32, (12,21) ядра з подальшим об'єднанням (2,2), я отримаю 32 (62, 110) карти функцій. Тепер я де-делінгую, щоб отримати 32 (124, 220) карти зображень, а потім згладити їх? перед тим, як надати мій (135 240) вихідний шар?

  • Якщо у мене є кілька таких шарів conv-пулу, чи варто тренувати їх один за одним - як у складених позначених автоенкодерах? Або - чи можу я мати щось на кшталт input-conv-pool-conv-pool-conv-pool-output (вихід такий же, як і input)? У такому випадку, як слід керувати об'єднанням, депонуванням? Чи повинен я дезаліювати лише останній шар пулу перед виходом? І знову ж таки - яким повинен бути коефіцієнт зміни цього дезолідування? Чи є намір повернути карти зображень у форму вхідних даних?

  • Чи слід вводити шари шуму після кожного шару conv-pool-depool?

  • І тоді, коли ви точно налаштовуєте - я повинен просто видалити шари для деолінгування, а решту залишити так само. Або я повинен видалити як шумові, так і шари дезолірування

  • Чи може хтось вказати мені на URL / папір, який детально розробив архітектуру такого складеного згорткового автоматичного кодера, щоб пройти попередню підготовку зображень?

Відповіді:


12

Зараз я досліджую складені згортки автокодери.

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

  1. Так, для відновлення вихідного зображення вам доведеться "обернути" пул, а потім згорнути набір фільтрів. Стандартною нейронною мережею (враховуючи дані MNIST як вхідні, тобто розміри входу 28x28) буде:

        28x28(input) -- convolve with 5 filters, each filter 5x5 -->  5 @ 28 x 28 maps -- maxPooling --> 5 @ 14 x 14 (Hidden layer) -- reverse-maxPool --> 5 @ 28 x 28 -- convolve with 5 filters, each filter 5x5 --> 28x28 (output)
    
  2. Я розумію, що звичайно це потрібно робити, тобто тренувати кожен шар окремо. Після цього ви укладаєте шари і тренуєте всю мережу ще раз, використовуючи попередньо підготовлені ваги. Однак Yohsua Bengio проводить деякі дослідження (посилання уникає моєї пам’яті), показуючи, що можна було побудувати повністю складену мережу і тренуватися з нуля.

  3. Я розумію, що "рівень шуму" є для того, щоб ввести надійність / мінливість вхідних даних, щоб навчання не було надмірним.

  4. Поки ви все ще «тренуєтеся» перед підготовкою чи точним налаштуванням, я вважаю, що частина реконструкції (тобто зворотний пул, де-згортання тощо) необхідна. Інакше як слід виконати розповсюдження помилок назад для налаштування ваг?

  5. Я намагався переглядати численні статті, але архітектура ніколи не пояснюється в повному обсязі. Якщо ви знайдете будь-яке, будь ласка, повідомте мене.


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

2
Як можливий "reverse-maxPool"? Ніколи не можна реконструювати набір чисел, заданих лише максимумом ...?
Фекіш

1
@Fequish, його приблизний зворотний макспул, наприклад: якщо пул = 2x2, я зберігаю положення максимуму і вставляю макс у цю конкретну позицію в 2х2, решта - 0
user2979010

1
@jwalker, моєю кінцевою метою була не класифікація, отже, точне налаштування з розкрученою мережею
user2979010

@Fequish, з метою розшифровки реверс - це лише найближчий підхід сусіда.
jwalker

2

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

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

  1. Той, який ви згадали, використовуючи пуллінг, - unpooling.
  2. Шари (convolve) __ x_times -> (deconvolve) __ x_times,

    і отримати той же розмір, що і вхідний.

  3. (convolve -> pool) __ x_times -> (строгий деконволюція) __ y_times
    • підкладка та кроки вибираються таким чином, щоб кінцевий розмір зображення був таким самим, як оригінальне зображення.
    • Довідково

2
Ласкаво просимо на сайт. Чи це було задумано як відповідь на запитання ОП, коментар із запитом роз'яснення від ОП чи одного з відповідачів, або нове власне питання? Будь ласка, використовуйте лише поле "Ваша відповідь", щоб дати відповіді на початкове запитання. Ви зможете прокоментувати де завгодно, коли ваша репутація буде> 50. Якщо у вас є нове запитання, натисніть сірий ASK QUESTION у верхній частині сторінки і задайте його там, тоді ми можемо допомогти вам належним чином. Оскільки ви тут новачок, ви можете скористатися нашою екскурсією , де є інформація для нових користувачів.
gung - Відновіть Моніку

1
Він був розроблений як відповідь на питання ОП, хоча він не може бути повною відповіддю. Я відповідав останньою частиною: «Я спробував переглядати численні статті, але архітектура ніколи не пояснюється повністю. Якщо ви знайдете будь-яке, будь ласка, повідомте мене.
Анкітп

Добре, дякую. Спосіб його виходу неоднозначний. Наприклад, "Я також шукав ..." та "Будь-які подальші посилання на документи чи реалізацію дуже допоможуть". Майте на увазі, що резюме - це чистий веб-сайт з питань питань, а не дискусійний форум. Чому б не взяти наш тур і дізнатися більше про сайт?
gung - Відновити Моніку

-1

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

input-> conv-> max_poo-> de_max_pool-> de_conv-> вихід.

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

https://arxiv.org/pdf/1701.04949.pdf

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