Известный эксперт в области машинного обучения и ИИ Себастьян Рашка был добр бесплатно поделиться с миром своей уникальной книгой о фундаментальных вопросах в области современного машинного обучения. В ней он рассматривает вопросы создания эффективных архитектур для глубинного обучения. Книга охватывает 30 важных аспектов этой сферы в максимально доступной и понятной форме: каждый вопрос рассмотрен как небольшая, но интересная статья, подобно тем, что мы читаем здесь, на Хабре. Отсутствие такой книги в русскоязычном сегменте - большое упущение, поэтому верю, что серия переводов этой книги будет полезна сообществу Хабра.
Сам автор описывает свою книгу так:
Машинное обучение и ИИ стремительно развиваются. Исследователям и практикам приходится идти в ногу с огромным количеством техник и концепций. Эта книга покрывает широкий спектр тем в области машинного обучения и даст вам маленькие, но полезные кусочки знаний, которые обязательно пригодятся на пути развития экспертизы. Даже опытные исследователи и практики смогут найти для себя что-то новое, чем они, несомненно, смогут воспользоваться.
Эмбеддинги, латентные пространства и представления
В глубинном обучении мы постоянно используем такие термины, как эмбеддинги, представления и латентные пространства. Что общего у этих концептов и в чем их различия?
Часто эти три термина используются как синонимы, однако между ними возможно провести тонкую грань:
Эмбеддинги - это такое векторные представления данных, в которых схожие объекты оказываются близко друг к другу.
Латентные вектора - это некоторое промежуточное представление входных данных в виде векторов.
Представление - закодированная версия входных данных.
В последующих параграфах мы рассмотрим, как вышеупомянутые концепции связаны друг с другом, и какую роль они играют при кодировании информации в контексте машинного обучения.
Эмбеддинги
Эмбеддинги кодируют относительно высокоразмерные данные в относительно низкоразмерные векторы.
Мы можем применить методы формирования эмбеддингов для создания непрерывного плотного (ненулевого / неразреженного) вектора из разреженного унитарного вектора, созданного при помощи метода One Hot Encoding. One Hot Encoding - это такой метод, который используется для представления категориальных данных как бинарного вектора, где каждая категория отражается на такой вектор, где в позиции, соответствующей индексу категории стоит цифра 1, а во всех остальных позициях стоит 0. Таким образом категориальные значения могут быть представлены в формате, который может использоваться в некоторых алгоритмах машинного обучения. Например, если у нас есть категориальная переменная Color с тремя категориями: Красный, Зеленый, Синий, то каждая из категорий могла бы быть закодирована следующим образом. Красный - вектором [1, 0, 0], Зеленый - вектором [0, 1, 0], а Синий - вектором [0, 0, 1]. Каждый из этих векторов, который теперь соответствует кодировке методом One Hot Encoding, может быть преобразован в непрерывный вектор-эмбеддинг с помощью обучаемой матрицы весов эмбеддинг слоя нейронной сети.
Кроме того, методы создания эмбеддингов также работают и с плотными (неразреженными) данными, такими как изображения. Например, для построения эмбеддингов могут использоваться последние слои сверточных нейронных сетей (см. Рис. 1.1)

Технически, любой из промежуточных слоев нейронной сети способен создавать эмбеддинги. В зависимости от задачи, иногда выходной слой тоже может генерировать полезные эмбеддинги. Для наглядности, эмбеддинг сверточной сети на Рисунке 1.1 связан с предпоследним слоем.
Эмбеддинги могут иметь как меньшее, так и большее число размерностей, чем исходные данные. Так, эмбеддинги могут использоваться для выражения большей информативности данных: если закодировать данные в непрерывные плотные вектора размерности 2, то их будет удобно использовать для визуализации и кластеризации, как показано на Рисунке 1.2.

Фундаментальным свойством эмбеддингов является то, что они кодируют расстояние или схожесть объектов. Это значит, что эмбеддинги учитывают семантику данных таким образом, что похожие объекты оказываются близко друг к другу в пространстве эмбеддингов.
Для читателей заинтересованных в более формальном объяснении, эмбеддинг - это инъективное отображение, сохраняющее структуру исходного пространства между пространством входных признаков и пространством эмбеддингов
. Это значит, что похожие входные объекты будут находиться в близлежащих точках внутри пространства эмбеддингов - эта характеристика сохранения похожести объектов и рассматривается как способность эмбеддингов сохранять структуру пространства.
Латентные пространства
Латентное пространство часто отождествляют с пространством эмбеддингов - пространством, в которое отображаются эмбеддинги.
Похожие объекты могут оказаться рядом в латентном пространстве, однако, здесь это уже не является строгим требованием. Проще говоря, латентное пространство можно представить как любое пространство, которое содержит признаки - часто сжатые версии исходных признаков. Признаки латентного пространства могут быть выучены при помощи нейронной сети, такой как автоэнкодер, который воспроизводит входные изображения, как показано на Рисунке 1.3

Бутылочное горлышко на Рисунке 1.3 показывает маленький, промежуточный слой нейронной сети, который кодирует (или отображает) входное изображение в более низкоуровневое представление. Целевое пространство этого отображения и будет являться примером латентного пространства. Задача автоэнкодера - восстановить исходное изображение, то есть, минимизировать расстояние между входным и выходным изображением. Во время обучения, автоэнкодер может поместить закодированные признаки схожих изображений (например, картинки котят) рядом друг с другом в латентном пространстве, таким образом сгенерировав полезные эмбеддинги, где похожие входные объекты окажутся близки в пространстве эмбеддингов (и, в таком случае, латентном пространстве тоже).
Представления
Представление - закодированная, обычно промежуточная форма входных данных. Например, эмбеддинг или вектор в латентном пространстве - это представление входных данных, как мы уже обсудили ранее. Однако, представления могут быть получены и более простыми процедурами. Например, вектора, полученные процедурой One Hot Encoding, тоже считаются представлениями входных данных.
Ключевая идея здесь в том, что представление улавливает некоторые важные признаки или характеристики исходных данных, чтобы сделать их более полезными для последующего анализа.