Основное руководство по автокодировщикам и их использованию

Автокодировщики — это популярный тип неконтролируемой искусственной нейронной сети, которая берет немаркированные данные и изучает эффективные коды структуры данных, которые можно использовать в другом контексте. Auto-Encoders аппроксимирует функцию, которая отображает данные из полного входного пространства в координаты более низкого измерения, а затем приближает к тому же измерению входного пространства с минимальными потерями.

Для задач классификации или регрессии можно использовать автокодировщики для извлечения признаков из необработанных данных, чтобы повысить надежность модели. Существуют различные другие приложения сети Auto-Encoder, которые можно использовать для некоторого другого контекста. В этой статье мы рассмотрим 7 таких приложений автокодировщика:

Checklist:
1) Dimensionality Reduction
2) Feature Extraction
3) Image Denoising
4) Image Compression
5) Image Search
6) Anomaly Detection
7) Missing Value Imputation

Прежде чем углубиться в применение AutoEncoders, давайте кратко обсудим, что такое сеть Auto-Encoder.

Что такое автокодировщик?

Автоэнкодер — это неконтролируемая нейронная сеть, которая пытается реконструировать выходной слой так же, как и входной слой. Архитектура автоэнкодера состоит из двух частей:

  • Кодировщик: сопоставление пространства ввода с пространством нижнего измерения.
  • Декодер: реконструкция из пространства более низкого измерения в пространство вывода.

Автоэнкодер сначала сжимает входной вектор в пространство меньшего размера, а затем пытается реконструировать выходные данные, сводя к минимуму ошибку реконструкции. Автоэнкодер пытается реконструировать выходной вектор как можно ближе к входному слою.

Существуют различные типы автоэнкодеров, включая регуляризованные, конкретные и вариационные автоэнкодеры. Обратитесь к Странице Википедии для автоэнкодеров, чтобы узнать больше о вариантах автоэнкодеров в деталях.

1) Уменьшение размерности:

Автоэнкодеры обучают сеть объяснять естественную структуру данных в эффективном низкоразмерном представлении. Он делает это, используя стратегию декодирования и кодирования, чтобы минимизировать ошибку реконструкции.

Входное и выходное измерение имеют 3000 измерений, а желаемое уменьшенное измерение равно 200. Мы можем разработать 5-слойную сеть, в которой энкодер имеет 3000 и 1500 нейронов, аналогичную сети декодера.

Векторные вложения сжатого входного слоя можно рассматривать как вложение входного слоя с уменьшенной размерностью.

2) Извлечение признаков:

Автоэнкодеры можно использовать в качестве средства извлечения признаков для задач классификации или регрессии. Автоэнкодеры берут немаркированные данные и изучают эффективные коды структуры данных, которые можно использовать для контролируемых задач обучения.

После обучения сети автоэнкодера с использованием образца обучающих данных мы можем игнорировать декодерную часть автоэнкодера и использовать кодировщик только для преобразования необработанных входных данных более высокого измерения в закодированное пространство более низкого измерения. Это более низкое измерение данных можно использовать в качестве функции для контролируемых задач.

Следуйте моей другой статье, чтобы получить пошаговую реализацию автоэнкодера как экстрактора признаков:



3) Шумоподавление изображения:

Реальные необработанные входные данные часто содержат шумы, а для обучения надежной контролируемой модели требуются очищенные и бесшумные данные. Автоэнкодеры могут использоваться для шумоподавления данных.

Шумоподавление изображений — одно из популярных приложений, в которых автоэнкодеры пытаются восстановить бесшумное изображение из зашумленного входного изображения.

Зашумленное входное изображение подается в автоэнкодер в качестве входных данных, а выходной бесшумный выход восстанавливается путем минимизации потерь при реконструкции из исходного целевого вывода (без шума). После того, как веса автоэнкодера обучены, их можно использовать для шумоподавления необработанного изображения.

4) Сжатие изображения:

Сжатие изображений — еще одно применение сети автоэнкодера. Необработанное входное изображение может быть передано в сеть кодировщика и получено сжатое измерение закодированных данных. Веса сети автоэнкодера можно узнать, восстановив изображение из сжатого кодирования с использованием сети декодера.

Обычно автоэнкодеры не так хороши для сжатия данных, лучше работают базовые алгоритмы сжатия.

5) Поиск изображений:

Автоэнкодеры могут использоваться для сжатия базы данных изображений. Сжатое вложение можно сравнивать или искать с закодированной версией искомого изображения.

6) Обнаружение аномалий:

Обнаружение аномалий — еще одно полезное применение сети автоэнкодера. Модель обнаружения аномалий может использоваться для обнаружения мошеннических транзакций или любых сильно несбалансированных контролируемых задач.

Идея состоит в том, чтобы обучать автоэнкодеры только выборочным данным одного класса (класса большинства). Таким образом, сеть способна реконструировать вход с хорошими или меньшими потерями реконструкции. Теперь, если выборочные данные другого целевого класса проходят через сеть автоэнкодера, это приводит к сравнительно большим потерям при реконструкции.

Можно определить пороговое значение потерь при реконструкции (показатель аномалии), большее значение которого можно считать аномалией.

7) Вменение пропущенного значения:

Автоэнкодеры шумоподавления можно использовать для заполнения пропущенных значений в наборе данных. Идея состоит в том, чтобы обучить сеть автоэнкодера, случайным образом помещая пропущенные значения во входные данные и пытаясь восстановить исходные необработанные данные, сводя к минимуму потери при реконструкции.

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

Заключение:

В этой статье мы обсудили краткий обзор различных приложений автоэнкодера. Для реконструкции изображения мы можем использовать вариант автоэнкодера, называемый свёрточным автоэнкодером, который минимизирует ошибки реконструкции, изучая оптимальные фильтры.

В моих следующих статьях я буду реализовывать каждое из рассмотренных выше приложений.

Понравилась статья? Станьте участником Medium, чтобы продолжать обучение без ограничений. Я получу небольшую часть вашего членского взноса, если вы перейдете по следующей ссылке, без каких-либо дополнительных затрат с вашей стороны.



Спасибо за чтение