Auto-Encoder

Оновлено: 31.07.2023

Що таке автокодер?

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

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

Як працює автокодер?

Автокодери складаються з чотирьох основних компонентів:

  • Кодер: Модель навчається стискати вхідні дані у закодовану форму, зменшуючи розмір вхідних даних.
  • Шар, який включає стиснене представлення вхідних даних, називається вузьким місцем. Це найменший розмір вхідних даних, який можна собі уявити.
  • Декодер: Коли модель навчається відновлювати дані з закодованого представлення якомога ближче до початкових вхідних даних, вона називається декодером.
  • Втрати при реконструкції: Це метод визначення того, наскільки добре працює декодер і наскільки вихідні дані близькі до початкових.
.

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

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

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

Реалізації автокодера

Автокодери в глибинному навчанні можуть використовуватися для усунення шуму, розфарбовування зображень і виконання безлічі інших завдань:

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

Типи автокодерів

  • CAE: Згорткові автокодери навчаються кодувати вхідні дані у набір базових сигналів, а потім відновлюють вхідні дані з цих сигналів після того, як вони навчилися їх кодувати. Використовуючи CAE, ми також можемо змінювати геометрію або створювати відбивну здатність зображення. У цій формі автокодування використовується шар деконволюції, тоді як шар кодування називається шаром згортки. Сторона деконволюції також називається підвищеною вибіркою або транспонованою згорткою.
  • Варіаційні автокодери: Ці автокодери мають можливість створювати нові зображення. Коли йдеться про розподіл латентних змінних, моделі, що використовують варіаційні автокодери, як правило, роблять сильні припущення. Через це вони використовують стохастичний градієнтний варіаційний байєсівський оцінювач як частину процесу навчання. Прихований векторний розподіл ймовірностей варіаційного автокодера значно краще відповідає навчальним даним, ніж звичайного автокодера. VAE відмінно підходять для генерації художніх зображень будь-якого типу, оскільки їхня поведінка генерації є значно більш універсальною і настроюваною.
.

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