Как визуализация пространства функций проливает свет на влияние самоконтролируемого предварительного обучения

Соавторами являются Кевин Санчис и Tugdual Ceillier

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

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

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

Зачем нам визуализация?

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

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

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

О трудностях оценки детектора

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

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

Метаданные и визуализация в помощь

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

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

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

Получение лучшего взгляда на наши данные

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

Какой метод визуализации?

Одна из трудностей, с которыми мы сталкиваемся, заключается в том, что мы работаем с входными данными большого размера, в то время как люди обычно предпочитают визуализировать вещи в 2D или 3D. Существует несколько подходов к уменьшению размерности при сохранении локальной и/или глобальной структуры набора данных, например PCA, t-SNE или UMAP, и это лишь некоторые из них. Среди этих инструментов мы выбрали более новый и широко используемый UMAP, который работает быстрее, чем t-SNE, и лучше сохраняет глобальную структуру набора данных².

Строительство промышленного трубопровода

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

Наш пайплайн состоит из трех простых задач:

  • ExtractFeatures, который отвечает за вывод набора данных для извлечения n-мерноговстраиванияиз некоторого промежуточного слоя данного детектора.
  • ReduceDimensions, который применяет метод уменьшения размерности к заданному n-мерному вложению. Пользователю предоставляется выбор метода и целевого количества измерений. В нашем случае нам просто нужно было поддерживать UMAP³, но эта задача построена так, что легко добавить поддержку новых методов!
  • PlotTiledDataset, который предлагает именно то, что мы искали в первую очередь: создание графиков для визуализации двумерных объектов. Для наших экспериментов мы использовали только интерактивные диаграммы рассеяния на основе plotly, но мы легко могли представить поддержку различных типов графиков, если это необходимо.

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

В результате мы создали то, что стремится быть:

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

Как сделать визуализацию полезной

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

На самом деле, мы можем сделать больше: использовать это как основу и отображать несколько метаданных поверх нее!

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

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

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

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

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

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

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

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

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

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

Полностью контролируемый VS самоконтролируемый

В контексте обнаружения объектов на спутниковых снимках мы сравнили два разных детектора транспортных средств. Первая модель — стандартная — была предварительно обучена с учителем в ImageNet, а вторая предварительно обучена с учителем на набор данных fMoW. Наконец, оба были настроены контролируемым образом на одном из наших наборов данных.

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

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

Вопрос перспективы

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

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

Учимся на метаданных

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

На этом графике каждый цвет представляет собой географическое место, где были сделаны спутниковые снимки. Мы видим, что функции, извлеченные из модели, сильно различаются в зависимости от сайта, но только с точки зрения контролируемой модели! Мы могли бы представить, что модель с учителем уделяет гораздо больше внимания общему контексту (может быть, из-за предварительного обучения ImageNet?), тогда как модель с учителем фокусируется на других аспектах.

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

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

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

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

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

Другие идеи применения

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

Конденсация набора данных

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

Идентификация углового случая

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

Заключение

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

Мы надеемся, что это вдохновит другие компании на внедрение подобных инструментов и поделится своим опытом и использованием!

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

² Для получения дополнительной информации об этом мы ссылаемся на эту публикацию.

³ Мы использовали пакет Python umap-learn.