Автор: Марк Страхов Редактура: Андрей Шадриков

Идея

В этом посте мы затронем хайповую сейчас тему — self-supervised learning; далее — SSL. Постараемся разобраться с тем, что это такое и зачем оно нужно.

Давайте для начала вспомним, что в типичном supervised-learning сетапе без ограничения общности у нас есть некоторые сырые данные. Их мы передаем экспертам доменной области на разметку. Затем формируется размеченный набор данных, на котором уже в свою очередь обучается модель. Цель supervised-learning’a — получить модель, способную на приемлемом уровне решать какую-то целевую задачу.

Целью же SSL является получение модели, способной хорошо решать задачу извлечения признаков из входных данных. Сетап SSL-задачи выглядит таким образом: как и в supervised аналоге у нас есть сырые данные, но мы не передаем их на разметку экспертам доменной области, а генерируем каким-то дешевым способом разметку “на лету”, прямо из этих сырых данных. На такой дешево сгенерированной разметке решается некоторая задача. А результат — модель, которая научилась извлекать хорошие признаки.

Схематически эти два сетапа представлены на рисунке 1.

Рисунок 1. Supervised и self-supervised задачи

Рисунок 1. Supervised и self-supervised задачи

Зачем нам нужна такая модель? Чаще всего ее веса используются в качестве точки начальной инициализации при решении уже целевой задачи (например, вместо весов с ImageNet) (см. рисунок 2). То есть модель просто дотюнивают на размеченном экспертами наборе данных под целевую задачу.

Рисунок 2. Схема использования SSL-модели для решения целевой задачи

Рисунок 2. Схема использования SSL-модели для решения целевой задачи

И при обычном supervised, и при SSL-подходе мы размечаем данные при помощи экспертов, затем подгоняем модель и проводим цикл обучения. В чем же тогда их различие

Объяснить это можно так:

  1. Зачастую случается, что веса модели, предобученной на ImageNet’e, оказываются субоптимальными. Происходить это может из-за сильного отличия домена ImageNet’a от вашего целевого домена (например, вы работаете с рентгенограммами, а в ImageNet’e такого домена нет). Сеть, предобученная на ImageNet’e, извлекает признаки, но эти признаки не будут очень релевантными. В случае же использования SSL сеть учится извлекать признаки, характерные конкретно вашим данным.
  2. Согласно результатам статей, часто на бенчмарк наборах данных типа ImageNet, PASCAL VOC, MS COCO и других схема с SSL-предобучением позволяет достичь бОльшего значения целевой метрики.
  3. Еще в статьях говорится о том, что при использовании SSL-схемы часто можно добиться того же показателя целевой метрики даже при обращении к гораздо меньшему объему данных. Получается, если раньше вам надо было 10000 изображений для получения целевой метрики 0.8, то с использованием SSL схемы вам, возможно, хватит и 1000. Кроме того, наряду с меньшим объемом данных вам, весьма вероятно, понадобится и меньшее число эпох для достижения нужного показателя целевой метрики.
  4. Модель, единожды предобученная SSL-задачей, может быть пере-использована как точка начальной инициализации при решении других задач на таком же домене данных.

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