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

Як візуалізується вище, ми можемо взяти маркований набір даних і сформулювати його як контрольовану навчальну задачу, завдання якої - вивести $ \ hat x $, a реконструкція вихідного вводу $ x $. Цю мережу можна навчити, мінімізуючи помилку відновлення $ \ left (\ right) $, яка вимірює різницю між нашим початковим введенням та подальшою реконструкцією. Вузьке місце - це ключовий атрибут нашого мережевого дизайну; без присутності інформаційного вузького місця наша мережа могла б легко навчитися просто запам’ятовувати вхідні значення, передаючи ці значення по мережі (візуалізується нижче).
Вузьке місце обмежує обсяг інформації, яка може пройти повну мережу, змушуючи навчене стиснення вхідних даних.
Примітка: Насправді, якби ми побудували лінійну мережу (тобто без використання нелінійних функцій активації на кожному шарі), ми спостерігали б подібне зменшення розмірності, як це спостерігається в PCA. Див. Обговорення цього питання Джеффрі Хінтоном тут.
Ідеальна модель автокодера врівноважує наступне:
- Чутливий до входів, достатній для точного побудови реконструкції.
- Настільки нечутливий до входів, що модель не просто запам’ятовує чи перенавантажує дані навчання.
Цей компроміс змушує модель підтримувати лише зміни в даних, необхідних для реконструкції вхідних даних, не тримаючись за надмірності всередині вхідних даних. У більшості випадків це включає побудову функції збитків, де один термін спонукає нашу модель бути чутливою до вхідних даних (тобто. Втрати при реконструкції $ \ left (\ right) $), а другий термін не стримує запам'ятовування/переобладнання (тобто доданий регулятор ).
Зазвичай ми додаємо параметр масштабування перед терміном регуляризації, щоб ми могли регулювати компроміс між двома цілями.
У цій публікації я обговорюватиму деякі стандартні архітектури автокодерів для накладання цих двох обмежень та налаштування компромісу; у наступному дописі я обговорюватиму варіаційні автокодери, що спирається на обговорені тут концепції, щоб надати більш потужну модель.
Неповний автокодер
Найпростіша архітектура побудови автокодера полягає у обмеженні кількості вузлів, присутніх у прихованих рівнях (мережах) мережі, обмежуючи обсяг інформації, яка може протікати через мережу. Штрафуючи мережу відповідно до помилки реконструкції, наша модель може дізнатися найважливіші атрибути вхідних даних та як найкраще відновити вихідний вхід із "закодованого" стану. В ідеалі це кодування буде вивчити та описати приховані атрибути вхідних даних.
Оскільки нейронні мережі здатні вивчати нелінійні взаємозв'язки, це можна розглядати як більш потужне (нелінійне) узагальнення PCA. У той час як PCA намагається виявити нижню розмірну гіперплощину, яка описує вихідні дані, автокодери здатні вивчати нелінійні різноманітності (колектор визначається простими словами як суцільна, не перетинається поверхня). Різниця між цими двома підходами наведена нижче.
Для даних із більшими розмірами автокодери здатні вивчити складне представлення даних (колектора), яке можна використовувати для опису спостережень у меншій розмірності та відповідно декодувати у вихідному просторі введення.
Неповний автокодер не має чіткого терміну регуляризації - ми просто тренуємо свою модель відповідно до втрат на реконструкцію. Таким чином, наш єдиний спосіб переконатись, що модель не запам’ятовує вхідні дані, це гарантувати, що ми достатньо обмежили кількість вузлів у прихованих шарах.
Для глибоких автокодерів ми також повинні знати про потужність наших моделей кодерів та декодерів. Навіть якщо "шар вузького місця" - це лише один прихований вузол, наша модель все одно може запам'ятовувати навчальні дані за умови, що моделі кодера та декодера мають достатню здатність вивчати якусь довільну функцію, яка може зіставити дані в індекс.
Враховуючи той факт, що ми хотіли б, щоб наша модель виявляла приховані атрибути в наших даних, важливо переконатися, що модель автокодера не просто вивчає ефективний спосіб запам’ятовувати дані навчання. Подібно до контрольованих проблем навчання, ми можемо застосовувати різні форми регуляризації мережі, щоб заохотити добрі властивості узагальнення; ці методи обговорюються нижче.
Розріджені автокодери
Розріджені автокодери пропонують нам альтернативний метод введення інформаційного вузького місця, не вимагаючи зменшення кількості вузлів на наших прихованих шарах. Навпаки, ми побудуємо свою функцію втрат таким чином, щоб карати активації всередині шару. Для будь-якого даного спостереження ми заохочуватимемо нашу мережу вивчати кодування та декодування, яке покладається лише на активацію невеликої кількості нейронів. Варто зазначити, що це інший підхід до регуляризації, оскільки ми зазвичай регулюємо ваги мережі, а не активації.