Самообучение
Самообучение (англ. 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].
Ссылки
- Doersch, Carl. Multi-task Self-Supervised Visual Learning // 2017 IEEE International Conference on Computer Vision (ICCV) / Carl Doersch, Andrew Zisserman. — Октябрь 2017. — P. 2070–2079. — ISBN 978-1-5386-1032-9. — doi:10.1109/ICCV.2017.226.
- Doersch, Carl. Unsupervised Visual Representation Learning by Context Prediction // 2015 IEEE International Conference on Computer Vision (ICCV) / Carl Doersch, Abhinav Gupta, Alexei A. Efros. — Декабрь 2015. — P. 1422–1430. — ISBN 978-1-4673-8391-2. — doi:10.1109/ICCV.2015.167.
- Zheng, Xin; Wang, Yong; Wang, Guoyou; Liu, Jianguo (1 апреля 2018). “Fast and robust segmentation of white blood cell images by self-supervised learning”. Micron [англ.]. 107: 55—71. DOI:10.1016/j.micron.2018.01.010. ISSN 0968-4328. PMID 29425969. S2CID 3796689.
- Yarowsky, David (1995). “Unsupervised Word Sense Disambiguation Rivaling Supervised Methods”. Proceedings of the 33rd Annual Meeting of the Association for Computational Linguistics. Cambridge, MA: Association for Computational Linguistics: 189—196. DOI:10.3115/981658.981684. Дата обращения 2022-11-01.