Multiple Instance Learning
Узнай, как обучение по множественным экземплярам использует метки на уровне сумок, агрегацию экземпляров и слабое контроллирование для медицинской визуализации, инспекции и классификации.
Множественное обучение (MIL) — это подход machine learning, в котором обучающие примеры организуются в группы, называемые bags, а элементы внутри каждой группы называются instances. Модель получает метку для всего bag, но не для каждого instance. Например, патологический срез может иметь метку «обнаружен рак» без определения того, какие именно области изображения содержат раковые клетки. MIL полезен, когда подробная разметка стоит дорого, является неоднозначной или недоступной.
Как работает множественное обучение#
При обычном supervised learning каждый обучающий пример имеет собственную метку. MIL изменяет единицу контроля: метка принадлежит набору связанных примеров.
Bag может представлять собой видео, содержащее множество кадров, документ, содержащий множество фрагментов, или большое изображение, разделенное на патчи. Каждый кадр, фрагмент или патч является instance. Типичная модель MIL состоит из трех компонентов:
- Instance encoder преобразует каждый instance в числовое представление признаков.
- Aggregation function объединяет представления instance в единое представление bag.
- Bag classifier прогнозирует метку bag на основе этого объединенного представления.
Для бинарной классификации традиционное предположение MIL гласит, что позитивный bag содержит по меньшей мере один позитивный instance, в то время как каждый instance в негативном bag является негативным. Это предположение подходит для задач, где одна небольшая область может определить общий результат. Другие проблемы требуют коллективных предположений, например прогнозирования позитивной метки только тогда, когда несколько instances демонстрируют подтверждающие свидетельства.
Поскольку MIL обучается на метках bag, он считается формой weak supervision. В отличие от обычной image classification, он не предполагает, что все изображение или каждая область выражают назначенный класс. Это позволяет избежать ошибочного копирования метки bag на все instances.
Агрегация и важность instances#
Агрегация должна обрабатывать различные размеры bag и обычно должна быть независима от порядка instances. Распространенные стратегии включают:
- Max pooling: Использует самый сильный сигнал instance. Это соответствует предположению «хотя бы один позитивный instance», но может быть чувствительно к выбросам.
- Mean pooling: усредняет свидетельства по всему bag. Это работает лучше, когда множество instances вносят свой вклад, но может размывать редкие позитивные свидетельства.
- Attention pooling: определяет, насколько сильно каждый instance должен влиять на результат. Полученные веса могут указывать на важные области, хотя они не гарантируют точных объяснений.
Объединенный результат преобразуется в оценку bag, часто с использованием функции вероятности, такой как Softmax. Обучение сравнивает эту оценку с меткой bag и использует backpropagation для одновременного обновления энкодера и агрегатора.
MIL в первую очередь оптимизирует предсказания на уровне bag. Даже когда модель присваивает высокую важность определенным instances, эти оценки автоматически не являются надежными метками instances или точными локализациями.
Реальные приложения#
-
Medical image analysis: Оцифрованный срез ткани может содержать тысячи патчей, в то время как доступный диагноз относится только к пациенту или срезу. MIL может обрабатывать патчи как instances и предсказывать, содержит ли весь срез признаки заболевания. Это ценно для medical image analysis, поскольку проведение подробных границ вокруг каждой аномальной области требует времени специалиста. В ресурсах NCI Genomic Data Commons AI resources изображения целых срезов описаны как входы для классификации рака, обнаружения признаков и прогнозирования исходов. (gdc.cancer.gov)
-
Industrial visual inspection: Произведенный компонент может быть сфотографирован с нескольких ракурсов или записан как короткая последовательность. Инспекторы качества могут пометить всю инспекцию как «дефектную» без определения точного вида, содержащего трещину или отсутствующую деталь. MIL может рассматривать ракурсы как один bag и определять, какие визуальные свидетельства предсказывают сбой. Если позже понадобятся точные места дефектов, выбранные instances могут быть размечены для object detection или instance segmentation.
Связанные условия обучения#
MIL отличается от нескольких тесно связанных подходов:
- Weak supervision — это более широкая категория, охватывающая неполные, зашумленные или косвенные метки. MIL специально использует метки, привязанные к bags instances.
- Semi-supervised learning объединяет размеченные и неразмеченные примеры. Bags в MIL размечены, но их отдельные instances обычно не имеют меток.
- Multi-label learning предсказывает несколько классов для одного примера. MIL описывает, как сгруппированы примеры, поэтому система может быть как мульти-instance, так и мульти-меточной.
- Attention mechanisms определяют, как информация взвешивается или объединяется. Они могут реализовывать агрегацию MIL, но сами по себе не определяют MIL.
- Object detection требует локализованных разметок, таких как ограничивающие рамки. MIL иногда может выделять вероятные области, но обучение только на уровне bag не дает проверенных координат объектов.
Практический рабочий процесс и оценка#
Следующая схема вывода использует Ultralytics YOLO26 classification model для оценки двух instances изображения и применяет максимальную агрегацию. Она демонстрирует концепцию решения для bag, а не совместно обученную модель MIL.
from ultralytics import YOLO
# Treat related images as instances within one bag
sources = [
"https://ultralytics.com/images/bus.jpg",
"https://ultralytics.com/images/zidane.jpg",
]
model = YOLO("yolo26n-cls.pt")
results = model(sources)
# Aggregate evidence for one target class across the bag
target_name = "minibus"
target_id = next(i for i, name in results[0].names.items() if name == target_name)
instance_scores = [float(result.probs.data[target_id]) for result in results]
bag_score = max(instance_scores)
print(f"{target_name} bag probability: {bag_score:.3f}")Полная реализация MIL обучает агрегатор с учетом bag, используя метки bag. Ultralytics YOLO поддерживает стандартные classification workflows, в то время как пользовательская логика MIL необходима для группировки instances и оптимизации потерь на уровне bag.
Специалисты должны сохранять границы bag при формировании батчей, тестировать несколько правил агрегации и предотвращать пересечение связанных instances между разбиениями набора данных. Такие инструменты, как GroupKFold cross-validation, могут объединять патчи одного пациента, видео или продукта. Оценивайте precision and recall на уровне bag и добавляйте оценку на уровне instance, если важна локализация. Ultralytics Platform может поддерживать управление наборами данных, разметку, стандартное обучение моделей и развертывание, когда конвейер MIL сочетается с компонентами обнаружения, сегментации или классификации.






