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

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

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

Если используются линейные нейроны, то оптимальное решение для авто-кодера тесно связано с PCA.

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

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

«Кодирование» также известно как встроенное пространство или скрытое пространство в уменьшении размерности, где кодер будет использоваться для проецирования, а декодер - для реконструкции.