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

Что такое автоэнкодер

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

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

Вот вопрос, который вы можете задать.

Что произойдет, если нет скрытых слоев? Можно ли его по-прежнему называть автоэнкодером?

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

Большинство мировых проблем сложны и нелинейны по своей природе.

Таким образом, автоэнкодеры представляют собой нейронные сети со скрытыми слоями.

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

Без скрытых слоев это просто соединение для моделирования данных простых линейных шаблонов, как показано на рисунке выше.

Так что же такое нейронная сеть?

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

Каковы компоненты автоэнкодера?

Автоэнкодер состоит из трех компонентов, а именно ниже;

  • Входной слой
  • Скрытый слой
  • Выходной слой

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

Для чего используются автокодировщики?

Из-за своей способности сжимать сложные нелинейные данные автокодировщики являются отличными инструментами для;

  • уменьшение размерности и
  • Извлечение признаков.

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

АЭ можно использовать для

  • Система рекомендаций
  • Поиск информации
  • Сжатие изображения
  • Хранилище данных
  • Обнаружение аномалий и т. д.

Вот вопрос, который вы можете задать.

Зачем создавать автоэнкодер, если мы можем просто использовать анализ основных компонентов (PCA) для уменьшения размерности?

Вот ответ

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

Реализация

Давайте реализуем простой глубокий автоэнкодер, используя набор данных Keras MNIST.

Заключение

В этой статье была представлена ​​краткая концепция автоэнкодеров, ее реализация и некоторые часто задаваемые вопросы. Однако AE бывают разных типов: ванильные, глубокие, шумоподавляющие и т. д. В нашей следующей статье мы рассмотрим каждый из этих типов и ответим на несколько часто задаваемых вопросов об автоэнкодерах, а также рассмотрим различия между ограниченными машинами Больцмана и AE.