Классификация и прогнозирование картин в Метрополитен-музее

Введение

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



Оглавление

  1. Методы на основе признаков
  2. Методы на основе встраивания
  3. Коллективная классификация
  4. Краткое содержание

Методы на основе признаков

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

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

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

0 10733 
1 305
Name: Highlight, dtype: int64

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

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

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

Accuracy 0.7889492753623188 
Precision 0.08961303462321792 
Recall 0.6984126984126984 
F1-score 0.15884476534296027

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

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

Методы на основе встраивания

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

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

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

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

Распространение метки

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

sklearn уже реализовал этот алгоритм для использования с двумя основными ядрами: kNN и rbf. Мы можем управлять такими параметрами, как гамма и n_neighbors, чтобы контролировать «расстояние», которое модель сканирует вокруг помеченных узлов.

Для нашего варианта использования технически у нас есть только одна метка (1 для «Highlight»), и у нас также есть большой объем произведений искусства, связанных с такими узлами, как «unknown_Period» или «unknown_Culture», как показано в части 3 (эти узлы имели высокие показатели центральности). ). Все это, по сути, означает, что большинство конфигураций наших моделей будут просто выводить «Выделение», которое будет распространяться почти на все наши узлы, указывая, что все произведения искусства должны быть выделены. Хотя в этом нет ничего плохого, это не дает нам большой ценности с точки зрения модели — мы могли бы просто сказать это и покончить с этим.

Highlight     Is Public Domain 
No Highlight  True                6567               
              False               4166 
Highlight     True                 235               
              False                 70
dtype: int64

Что нам нужно сделать в первую очередь, так это создать эвристику, которая позволит нам контролировать то, что «подходит» для действительного выделения. В нашем наборе данных выделено только около 300 произведений искусства, из которых более 75% находятся в общественном достоянии. Мы можем атрибутировать узлы, которые не выделены и не находятся в открытом доступе, с 0, указывающим, что они «не имеют права» быть выделенными. Это можно легко изменить на любую эвристику, имеющую смысл с учетом данных и предметной области.

-1    6567  
0     4166  
1     305 
Name: Highlight, dtype: int64

Обратите внимание, что модели необходимо, чтобы непомеченные узлы имели значение -1.

Вы можете извлечь вероятности модели для каждого класса, используя метод predict_proba(), а затем использовать transduction_ после того, как модель будет подобрана, чтобы присвоить метки строкам.

array([[4.46560147e-17, 1.00000000e+00],        
      [4.46560147e-17, 1.00000000e+00],        
      [4.89043690e-17, 1.00000000e+00],        
      ...,        
      [1.00000000e+00, 4.60058884e-51],        
      [1.00000000e+00, 1.50981524e-52],        
      [1.00000000e+00, 1.07327710e-50]])
0    6300 
1    4738 
dtype: int64

Теперь у нас есть более 4000 произведений искусства, которые потенциально можно рассмотреть для выставления в музеях! Также необходимо выполнить оценку модели, и есть некоторые параметры (гамма или n_neighbors), которые можно настроить для обеспечения «хорошего» разделения, но это довольно субъективная задача, поэтому оценка на основе задач с экспертами в предметной области, вероятно, будет лучшей стратегией оценки. .

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

Давайте рассмотрим некоторые обозначения и то, как матрицы объединяются. Графическое машинное обучение от Stamile et. др. объясняет это довольно хорошо, если вы хотите получить более подробную информацию.

Распространение этикетки

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

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

array([[1.00000000e+00, 2.14018170e-10],        
      [1.00000000e+00, 2.05692171e-10],        
      [1.00000000e+00, 2.13458111e-10],        
      ...,        
      [1.00000000e+00, 4.27035952e-18],        
      [1.00000000e+00, 3.85172946e-28],        
      [1.00000000e+00, 1.33374342e-32]])
0    6127 
1    4911 
dtype: int64

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

Коллективная классификация

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

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

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

Коллективная классификация — это вероятностная структура, построенная на предположении Маркова: метка одного узла зависит от меток его соседей (цепь Маркова первого порядка). Он включает в себя 3 шага:

Локальный классификатор: назначьте начальные метки.

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

Реляционный классификатор: фиксируйте корреляции между узлами.

  • Использует сетевую информацию для классификации меток узлов на основе меток и/или атрибутов своих соседей.

Коллективный вывод: распространение корреляций по сети.

  • Итеративно применяйте реляционный классификатор к каждому узлу и повторяйте до тех пор, пока несоответствия между соседними метками не будут сведены к минимуму.

Для Коллективной классификации используются три общие модели:

Вероятностный реляционный классификатор

  • Вероятность класса узла представляет собой средневзвешенное значение вероятностей классов его соседей.
  • Помеченные узлы инициализируются меткой истинности. Непомеченные узлы инициализируются с 0,5.
  • Узлы помечаются путем суммирования меток ближайших узлов первого порядка (наземные метки и 0,5 для непомеченных узлов) и деления на общее количество узлов первого порядка.
  • Все узлы обновляются в случайном порядке до сходимости или до тех пор, пока не будет достигнуто максимальное количество итераций.

Ограничения:

  • Сходимость не гарантируется
  • Модель не использует информацию об особенностях узла

Итеративная классификация

  • Основная идея состоит в том, чтобы классифицировать узлы на основе их атрибутов, а также меток набора соседей.
  • По существу обучены два классификатора. Один предсказывает метку узла на основе вектора признаков узла. Второй прогнозирует метку узла на основе вектора признаков узла и сводки меток соседей узла.
  • Сводка меток соседей должна быть вектором и может быть представлена ​​в виде: гистограммы количества каждой метки, наиболее распространенной метки или количества различных меток в наборе соседей.
  • На этапе 1 два классификатора строятся на обучающем наборе, а на этапе 2 метки устанавливаются на тестовом наборе на основе классификатора 1, вычисляется суммарный вектор, и метки прогнозируются с помощью классификатора 2. Это повторяется для каждого узел.

Ограничения:

  • Сходимость при этом методе также не гарантируется.

Зацикленное распространение убеждений

  • Подход динамического программирования, при котором узлы итеративно «передают сообщения» друг другу, чтобы отвечать на вероятностные запросы. Вера рассчитывается, когда достигается консенсус.
  • Каждый узел может взаимодействовать (передавать сообщение) только со своими соседями, и это сообщение прослушивается каждым узлом от своего соседа, обновляется и затем передается дальше. Думайте об этом так же, как об игровом телефоне.

  • Алгоритм требует упорядочения узлов, а направления ребер соответствуют порядку набора узлов. Это определяет способ передачи сообщения.
  • Использует потенциальную матрицу меток-меток, которая является зависимостью между узлом и его соседом. Он пропорционален вероятности принадлежности узла к классу при условии, что у него есть сосед в том же классе.
  • Использует предыдущие убеждения, которые пропорциональны вероятности того, что узел является классом.
  • Использует «сообщение», которое представляет собой оценку узла того, что следующий узел является классом.
  • Все сообщения инициализируются равным 1, а затем для каждого узла мы хотим вычислить, какое сообщение будет отправлено (вера данного узла в класс следующего узла). Это вычисляется путем суммирования по всем состояниям соседей потенциала метки-метки, априорного состояния и сообщений, отправленных соседями из предыдущего раунда.

Ограничения:

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

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

Краткое содержание

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

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

Даже со всеми этими новыми идеями и методологиями я до сих пор даже не обсудил то, что в последние годы было связано с графами — Graph Neural Networks. В следующих частях я перенесу эту серию в графовые нейронные сети, но имейте в виду, что глубокое обучение по-прежнему актуально только для конкретных проблем с данными. Большинство проблем с данными являются табличными и не требуют глубоких нейронных сетей для решения, но никогда не помешает расширить базу знаний!

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

Рекомендации

[1] Клаудио Стамиле, Альдо Марзулло, Энрико Деузебио, Графическое машинное обучение

[2] Юре Лесковец, Стэнфорд, CS224W: машинное обучение с графиками

[3] Исли, Дэвид и Клейнберг, Джон. 2010. Сети, толпы и рынки: рассуждения о высокосвязанном мире

[4] Метрополитен-музей открытого доступа