Zero-shot learning — это постановка задачи в машинном обучении, при которой модель должна распознавать новые классы без размеченных примеров этих классов в обучении. Вместо прямых примеров она использует описания, признаки, векторные представления и другие источники вспомогательных знаний.
Подход нужен там, где разметка данных дорогая, редкая или просто отсутствует. Чаще всего его обсуждают в компьютерном зрении и обработке естественного языка, но сама идея шире: модель учится понимать смысл класса, а не только запоминать знакомые образцы.
Содержание статьи
Что означает zero-shot learning простыми словами
Zero-shot learning означает, что модель делает вывод о новом объекте без единого размеченного примера этого класса. Она опирается на описание класса или на связь нового класса с уже известными понятиями.
Если обычный классификатор узнает кошку, потому что видел тысячи подписанных изображений кошек, то модель в режиме zero-shot может распознать новый класс по смыслу. Например, если системе известны признаки класса и связи между словами, она может сопоставить входные данные с этим описанием.
Ключевая разница здесь в источнике знания. В контролируемом обучении главным источником служит разметка. В zero-shot learning — семантическая информация: текстовые описания, атрибуты, эмбеддинги, связи между классами.
Чем zero-shot learning отличается от supervised learning, one-shot и few-shot
Разница в количестве размеченных примеров новых классов. В supervised learning их много, в few-shot — мало, в one-shot — один, а в zero-shot — ни одного.
При контролируемом обучении модель получает набор примеров с правильными ответами и подгоняет параметры так, чтобы уменьшить ошибку. Такой подход дает сильный результат, если данных достаточно. Но он плохо подходит для редких объектов, новых категорий и задач, где разметка слишком дорогая.
Few-shot learning и one-shot learning уменьшают потребность в данных, но не убирают ее полностью. Zero-shot идет дальше: модель должна обобщать знания на классы, которых не было среди размеченных целевых примеров.
| Подход | Сколько размеченных примеров нового класса нужно | Главный источник знания |
| Supervised learning | Много | Размеченный датасет |
| Few-shot learning | Несколько | Небольшой набор примеров и перенос знаний |
| One-shot learning | Один | Один пример и перенос знаний |
| Zero-shot learning | Ноль | Описание класса, атрибуты, эмбеддинги |
Почему zero-shot learning вообще нужен
Потому что мир меняется быстрее, чем размечаются данные. Во многих задачах нельзя заранее собрать полный набор примеров для всех классов, которые модель встретит после запуска.
Разметка больших массивов данных требует времени, денег и участия специалистов. В ряде случаев примеров мало по самой природе задачи. Это бывает при редких заболеваниях, редких биологических видах, новых товарах, новых темах в тексте и других редких категориях.
Есть и более общий предел. Количество возможных понятий очень велико, а создавать отдельный размеченный набор под каждое понятие неэффективно. Поэтому у исследователей возник интерес к методам, которые могут переносить знание между классами и понимать смысл меток.
Как работает zero-shot learning
Модель связывает входные данные с описанием класса в общем семантическом пространстве. Она не ищет точное совпадение с увиденным примером, а оценивает, насколько объект соответствует смыслу класса.
На практике схема часто выглядит так: есть входной объект, например текст или изображение, и есть набор возможных классов с описаниями. Модель переводит и объект, и классы в векторные представления, после чего измеряет близость между ними.
Чем выше сходство между представлением объекта и представлением класса, тем выше вероятность, что объект относится к этому классу.
Иногда поверх этой логики добавляют отдельный шаг, который сначала определяет, относится ли образец к уже известному классу или к новому. Такой вариант особенно важен в более реалистичном сценарии, где на входе могут встретиться и старые, и новые категории.
Что модель использует вместо размеченных примеров
Вместо прямой разметки zero-shot learning использует вспомогательные знания. Это может быть текст, набор атрибутов, эмбеддинги слов, связь между классами или представления из заранее обученной модели.
Без такого слоя знаний задача не решается. Если модель никогда не видела класс и ничего о нем не знает, ей не на что опереться при классификации.
- Текстовые описания — краткие или подробные формулировки того, что означает класс.
- Атрибуты — свойства объекта, например цвет, форма, материал, поведение.
- Эмбеддинги — числовые векторы, которые отражают смысл слова, текста, изображения или другого объекта.
- Связи с уже известными классами — сходство нового класса с классами, которые были доступны при обучении.
- Знания предобученной модели — информация, накопленная при обучении на больших корпусах текста или изображений.
Почему в zero-shot learning важен смысл метки
Модель должна понимать не только название класса, но и то, что за ним стоит. Если метка для нее — пустой символ, обобщение на новый класс не получится.
В обычной классификации метка часто играет роль идентификатора. Система видит много примеров класса и учится связывать образцы с этим идентификатором. В zero-shot learning так не выйдет, потому что целевой класс в размеченном виде отсутствует.
Поэтому метка должна быть содержательной. Слово, фраза или описание класса должны быть связаны с признаками объекта. Чем лучше модель умеет извлекать смысл из языка или других представлений, тем выше шанс на корректное распознавание новых категорий.
Какую роль играет transfer learning
Transfer learning помогает использовать уже выученные признаки и представления для новой задачи. Это снижает требования к данным и ускоряет создание zero-shot систем.
Вместо обучения с нуля берут модель, которая уже была обучена на большом наборе данных. В текстовых задачах это часто языковые модели и трансформеры. В задачах по изображениям — сверточные сети или визуальные трансформеры.
Предобученная модель уже умеет выделять полезные особенности данных. Zero-shot метод использует эти особенности как основу для сопоставления объектов с новыми классами.
Такой перенос особенно полезен, когда новый класс можно описать через сходство с уже известными. Если система хорошо различает связанные категории, ей проще понять новый класс через его свойства или текстовое описание.
Что такое generalized zero-shot learning
Generalized zero-shot learning — это вариант задачи, где во время проверки объект может относиться как к новому классу, так и к уже известному. Это ближе к реальным условиям, чем классический сценарий zero-shot.
В стандартной постановке тест состоит только из новых классов, которых не было среди размеченных обучающих примеров. Такой режим удобен для экспериментов, но в прикладных системах поток данных обычно смешанный.
Из-за этого возникает отдельная проблема: модель часто смещает предсказания в сторону знакомых классов. Она уже уверена в них и охотнее выбирает их, даже когда правильный ответ относится к новому классу.
Поэтому для generalized zero-shot learning часто применяют дополнительные механизмы калибровки, разделения seen и unseen классов или балансировки вероятностей.
Какие методы zero-shot learning используют атрибуты
Атрибутивные методы описывают класс через набор признаков и учат модель распознавать именно эти признаки. После этого система может собрать новый класс как комбинацию уже известных свойств.
Если модель умеет находить отдельные характеристики, ей не обязательно видеть сам целевой класс в размеченном виде. Достаточно знать, какими свойствами он обладает.
Подход удобен в задачах, где признаки можно явно перечислить. Это могут быть цвет, форма, текстура, наличие частей объекта и другие наблюдаемые свойства.
Но у метода есть ограничения.
- Не каждый класс хорошо описывается одним фиксированным набором атрибутов.
- Разметка самих атрибутов тоже требует времени и ресурсов.
- Если нужные признаки неизвестны или отсутствуют в доступных данных, метод не сможет обобщить на новый класс.
Что такое embedding-based методы в zero-shot learning
Embedding-based методы представляют и объекты, и классы в виде векторов, а затем сравнивают их между собой. Класс выбирается по наибольшему сходству с входным объектом.
Этот подход стал одним из центральных в zero-shot learning. Он хорошо сочетается с предобученными языковыми и визуальными моделями, которые уже умеют превращать текст и изображения в семантические векторы.
После преобразования данных в эмбеддинги задача напоминает поиск ближайшего соседа. Если вектор изображения ближе всего к вектору текстового описания конкретного класса, система относит изображение к нему.
| Элемент | Что представляется в виде вектора | Зачем это нужно |
| Объект | Текст, изображение, аудио или другой вход | Получить числовое представление признаков |
| Класс | Название, описание, атрибуты | Задать смысл целевой категории |
| Мера сходства | Косинусное сходство, евклидово расстояние и другие метрики | Сравнить объект и класс |
Что такое joint embedding space
Joint embedding space — это общее пространство, в котором можно сравнивать представления разных типов данных. Например, текстовое описание класса и изображение объекта.
Без такого общего пространства сравнение было бы некорректным, потому что текст и изображение изначально кодируются разными моделями и имеют разную структуру. После приведения к общей форме появляется возможность измерять расстояние между ними одной и той же метрикой.
Качество этого выравнивания напрямую влияет на результат zero-shot классификации.
Как здесь помогает contrastive learning
Contrastive learning учит модель сближать связанные пары и разводить несвязанные. За счет этого текстовые и визуальные эмбеддинги лучше выравниваются в общем пространстве.
Если изображение собаки и слово, обозначающее собаку, считаются положительной парой, модель уменьшает расстояние между их представлениями. Для несвязанных пар расстояние увеличивается.
Такая схема широко используется в мультимодальных моделях, где нужно сопоставлять данные разных типов.
Как zero-shot learning связан с CLIP и большими моделями
CLIP и крупные языковые модели показали, что zero-shot поведение можно получить за счет обучения на больших массивах неразмеченных или слабо размеченных данных. Они учатся связывать форму данных со смыслом, а затем применяют это знание к новым классам.
У CLIP совместно обучались текстовый и визуальный энкодеры на парах изображение-подпись. Такая настройка позволила модели сопоставлять изображения с текстовыми описаниями без отдельного дообучения под каждый новый набор классов.
Большие языковые модели тоже часто демонстрируют zero-shot свойства. Причина в том, что в ходе предобучения на огромных корпусах текста они усваивают смысл слов, связь между понятиями и контекст употребления. Это помогает им решать задачи, где явных примеров нужного класса в размеченном виде не было.
Какие генеративные методы применяют в zero-shot learning
Генеративные методы создают синтетические образцы для новых классов на основе их описаний. После этого задачу можно свести к обычному обучению с учителем на сгенерированных данных.
Логика проста: если нет реальных размеченных примеров, их пытаются получить косвенно. Для этого используют семантические описания класса, скрытые представления и генеративные модели.
Такой путь применяют не всегда, но он заметен в исследовательской литературе, особенно там, где требуется расширить набор данных для unseen классов.
Как используются вариационные автоэнкодеры
VAE учат распределение скрытых представлений данных и позволяют генерировать новые образцы из этого пространства. В zero-shot сценарии условия генерации можно связать с описанием нового класса.
Если используется условный вариант модели, свойства синтетического примера можно задавать через выбранные переменные. Это делает подход полезным для генерации данных по семантическим признакам.
Как используются GAN
GAN состоят из генератора и дискриминатора, которые обучаются совместно. Генератор создает образцы, а дискриминатор пытается отличить синтетические данные от реальных.
В zero-shot learning генератор может опираться на атрибуты или другие описания класса. Так появляются синтетические данные, которые затем используют как обучающие примеры.
Зачем объединяют VAE и GAN
Комбинация VAE и GAN пытается совместить стабильность первого подхода и качество генерации второго. Поэтому гибридные схемы рассматриваются как один из вариантов для zero-shot задач.
У VAE есть склонность давать размытые результаты. У GAN другая проблема: обучение двух конкурирующих сетей может быть нестабильным. Объединение архитектур должно частично сгладить эти ограничения.
Как большие языковые модели участвуют в генерации данных
Большие языковые модели могут создавать размеченные текстовые примеры для новых классов. Это полезно в текстовой классификации, где синтетические данные затем используют для обучения отдельной модели.
Такой сценарий зависит от качества описаний, формулировок и контроля за разметкой. Но сама идея вписывается в логику zero-shot: вспомогательное знание заменяет прямой набор примеров целевого класса.
Где zero-shot learning применяется на практике
Чаще всего zero-shot learning используют в классификации изображений, анализе текста и мультимодальных системах. Везде, где появляются новые категории без готовой разметки, этот подход дает способ быстро расширить покрытие модели.
В компьютерном зрении он помогает классифицировать объекты по текстовым описаниям или атрибутам. В обработке языка — относить тексты к новым темам, интентам или меткам без отдельного обучения на каждой из них.
Мультимодальные модели добавляют еще один слой пользы. Они могут связывать изображение, текст и иногда аудио в одном семантическом пространстве, что делает zero-shot сценарии особенно удобными для поиска, фильтрации и категоризации.
Какие ограничения есть у zero-shot learning
Главное ограничение — зависимость от качества вспомогательных знаний. Если описание класса плохое, неполное или двусмысленное, модель ошибется даже при хорошем базовом энкодере.
Есть и другие проблемы. Представления seen классов часто доминируют над unseen классами. Атрибуты могут быть неполными. Эмбеддинги из разных источников могут плохо выравниваться. Генеративные методы могут добавлять шум вместо полезного сигнала.
Еще один риск связан с тем, что реальный класс часто изменчивее, чем его словесное описание. Одна короткая формулировка не всегда покрывает все варианты внешнего вида, контекста и проявлений объекта.
Как оценивать качество zero-shot модели
Качество оценивают по тому, насколько точно модель распознает unseen классы, а в generalized zero-shot — по балансу между seen и unseen классами. Одна только общая точность здесь часто вводит в заблуждение.
Если модель хорошо угадывает знакомые категории и почти игнорирует новые, средний результат может выглядеть приемлемо, хотя zero-shot часть задачи решена слабо. Поэтому исследователи отдельно смотрят метрики по seen и unseen классам.
В generalized zero-shot learning особенно важна проверка на смещение в пользу известных классов. Без этого нельзя понять, умеет ли система реально обобщать на новые категории.
Как понять, подходит ли задача для zero-shot learning
Zero-shot learning подходит, если новые классы можно описать через язык, атрибуты или связи с уже известными данными. Если такого описания нет, качество обычно резко падает.
- Проверьте, можно ли явно сформулировать смысл класса.
- Оцените, есть ли у вас предобученная модель, которая умеет работать с нужным типом данных.
- Убедитесь, что классы не слишком абстрактны и не зависят от скрытого контекста, который сложно выразить в описании.
- Разделите сценарии на классический zero-shot и generalized zero-shot, потому что требования к оценке у них разные.
- Проверьте, достаточно ли качественно выровнены представления объекта и класса.
Краткий вывод: что нужно запомнить о zero-shot learning
Zero-shot learning — это подход, при котором модель распознает новые классы без размеченных примеров этих классов. Основа метода — перенос знаний через описания, атрибуты, эмбеддинги и предобученные представления.
Наиболее заметные направления здесь — атрибутивные методы, методы на эмбеддингах и генеративные подходы. Для реальных задач особенно важен generalized zero-shot learning, где новые и знакомые классы встречаются вместе.
Сильная сторона zero-shot learning — масштабируемость без полной переразметки данных. Слабая — высокая зависимость от качества семантического описания и выравнивания представлений.