Які цілі автоенкодерів?


10

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

Чому ми дбаємо про зменшення розмірності, зокрема, використовуючи автокодери? Чому ми не можемо просто використовувати PCA, якщо мета - зменшення розмірності?

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


1
Дивіться також наступне запитання stats.stackexchange.com/q/82416/82135 на CrossValidated SE.
nbro

Відповіді:


6

Важливо подумати про те, які шаблони в даних представлені.

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

Припустимо, замість того, що у вас є набір чорно-білих графічних зображень 128x128px центральних кіл. Як людський мозок, ви швидко зрозумієте, що кожен елемент цього набору даних може бути повністю описаний одним числовим параметром, який є радіусом кола. Це дуже вражаючий рівень зменшення з 16384 двійкових розмірів, і, можливо, що важливіше - це семантично значуща властивість даних. Однак PCA, ймовірно, не зможе знайти цю схему.

Ваше запитання було "Чому ми не можемо просто використовувати PCA, якщо мета - зменшення розмірності?" Проста відповідь полягає в тому, що PCA - це найпростіший інструмент для зменшення розмірності, але він може пропустити безліч зв'язків, які можуть знайти більш потужні методи, такі як автокодери.


3

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

Автокодеки та PCA пов'язані між собою:

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

Для отримання додаткової інформації ознайомтеся з документом « Від основних підрозділів до основних компонентів з лінійними автокодерами» (2018), автор Elad Plaut. Дивіться також цю відповідь , яка також пояснює зв’язок між PCA та автокодерами.


3

PCA - це лінійний метод, який створює перетворення, яке здатне змінювати проекції векторів (зміна осі)

Оскільки PCA шукає напрям максимальної дисперсії, він, як правило, має високу дискримінаційність, Але НЕ гарантує, що напрямок більшої дисперсії є напрямом найбільшої дискримінації.

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

PCA та LDA мають нелінійні версії ядра, які можуть подолати лінійні обмеження.

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

Напевно, немає найкращого алгоритму машинного навчання, щоб зробити що-небудь, іноді Deep Learning та Neural Nets є надмірними для простих проблем, і PCA та LDA можуть бути спробувані перед іншими, більш складними зменшеннями розмірності.


1
Що стосується LDA до питання?
nbro

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

PCA також не гарантує максимальну дисперсію, оскільки алчний алгоритм лише наближає максимум.
Матьє

PCA має закрите рішення, головна вісь завжди буде в напрямку максимальної дисперсії. Це не жадібний алгоритм (але його можна реалізувати як один)
Педро

1
  1. Половина декодера необхідна для обчислення функції втрат для навчання мережі. Подібно до того, як «супротивник» все ще необхідний у GAN, навіть якщо вас цікавить лише генеративний компонент.
  2. Автокодекси можуть вивчити нелінійні вбудовування даних, а значить, і більш потужні, ніж ванільний PCA.
  3. Autoencoder має додатки, що перевищують зменшення розмірності:
    • Генерування нових точок даних або виконання інтерполяції (див. VAE)
    • Створіть фільтри для позначення (наприклад, при обробці зображень)
    • Стиснення / розпакування даних
    • Прогнозування посилань (наприклад, у виявленні наркотиків)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.