Зачем нам нужны автоэнкодеры?

17

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

В чем полезность этой модели? Каковы преимущества попытки восстановить некоторые выходные элементы, сделав их максимально равными входным элементам? Зачем использовать все это оборудование, чтобы добраться до одной и той же отправной точки?

Larry
источник

Ответы:

17

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

Скрытый слой образует некую кодировку ввода. «Целью автокодера является изучение сжатого, распределенного представления (кодирования) для набора данных». Если вход представляет собой 100-мерный вектор, и у вас есть 60 нейронов в скрытом слое, то алгоритм автоматического кодирования будет воспроизводить входные данные как 100-мерный вектор в выходном слое, в процессе чего вы получите 60-мерный вектор, который кодирует ваши входные данные. ,

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

Мадхулика Мукерджи
источник
Спасибо @Madhulika, может быть, я понял. Алгоритм работает следующим образом: у него есть входной слой, он обучает нейронную сеть, чтобы иметь выходной слой, идентичный входному слою. Затем он сравнивает входной слой с выходным, и если они различаются, он продолжает переобучать нейронную сеть. Он останавливается, когда они идентичны. Когда он заканчивается, мы берем последний скрытый слой в качестве наилучшего приближения уменьшения размерности входного слоя и используем его для любой цели, которая нам нужна. Это верно?
Ларри
Да, вы поняли это почти правильно. :) Прочитайте дополнительную литературу об этом.
Мадхулика Мукерджи
5

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

Я рассматриваю это как своего рода «регрессию по нейронным сетям», когда вы пытаетесь получить функцию, описывающую ваши данные: ее вывод совпадает с вводом.

Матье
источник
3

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

введите описание изображения здесь

введите описание изображения здесь

Фотографии взяты из русской википедии.

Марат Закиров
источник
2
Комментарий к картинкам будет полезен.
Тим