Это специальная архитектура нейросети, когда мы учимся сжимать входные данные.
Сжатие не должно приводить к потере информации об исходных данных.
Автоэнкодер состоит из двух сетей – энкодера и декодера.
Первый сжимает данные без потери информации, второй – возвращает данные в нормальный вид.
Сжатая форма данных может оказаться полезной для разных задач.
Это аналог снижения размерности (PCA – метод главных компонент).
Например, с помощью энкодера можно сжать изображение из размера 500х600 в размер 500х60.
Получается сжатие в 10 раз! При этом качества картинки все равно хватает, чтобы распознать на ней
нужный нам объект.
Сжатое представление, созданное энкодером, называется эмбеддингом (embedding).
Эмбеддинг – это вектор или тензор, имеющий меньшее число элементов, чем исходные данные, но сохраняющий основную информацию об этих данных.
Эмбеддинг можно получить применением сверточного и пуллинг слоев.
А вернуть исходную форму данных можно применением различных приемов с теми же сверточными и пуллинг слоями.
Польза от эмбеддингов в том, что их легко сравнивать с другими эмбеддингами и находить схожие объекты.
Метод aproximate k-nearest neighbors как раз работает так, сравнивая эмбеддинги для изображений.
Автокодировщики имеют ряд достоинств:
- не требуется разметка на классы – мы просто кодируем данные в компактную форму и может использовать это в других задачах.
- похоже, можно использовать это для разметки еще не размеченных данных. Сначала кодируем размеченные данные, а затем учимся размечать неразмеченные данные, используя сходство эмбеддингов.