Контрастное обучение
Определение
Контрастное обучение (contrastive learning [1]) настраивает отображение объекта в признаковое представление или эмбеддинг (embedding) таким образом, чтобы похожие объекты были близки, а непохожие - далеки друг от друга в пространстве эмбеддингов. При этом понятие похожести/непохожести определяется решаемой задачей.
Преобразование , отображающее объект в его эмбеддинг, наз ывается сиамской сетью (siamese network [1], [2]), поскольку при настройке точная копия этой сети будет применяться не к одному, а сразу к нескольким объектам.
При этом размерность пространства эмбеддингов обычно невелика и составляет несколько сотен признаков.
Примеры использования
Ниже приводятся примеры задач, решаемых с помощью контрастного обучения, и то, какие объекты считаются похожими и непохожими в каждой задаче:
N | Задача | Похожие объекты | Непохожие объекты |
---|---|---|---|
1 | классификация | принадлежат одному классу | принадлежат разным классам |
2 | проверка подписи человека по её отсканированной версии | подписи одного и того же человека | подписи разных людей |
3 | обнаружение перефразирования | перефразирования одной и той же фразы | перефразирования разных фраз |
4 | обнаружение одинаковых изображений | преобразования одного и того же изображения (поворот, обрезка, добавление шума, изменение цветов) | разные изображения |
В задачах 1, 2, 3 используется разметка, поэтому это задача обучения с учителем, известная как supervised contrasitve learning. Задача 4 - это задача обучения без учителя, поскольку внешняя разметка в ней не используется. Эта задача известна как instance discrimination.
Функция потерь контрастного обучения штрафует эмбеддинги похожих объектов за похожесть, а эмбеддинги непохожих объектов штрафует за непохожесть.
Ниже приведён пример эмбеддингов, построенных по задаче классификации рукописных цифр на датасете MNIST [3] и извлечённых с промежуточных слоёв обычной классификационной сети (слева) и с финальных слоёв сиамской сети (справа):
Похожими объектами выступают сканы одной и той же цифры, а непохожими - сканы разных цифр. Отвечающие эмбеддингам цифры обозначены цветом.
Как видим, эмбеддинги сиамской сети сильнее раздвинуты для объектов разных классов по сравнению с эмбеддингами обычной классификационной сети, что следует из функции потерь контрастного обучения, которые сближают эмбеддинги похожих объектов (объектов одного класса) и раздвигают эмбеддинги непохожих (разных классов).
После того, ка к сиамская сеть настроена, можно решать конечную задачу метрическими методами в пространстве эмбеддингов, такими как метод ближайших центроидов или метод K ближайших соседей, поскольку эмбеддинги объектов разных классов будут далеко, а одного класса - близко.
Также можно использовать слои обученной сиамской сети для извлечения признаков для другой задачи (transfer learning).
Обработка объектов разных типов
Также контрастное обучение для обработки объектов разных типов. В этом случае каждый тип преобразуется в эмбеддинг своей нейросетью:
Задача | Похожие объекты | Непохожие объекты |
---|---|---|
ранжирование, информационный поиск | поисковый запрос и соответствующие ему документы | поисковый запрос и нереле вантные документы |
построение текстового описания к изображению | изображение и соответствующее ему описание | изображение и не соответствующие ему описания |
рекомендательные системы | пользователь и товары, которые ему понравились | пользователь и товары, которые ему не понравились или по которым нет данных |
Например, для рекомендательной системы будут настраиваться две нейросети и :
Различные преобразования и