Как обучать модели всего с несколькими помеченными примерами

До сих пор большая часть ценности, создаваемой искусственным интеллектом, исходила от контролируемых моделей, обученных на все более крупных наборах данных. Многие из этих наборов данных были помечены людьми, что является рутинной, трудоемкой, подверженной ошибкам и иногда дорогостоящей работой. Самоконтролируемое обучение (SSL) — это другая парадигма обучения, позволяющая машинам учиться на немаркированных данных. В этой статье мы обсудим, как работает SSL и как его применить к компьютерному зрению. Мы сравним простые подходы с самыми современными и увидим SSL в действии для медицинской диагностики, области, которая может принести много пользы, но в то же время требует глубокого понимания подхода, чтобы иметь возможность правильно его реализовать. .

Что такое самоконтролируемое обучение?

По словам Яна Лекуна, главного специалиста по искусственному интеллекту в Meta, обучение с самоконтролем — это «один из наиболее многообещающих способов накопления фоновых знаний и приближения к форме здравого смысла в системах искусственного интеллекта. Идея подхода с самоконтролем заключается в обучении моделей на данных без аннотаций.

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

~ Янн Лекун

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

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

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

Идея не совсем новая. В прошлом самоконтролируемое обучение часто использовалось, особенно в НЛП для обучения больших языковых моделей, таких как BERT или GPT. Таким моделям может быть предоставлен необработанный текст с задачей предсказать следующий токен в последовательности на основе предыдущих токенов. Итак, для каждого обучающего примера модель будет устанавливать свою псевдометку в качестве следующего слова в предложении, скажем.

Модели, обученные с самоконтролем, создают свои собственные псевдометки из немаркированных данных.

Но именно за последние три года самообучение было заново открыто для компьютерного зрения благодаря прорывным статьям от Google, DeepMind и Meta. Однако принцип тот же: модель создает свои собственные псевдометки, например, маскируя часть изображения и пытаясь предсказать ее, или поворачивая изображение и пытаясь предсказать угол поворота. Мы обсудим точные методы через мгновение.

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

Скудные аннотации в медицинских данных

Медицинский сектор производит много изображений. По данным IBM, до 90% всех медицинских данных поступает в виде изображения. Эти данные являются результатом проведения различных обследований, таких как рентген, которых, по данным «ВОЗ, ежегодно проводится 3,6 миллиарда.

Этот огромный объем данных, по-видимому, дает прекрасную возможность применить алгоритмы машинного обучения, которые используют данные, чтобы помочь людям в процессах диагностики и лечения. Если бы не один вопрос.

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

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

Самоконтролируемое обучение решает дефицитные аннотации

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

Если бы мы следовали традиционному подходу с учителем, мы могли бы использовать только небольшой размеченный набор для обучения модели. Однако благодаря самоконтролируемому обучению мы можем учиться и на немаркированных изображениях. Давайте посмотрим, как это сделать.

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

Результатом вышеизложенного является предварительно обученная модель, которая изучила шаблоны, присутствующие в неразмеченных данных. Эта модель ничего не знает о конкретных медицинских состояниях (поскольку такая информация будет доступна только на этикетках, которые она не видела), но она могла узнать, что некоторые рентгеновские снимки отличаются от других согласованным образом . Это то, что ЛеКун называет накоплением фоновых знаний.

Рабочий процесс обучения с самостоятельным наблюдением состоит из двух этапов: предварительное обучение на немаркированных данных для получения фоновых знаний и точная настройка помеченных данных для обучения решению последующей задачи.

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

Предтекстовые задания

Теперь обсудим предтекстовые задачи, которые модель решает на этапе предобучения. Многие из них были предложены в литературе, и возможности безграничны. Единственное требование состоит в том, что мы должны иметь возможность создавать псевдометки из самих входных данных. Рассмотрим несколько наиболее популярных традиционных подходов.

Маскированный прогноз

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

Прогноз трансформации

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

Пазл

Еще один подход состоит в том, чтобы заставить модель решить головоломку. Мы разрезаем входное изображение на несколько частей, произвольно их переставляем и просим модель найти правильное исходное расположение.

Дискриминация экземпляров

Некоторые другие подходы фокусируют задачу предлога на различении экземпляров. Для этого требуется иметь несколько видов одного и того же объекта, например, фотографии одной и той же кошки, сделанные под разными углами или в разных местах. Варианты этого метода генерируют представления автоматически, например. из трехмерных облаков точек или с использованием генеративных моделей. Таким образом, предтекстовая задача состоит в том, чтобы определить, представляют ли два изображения один и тот же объект или нет.

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

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

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

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

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

Этот подход не ограничивается самостоятельным обучением. На самом деле, он возник как решение контролируемых проблем с несколькими выстрелами. Представьте, что вы отвечаете за безопасность в офисном здании и хотите установить автоматическую дверь, которая открывалась бы только для проверенных сотрудников. Вы получаете только несколько фотографий каждого сотрудника для обучения вашей модели.

Решение здесь может состоять в том, чтобы научить модель распознавать два изображения, независимо от того, изображены они на одном и том же человеке или нет. Затем система может сравнить лицо каждого входящего человека с вашей базой данных фотографий сотрудников и найти совпадение. Такие модели обычно обучаются контрастным способом. Во время обучения им предъявляют три изображения для сравнения друг с другом: два изображения одного человека и одно другого. Цель состоит в том, чтобы узнать, что первые два похожи друг на друга и не похожи на третий. Этот контрастный подход контролируется, поскольку вы знаете, кто на каком изображении, и можете использовать эти знания для создания обучающих выборок.

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

Немного другая разновидность контрастивного обучения оказывается очень подходящей для задач с самоконтролем.

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

В этом подходе мы также представляем модель с тремя изображениями.

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

Цель обучения — научить модель тому, что первые два изображения похожи, и мы хотим, чтобы их скрытые представления были близки друг к другу (ведь повернутый черно-белый кот — это все равно кот), а последнее изображение — непохоже. от первых двух и его скрытое представление, или вложение, должно быть далеко.

Теперь давайте более подробно обсудим пару контрастных архитектур с самоконтролем.

Тройная потеря

Возможно, самый простой подход, который можно себе представить, — это модель, основанная на триплетных потерях. Мы пропускаем привязку, положительное и отрицательное изображения через магистральную модель, такую ​​как ResNet или визуальный преобразователь, чтобы получить их вложения, а затем передаем их тройной функции потерь, цель которой — научить модель расположить якорь и позитивные образы близко друг к другу в латентном пространстве, а якорь и негатив — далеко друг от друга.

Модель, основанная на триплетных потерях, является упрощенной. Теперь давайте рассмотрим несколько современных подходов.

SimCLR

Простая структура для контрастного обучения, или сокращенно SimCLR, была предложена в статье Google Research в 2020 году.

Модель берет два входных изображения: якорь и его преобразованную версию или положительный пример, и пропускает каждое из них через кодировщик ResNet, многослойное восприятие и обучаемый нелинейный слой. Затем потеря шумовой контрастной оценки (NCE) направлена ​​​​на максимальное сходство между двумя вложениями при минимизации сходства с вложениями других изображений из того же мини-пакета.

SimCLR добился отличных результатов в распознавании изображений. К сожалению, как показывают авторы, он лучше всего работает с размером пакета до 4096 и при длительном обучении. Это делает его практически непригодным для использования отдельными лицами и компаниями, не желающими тратить много долларов на облачные вычисления.

МоКо

Momentum Contrast, или MoCo, разработанная командой Facebook AI Research, устраняет некоторые недостатки SimCLR. Им удалось уменьшить размер пакета до 256 благодаря ловкому трюку.

В MoCo есть две сети кодировщиков, параметры которых оптимизируются отдельно: одна для изображения привязки (онлайн-кодировщик), а другая — для положительного примера (кодер импульса). Онлайн-кодировщик оптимизируется с помощью обычного алгоритма на основе градиентного спуска, а импульсный кодировщик обновляется на основе экспоненциального скользящего среднего весов онлайн-кодировщика.

Что наиболее важно, MoCo хранит банк памяти вложений кодировщика импульса и отбирает из него отрицательные примеры для вычисления потерь NCE. Это устраняет необходимость в большом размере партии.

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

На момент публикации MoCo превзошла лучшие контролируемые модели во многих различных задачах компьютерного зрения.

BYOL

Bootstrap Your Own Latent, или BYOL — детище DeepMind. Он основан на MoCo, а также использует преимущества двух сетей, одна из которых обновляется с помощью скользящего среднего веса другой.

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

Хотя BYOL явно не противопоставляет разные изображения друг другу, тщательное исследование показало, что на самом деле это обучение в контрастной манере, хотя и косвенно.

Другие

Существует много других современных архитектур с самоконтролем, и почти каждый месяц появляются новые, превосходящие результаты своих предшественников. Текущие исследования, как правило, в значительной степени сосредоточены на применимости моделей ко многим различным последующим задачам. Большинство из них исходят от мета-исследователей. Некоторыми яркими примерами являются Близнецы Барлоу, SwAV, SimSiam, а также самые последние Tico и VICRegL.

Выбор преобразований

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

Правильный выбор преобразований в контрастном обучении имеет решающее значение для успешного решения реальных проблем.

Современная литература, в том числе статьи SimCLR и MoCo, обсуждавшиеся ранее, утверждают, что определили лучший набор преобразований для использования. Они предлагают случайную обрезку, дрожание цвета и размытие. Авторы доказали, что они лучше всего работают с широким набором последующих задач.

К сожалению, все не так просто. Различные преобразования вносят в модель разные инвариантности, что не всегда может быть желательным.

Что не должно быть контрастным

Отличная статья Xiao et al. под названием Что не должно быть контрастным в контрастном обучении довольно точно иллюстрирует это явление.

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

Различные преобразования вносят в модель разные инвариантности, что не всегда может быть желательным.

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

Затем вы можете точно настроить свою модель для выполнения задач грубой классификации, таких как различение птиц и слонов, поскольку они отличаются гораздо большим количеством вещей, чем цвет. Однако задачи мелкозернистой классификации, такие как различение разных видов птиц или цветов, будут намного сложнее. В этих случаях классы часто различаются в основном цветом, и, поскольку модель во время предварительного обучения научили игнорировать цвет, она может плохо справляться с этими последующими задачами.

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

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

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

Трансформации для рентгена грудной клетки

Давайте теперь посмотрим, насколько важен выбор преобразований для рентгеновских изображений. Представьте, что мы игнорируем нашу последующую задачу классификации изображений по различным медицинским состояниям и просто следуем советам исследователей Google и Meta и используем случайный урожай в качестве нашего преобразования.

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

Затем контрастная потеря научит модель тому, что легкое с повреждением и легкое без него похожи. Такая предварительная подготовка может затруднить точную настройку модели для распознавания этого типа повреждения легких.

Два других якобы лучших преобразования также не годятся для рентгеновских данных. Применение цветового дрожания или размытия, вероятно, будет контрпродуктивным для изображений в градациях серого, где оттенок серого или локальное размытие могут указывать на определенное заболевание. Опять же, преобразования всегда должны выбираться с учетом конкретного набора данных и последующей задачи.

Это все для теоретических соображений; давайте посмотрим на контрастивное обучение с самоконтролем на практике для рентгеновской классификации!

Рентгеновская классификация с самостоятельным обучением

Вместе с моими коллегами из Tooploox мы решили выяснить, какую пользу может принести обучение с самоконтролем медицинской диагностике.

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

Мы выбрали случайное подмножество из примерно 200 тысяч изображений для самоконтролируемого предварительного обучения. После серии экспериментов мы решили использовать небольшое случайное вращение, горизонтальное отражение и случайную перспективу в качестве преобразований, применяемых к опорному изображению. Все изображения в CheXpert имеют метки, но мы проигнорировали их для данных перед обучением.

После предварительной подготовки мы контролируемо настроили модель на размеченных наборах данных разного размера: от 250 до 10 000 изображений. Цель состояла в том, чтобы изучить, как производительность зависит от размера размеченного множества.

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

Оценка эффективности

Мы сравниваем три модельные архитектуры:

  • Традиционный подход к трансферному обучению с ResNet18. Он обучается под наблюдением только на помеченном наборе для тонкой настройки. Это отражает сценарий, в котором мы не используем самоконтролируемое обучение и поэтому вынуждены игнорировать эти немаркированные данные.
  • Простая модель потери триплетов, как обсуждалось ранее, с тем же ResNet18 в качестве магистрали, но предварительно обученная контрастным образом с использованием потери триплетов и нашего выбора преобразований.
  • MoCo от Meta, также с магистралью ResNet18 и нашим набором преобразований.

Каждая модель была обучена и протестирована десять раз, каждая с разным размером помеченного набора для тонкой настройки. Мы сравниваем их по площади под кривой ROC или AUC.

Полученные результаты

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

Модели с самостоятельным наблюдением явно превзошли базовый уровень с учителем. Однако из этих результатов можно сделать и другие интересные выводы:

  • Предварительное обучение с самостоятельным наблюдением обеспечивает наибольшую выгоду, когда помеченный набор является наименьшим: оно превосходит базовый уровень с учителем на 10 процентных пунктов только с 250 помеченными примерами.
  • Предварительное обучение с самостоятельным наблюдением улучшает базовый уровень с учителем, даже если размеченный набор данных больше: с 10 000 размеченных примеров выигрыш по-прежнему составляет около 6 процентных пунктов.
  • MoCo дает больший прирост по сравнению с базовым уровнем, чем Triplet Loss, особенно когда размеченный набор данных мал.

Давайте также подробнее рассмотрим частоты классов в наших данных. Левая панель на рисунке ниже показывает преимущество MoCo по сравнению с базовым уровнем (измеряемое разницей AUC) для каждого класса отдельно. На правой панели показаны частоты классов в наборе данных.

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

Выводы

Самостоятельное обучение компьютерному зрению за последние три года значительно продвинулось вперед. Контрастные архитектуры, выпускаемые крупными исследовательскими лабораториями ИИ, во главе с Meta, постоянно поднимают планку все выше и выше. Это имеет два основных последствия.

Во-первых, возможность эффективно использовать немаркированные наборы данных изменит правила игры во многих отраслях, где аннотированных данных мало.

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

Благодарности

Эта статья основана на докладе, который я сделал на конференции Data Science Summit в Варшаве, Польша, 18 декабря 2022 года. Слайды презентации доступны здесь.

Исследование применения обучения с самоконтролем в медицинских приложениях проводилось совместно с моими коллегами из Tooploox. Подробнее об этом можно прочитать в блоге компании.

Спасибо за прочтение!

Если вам понравился этот пост, почему бы вам не подписаться на обновления по электронной почте на мои новые статьи? А, став участником Medium, вы можете поддержать меня и получить неограниченный доступ ко всем историям других авторов и меня.

Нужна консультация? Вы можете спросить меня о чем угодно или заказать 1:1 здесь.

Вы также можете попробовать одну из других моих статей. Не можете выбрать? Выберите один из них: