Каковы цели автоэнкодеров?


10

Автоэнкодеры - это нейронные сети, которые изучают сжатое представление входных данных, чтобы впоследствии восстановить его, чтобы их можно было использовать для уменьшения размерности. Они состоят из кодера и декодера (которые могут быть отдельными нейронными сетями). Уменьшение размерности может быть полезным для решения или ослабления проблем, связанных с проклятием размерности, когда данные становятся редкими и становится труднее получить «статистическую значимость». Таким образом, автоэнкодеры (и алгоритмы, такие как PCA) могут быть использованы для борьбы с проклятием размерности.

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

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


1
Смотрите также следующий вопрос stats.stackexchange.com/q/82416/82135 на CrossValidated SE.
nbro

Ответы:


6

Важно подумать о том, какие шаблоны в данных представлены.

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

Предположим вместо этого, что у вас есть набор данных черно-белых растровых изображений 128x128px с центрированными кругами. Как человеческий мозг, вы быстро поймете, что каждый элемент в этом наборе данных может быть полностью описан одним числовым параметром, который является радиусом круга. Это очень впечатляющий уровень сокращения по сравнению с 16384 двоичными измерениями, и, что более важно, это семантически значимое свойство данных. Тем не менее, PCA, вероятно, не сможет найти этот шаблон.

Ваш вопрос был «Почему мы не можем просто использовать PCA, если целью является уменьшение размерности?» Ответ прост: PCA - это самый простой инструмент для уменьшения размерности, но он может упустить множество взаимосвязей, которые могут найти более мощные методы, такие как автоэнкодеры.


3

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

Автоэнкодеры и PCA связаны:

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

Для получения дополнительной информации взгляните на статью Elad Plaut «От основных подпространств к основным компонентам с линейными автоэнкодерами» (2018). Смотрите также этот ответ , который также объясняет связь между PCA и автоэнкодерами.


3

PCA - это линейный метод, который создает преобразование, способное изменять проекции векторов (изменение оси).

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

LDA - это линейный метод, который создает преобразование, способное найти направление, наиболее подходящее для определения, принадлежит ли вектор к классу A или B.

PCA и LDA имеют нелинейные версии ядра, которые могут преодолеть их линейные ограничения.

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

Вероятно, нет лучшего алгоритма машинного обучения, чтобы что-либо делать, иногда Deep Learning и Neural Nets излишни для простых задач, и PCA и LDA могут быть опробованы до других, более сложных, размерных сокращений.


1
Какое отношение имеет LDA к вопросу?
nbro

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

PCA также не гарантирует максимальной дисперсии, поскольку это жадный алгоритм, он только приближает максимум.
Матье

PCA имеет закрытое решение, главная ось всегда будет в направлении максимального отклонения. Это не жадный алгоритм (но он может быть реализован как один)
Педро Энрике Монфорте

1
  1. Половина декодера необходима для того, чтобы вычислить функцию потерь для обучения сети. Подобно тому, как «противник» все еще необходим в GAN, даже если вы заинтересованы только в генеративном компоненте.
  2. Автоэнкодеры могут изучать нелинейные вложения данных и, следовательно, являются более мощными, чем ванильный PCA.
  3. Автоэнкодеры имеют приложения за пределами уменьшения размерности:
    • Генерация новых точек данных или выполнение интерполяции (см. VAE)
    • Создать шумоподавляющие фильтры (например, при обработке изображений)
    • Сжатие / распаковка данных
    • Предсказание ссылок (например, при обнаружении наркотиков)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.