Автокодировщик: обучение восстановлению входных данных
Автокодировщик учится восстанавливать вход: encoder получает представление z, decoder строит приближение исходного x. Разметка классов для простой задачи восстановления не нужна, но целевой ответ для обучения всё равно определён исходными данными.
x → encoder → z → decoder → x_hat
loss = reconstruction_error(x, x_hat)Как поставить обучение
- Разделите данные на обучающую и отложенную части до настройки модели.
- Нормализуйте вход последовательно. Функция ошибки и диапазон выхода должны соответствовать данным.
- Выберите размер latent representation и ограничения модели.
- Обучайте восстановление входа, наблюдая loss на обучении и на отложенной выборке.
- Посмотрите сами восстановленные примеры: одно среднее число может скрыть потерю важных деталей.
Сжатие и удаление шума
Узкое латентное пространство ограничивает объём представления, но не гарантирует сжатие файла лучше стандартного кодека. Нужно хранить и использовать decoder, а качество зависит от распределения данных. Для denoising на вход подают зашумлённый пример, а целевым делают чистый.
Генерация — отдельный вопрос
Обычный autoencoder не гарантирует, что произвольная точка latent space даст осмысленный результат. Для управляемой генеративной модели часто рассматривают variational autoencoder с дополнительными условиями обучения. Не обещайте новые лица только от случайного изменения любого латентного вектора.
Для поиска аномалий порог reconstruction error нужно оценить на данных задачи; высокий loss сам по себе не является медицинским или иным решением о человеке.