Известный эксперт в области машинного обучения и ИИ Себастьян Рашка был добр бесплатно поделиться с миром своей уникальной книгой о фундаментальных вопросах в области современного машинного обучения. В ней он рассматривает вопросы создания эффективных архитектур для глубинного обучения. Книга охватывает 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: Эмбеддинг разреженного вектора (слева) и эмбеддинг из сверточной нейронной сети
Рис. 1.1: Эмбеддинг разреженного вектора (слева) и эмбеддинг из сверточной нейронной сети

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

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

Рис. 1.2: Отображение слов (слева) и картинок (справа) в пространство признаков размерности 2
Рис. 1.2: Отображение слов (слева) и картинок (справа) в пространство признаков размерности 2

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

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

Латентные пространства

Латентное пространство часто отождествляют с пространством эмбеддингов - пространством, в которое отображаются эмбеддинги.

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

Рис. 1.3: Автоэнкодер восстанавливающий исходное изображение
Рис. 1.3: Автоэнкодер восстанавливающий исходное изображение

Бутылочное горлышко на Рисунке 1.3 показывает маленький, промежуточный слой нейронной сети, который кодирует (или отображает) входное изображение в более низкоуровневое представление. Целевое пространство этого отображения и будет являться примером латентного пространства. Задача автоэнкодера - восстановить исходное изображение, то есть, минимизировать расстояние между входным и выходным изображением. Во время обучения, автоэнкодер может поместить закодированные признаки схожих изображений (например, картинки котят) рядом друг с другом в латентном пространстве, таким образом сгенерировав полезные эмбеддинги, где похожие входные объекты окажутся близки в пространстве эмбеддингов (и, в таком случае, латентном пространстве тоже).

Представления

Представление - закодированная, обычно промежуточная форма входных данных. Например, эмбеддинг или вектор в латентном пространстве - это представление входных данных, как мы уже обсудили ранее. Однако, представления могут быть получены и более простыми процедурами. Например, вектора, полученные процедурой One Hot Encoding, тоже считаются представлениями входных данных.

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

Комментарии (0)