Коли я повинен використовувати варіативний автокодер, на відміну від автоенкодера?


20

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

Відповіді:


14

VAE - це рамка, яка була запропонована як масштабований спосіб робити варіаційний ЕМ (або варіаційний висновок взагалі) на великих наборах даних. Хоча має структуру, схожу на AE, вона служить набагато більшій цілі.

Сказавши це, можна, звичайно, використовувати VAE для вивчення прихованих уявлень. Відомо, що VAE дають уявлення з відстороненими факторами [1] Це відбувається через ізотропні гауссові пріори на прихованих змінних. Моделювання їх як гауссів дозволяє кожному виміру в представленні просунути себе якомога далі від інших факторів. Також [1] додав коефіцієнт регуляризації, який контролює вплив попереднього.

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

Повертаючись до питання, як видно, попереднє дає суттєвий контроль над тим, як ми хочемо моделювати наш прихований розподіл. Такого роду контроль не існує у звичайних рамках АЕ. Це насправді сила самих байесівських моделей, VAE просто роблять це більш практичним і можливим для масштабних наборів даних. Отже, підсумовуючи, якщо ви хочете точного контролю над своїми прихованими уявленнями та тим, що ви хотіли б, щоб вони представляли, тоді виберіть VAE. Іноді точне моделювання може зафіксувати кращі уявлення, як у [2]. Однак якщо AE вистачає на роботу, яку ви виконуєте, то просто зайдіть з AE, це досить просто і непросто. Зрештою, з AE ми просто робимо нелінійний PCA.

[1] Рання візуальна концепція навчання з непідконтрольним глибоким навчанням, 2016
Ірина Хіггінс, Лоїк Метті, Ксав'є Глоро, Арка Пал, Беніньо Урія, Чарльз Блонделл, Шакір Мохамед, Олександр Лерхнер
https://arxiv.org/abs/1606.05579

[2] Повторна модель латентної змінної для послідовних даних, 2015 р.
Джунюнг Чунг, Кайл Кастнер, Лоран Дінь, Кратарт Гоел, Аарон Курвіль, Йошуа Бенджо
https://arxiv.org/abs/1506.02216


6

TenaliRaman мав кілька хороших моментів, але він також пропустив багато фундаментальних концепцій. По-перше, слід зазначити, що основною причиною використання AE-подібної рамки є прихований простір, який дозволяє нам стискати інформацію та сподіваємось отримати з неї незалежні фактори, які представляють особливості даних високого рівня. Важливим моментом є те, що, хоча AE можна інтерпретувати як нелінійне розширення PCA, оскільки "X" приховані одиниці охоплюють той самий простір, що і перша "X" кількість основних компонентів, AE не обов'язково виробляє ортогональні компоненти в латентному стані простір (який би становив форму роз'єднання). Крім того, з VAE ви можете отримати вигляд правдоподібності даних (хоча і приблизної), а також вибірки з них (що може бути корисно для різних різних завдань). Однак,

Попередній розподіл, накладений на латентні одиниці в VAE, лише сприяє встановленню моделі завдяки терміну дивергенції KL, який [1] посилання просто додав множник гіперпараметра на цей термін і отримав з нього повний папір (більшість із них є досить очевидно). По суті, "неінформативним" пріоритетом є той, який окремо має розбіжність KL, близький до нуля, і не сприяє значним втратам, тобто певна одиниця не використовується для реконструкції в декодері. Роз'єднання вступає в гру на VAE природно, тому що, у найпростішому випадку мультимодальних даних, вартість дивергенції KL нижча за наявності унікального прихованого гауссова для кожного режиму, ніж якщо модель намагається захопити декілька режимів за допомогою одного Гаусса (який би розходився далі від попереднього, оскільки сильно штрафується за рахунок дивергенції KL) - таким чином, ведучий до роз'єднання в латентних одиницях. Тому VAE також природно піддається більшості джерел даних через статистичні наслідки, пов'язані з цим.

Для AE також існують рамки, що накладають рідкість, але, на жаль, я не знаю жодної статті, яка б порівнювала VAE з AE строго на основі латентного представлення простору та роз'єднання. Мені дуже хотілося б побачити щось на цій арені - оскільки АЕ набагато простіше тренуватися, і якби вони могли досягти такої користі, як розмежування, як VAE у прихованому просторі, то вони, очевидно, віддадуть перевагу. У відповідній записці я також бачив певні обіцянки методів ICA (і нелінійних ICA), але ті, які я бачив, змусили прихований простір бути такого ж виміру, що і дані, що не є настільки корисним, як AE для вилучення функцій високого рівня.


3

Стандартний автокодер може бути проілюстрований за допомогою наступного графіка: введіть тут опис зображення

Як зазначено в попередніх відповідях, це може розглядатися як лише нелінійне розширення PCA.

Але порівняно з варіаційним автокодером автоенкодер ванілі має такий недолік:

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

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

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

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

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

Тоді навіть для одного і того ж вводу декодований вихід може змінюватися, і кодовані та кластеризовані входи стають гладкими:

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

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

Довідка:
інтуїтивно зрозумілі варіативні автокодери


1

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

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


Коли ви говорите про "вибір розподілу", про який розподіл ви говорите? p (z), p (z | x), p (x | z) чи всі вони? Я бачив лише використання звичайного розподілу або розподілу Бернуллі, чи знаєте ви про будь-яку роботу, яка порівнює продуктивність, використовуючи різні розподіли? Що стосується вашого другого пункту, я не можу зрозуміти, чому варіаційний автокодер буде робити кращу роботу, ніж звичайний автокодер, ви могли б розробити? Спасибі.
DiveIntoML
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.