Самообучение

Самообучение (англ. self-supervised learning, SSL) — парадигма в машинном обучении, при которой модель обучается на задаче, используя сами данные для генерации обучающих сигналов, вместо использования внешних, заранее размеченных меток. В контексте нейронных сетей самообучение направлено на использование внутренних структур или связей в исходных данных для создания осмысленных сигналов обучения. Задачи самообучения устроены таким образом, что их решение требует выделения существенных признаков или отношений в данных. Обычно входные данные модифицируют или преобразуют так, чтобы получить пары связанных примеров, где один из них используется как вход, а другой — для формирования сигнала обучения. Такая аугментация может включать добавление шума, обрезку, поворот изображения и другие преобразования. Самообучение ближе всего имитирует то, как человек учится распознавать объекты[1].

В процессе самообучения модель проходит два этапа. Сначала решается вспомогательная задача (pretext-task) с использованием псевдометок, что позволяет инициализировать параметры модели[2]. Затем выполняется основная задача с применением обучения с учителем либо без учителя.[3][4][5]

В последние годы самообучение показало высокие результаты и нашло практическое применение, например, в области обработки аудиосигналов, где используется такими компаниями, как Facebook, для распознавания речи[6].

Виды

Автоассоциативное самообучение

Автоассоциативное самообучение — особый случай самообучения, при котором нейронная сеть обучается воспроизводить или восстанавливать собственные входные данные[7]. То есть модель учится представлять данные в форме, отражающей их существенные признаки или внутреннюю структуру, что позволяет точно воссоздавать исходный вход.

Термин «автоассоциативный» объясняется тем, что модель по существу соотносит входные данные с самими собой. Для этого часто применяются автоэнкодеры — архитектуры нейронных сетей для обучения представлений. Автоэнкодер состоит из кодировщика, который переводит входные данные в представление меньшей размерности (латентное пространство), и декодировщика, который восстанавливает исходные данные из этого представления.

Обучение происходит на примерах, где на вход модели подаётся исходный сигнал, а требуется его максимально точная реконструкция. Функция потерь на этапе обучения обычно учитывает разницу между входом и восстановленным выходом (например, среднеквадратичная ошибка). Минимизируя ошибку восстановления, автоэнкодер строит осмысленное представление данных в своём латентном пространстве.

Контрастивное самообучение

Для задачи бинарной классификации обучающие данные можно поделить на положительные и отрицательные примеры. Положительные — те, что соответствуют целевому классу. Например, при обучении классификатора для распознавания птиц, положительные примеры — фотографии с изображением птиц, а отрицательные — без[8]. Контрастивное самообучение использует одновременно положительные и отрицательные примеры. Функция потерь минимизирует расстояние между положительными парами, одновременно максимизируя его для отрицательных[8].

Ранний пример — использование пары одномерных cверточных нейросетей, которые обрабатывают изображения и максимизируют степень их согласия[9].

Модель Contrastive Language-Image Pre-training (CLIP) позволяет совместно предобучать текстовый и визуальный энкодер так, чтобы вектора изображения и подписи образовывали малый угол в пространстве признаков (большая косинусная близость).

Метод InfoNCE (Noise-Contrastive Estimation)[10] позволяет совместно оптимизировать две модели по принципу контрастной оценки с шумом (NCE)[11]. Пусть дан набор из случайных примеров, в котором один положительный элемент взят из распределения , а остальные — из «предложенного» распределения . Минимизируется следующая функция потерь:

Неконтрастивное самообучение

Неконтрастивное самообучение (NCSSL, англ. Non-contrastive self-supervised learning) использует только положительные примеры. Против ожиданий, NCSSL сходится к полезному локальному минимуму, не сводясь к тривиальному решению с нулевой ошибкой. Если взять пример бинарной классификации, тривиальное поведение — определять каждый пример как положительный. Для эффективного неконтрастивного самообучения требуется дополнительный предсказатель на рабочем участке, который не применяется при обратном распространении ошибки (back-propagate) на стороне целевого выхода[8].

Сравнение с другими видами машинного обучения

Самообучение по своей цели относится к методам обучения с учителем, так как модель должна научиться предсказывать классификацию на основании входных данных. Однако при этом ему не требуется явно размеченных пар «вход — выход»: служебная информация, метаданные или предметное знание извлекаются автоматически из исходных данных и служат супервизорными сигналами для обучения[1].

В отличие от обучения без учителя, самообучение не работает с априорными структурами данных, однако ему также не нужны метки в тренировочной выборке.

Полуобучение (англ. semi-supervised learning) совмещает обучение с учителем и без учителя, требуя, чтобы размечена была лишь небольшая часть обучающего массива[12].

В переносе обучения (англ. transfer learning) модель, изначально обученная для одной задачи, применяется к другой[13].

Обучение автоэнкодера, по существу, всегда самообучающееся, так как выход должен стать оптимальным воссозданием входа. Однако в современной литературе термин «самообучение» часто подразумевает постановку вспомогательных задач, специально спроектированных («pretext-task»), что отличает такой подход от полностью автономного обучения автоэнкодера[7].

В обучении с подкреплением самообучение через комбинацию функций потерь позволяет формировать абстрактные представления состояний, храня в сжатой форме только наиболее важную информацию[14].

Примеры

Модель BERT (двунаправленные представления на основе трансформера), созданная в Google, используется для лучшего понимания смысла поисковых запросов[15].

GPT-3 от OpenAI — авторегрессионная языковая модель, использующая самообучение для обработки текста: перевода, ответа на вопросы и т. п[16].

Bootstrap Your Own Latent (BYOL) — неконтрастивное самообучение, показавшее высокую эффективность на ImageNet и ряде других задач[17].

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

DirectPred — неконтрастивное самообучение, в котором веса предсказателя задаются напрямую, а не через стандартный градиентный спуск[8]

Модель Self-GenomeNet реализует самообучение на задачах геномики.

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

Примечания

Литература

  • Balestriero, Randall; Ibrahim, Mark; Sobal, Vlad; Morcos, Ari; Shekhar, Shashank; Goldstein, Tom; Bordes, Florian; Bardes, Adrien; et al. (24 апреля 2023), A Cookbook of Self-Supervised Learning, arΧiv:2304.12210 [cs.LG]. 

Ссылки