Визуализация границ решения классификатора на основе изображений

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Введение


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


Современные подходы к визуализации решений классификаторов в основном либо используют диаграммы рассеивания, которые могут отображать лишь проекции исходных обучающих выборок, но явно не показывают фактические границы принятия решений, либо используют внутреннее устройство классификатора (например kNN, SVM, Logistic Regression) для которых легко построить геометрическую интерпретацию. Такой способ не подойдет для визуализации, например, нейросетевого классификатора.


В статье "Image-based Visualization of Classifier Decision Boundaries" (Rodrigues et al., 2018) предлагается эффективный, красивый и достаточно простой альтернативный метод для визуализации решений классификатора, который лишен вышеописанных недостатков. А именно метод подходит для классификаторов любого вида и строит границы принятия решений с помощью изображений с произвольной частотой дискретизации.


Этот пост — краткий обзор основных идей и результатов из оригинальной статьи.


Описание метода


Основу метода составляет обратное семплирование (англ. upsampling) из плоскости изображения \mathbb{R}^2, которое представляется набором пикселей, в пространство признаков \mathbb{R}^n.


Для работы метода необходимы два отображения P: \mathbb{R}^n \to \mathbb{R}^2 — прямая проекция из пространства признаков в плоскость изображения и обратная P^{-1}: \mathbb{R}^2 \to \mathbb{R}^n. В качестве таких отображений используются LAMP (Joia et al. 2011) и iLAMP (Amorim et al. 2012), соответственно.


Построение


Чтобы построить изображение необходимо присвоить цвет каждому пикселю. Для этого для каждого пикселя y найдем N \geq 1 точек из исходного гиперпространства, где N — параметр, задающийся пользователем. Пусть пиксель y уже имеет n(y) \geq 0 реальных прообразов из обучающей выборки. Тогда равномерно выберем \max(N - n(y), 0) оставшихся точек с поверхности пикселя и найдем для них прообраз через обратную проекцию x_i = P^{-1}(y_i). Таким образом цвет каждого пикселя будет обусловлен как минимум N точками исходного пространства, и все изображение будет закрашено.


Methods difference
[Рис.1] Схематическое изображение разных подходов


Определение цвета


Цвет d каждого пикселя y определяется голосованием большинства для меток классов соответствующих прообразов.


d(y) = \text{argmax}_{k \in C} \sum_{y_i \in y} [f(P^{-1}(y_i)) = k]

где C — множество всех классов, f: \mathbb{R}^n \to C — классификатор.


Каждому классу поставим в соответствие некоторый тон (англ. hue) H_T(k) — если в проекции есть точки из реальной выборки, и немного измененный тон H_{\text{synth}}(k) для пикселей в которых оказались только синтетические точки.


Смешение


Определим смешение пикселя (от англ. confusion) c(y) — как отношение числа меток превалирующего класса к общему числу прообразов пикселя y:


c(y) = \frac{\max_{k \in C} \sum_{y_i \in y} [f(P^{-1}(y_i)) = k]}{|y|}

Высокое значение c(y) говорит о согласованности классификатора, тогда как низкое значение сигнализирует о приближении к разделяющей границе. Информация о смешении кодируется в насыщенность пикселя S(y) — чем выше согласованность, тем выше насыщенность.


Плотность


Несмотря на то, что были сгенерированы минимум N точек прообразов для каждого пикселя, могут остаться пиксели для которых существует гораздо больше реальных точек из обучающей выборки. Такие пиксели должны быть учтены при визуализации. Для этого введем плотность пикселя \rho(y) как число его точек прообразов из \mathbb{R}^n. Можно было бы использовать эту плотность напрямую для определения яркости пикселя как V(y) = \frac{\rho(y)}{\rho_{max}}, но авторы статьи указывают на то что, это не дает желаемого результата, т.к. некоторые тона получаются заведомо темнее чем другие. Поэтому используется более хитрая настройка одновременно насыщенности и яркости через нормализованный параметр плотности.


\hat{\rho} = max(\frac{1}{20} \frac{\rho}{\rho_{avg}}, 1)

Тогда, если \hat{\rho} \in [0, 0.5] — яркость линейно зависит от параметра в пределах [V_{min} = 0.1, V_{max} = 1]. При \hat{\rho} \in [0.5, 1] начинает линейно расти насыщенность от S_{min} = 0.2 до S_{max} = 1.


Color encoding
[Рис.2] Цветовое кодирование


Эксперименты и результаты


Для экспериментов решались задачи бинарной классификации на наборе изображений цифр MNIST и многоклассовой классификации на наборе The Image Segmentation Dataset, который содержит 2310 изображений, поделенных на 7 классов. Для каждого изображения имеется 19 признаков.


Результаты визуализации при различных параметрах разрешения R и минимального числа прообразов N для бинарного классификатора LogisticRegression на MNIST изображены на рисунке [3]. Классы разделяются прямой с высокой точностью и алгоритм визуализации отлиично справляется. При увеличении разрешения, облака исходных точек почти полностью растворяются среди множества сгенерированных точек.


Color encoding
[Рис. 3] Результат визуализации для различных параметров разрешения и минимального числа семплов N для класссификатора LogisticRegression


Визуализация при R=500\text{x}500, N=5 для трех различных классификаторов для мульти-классификации на рисунке [4]. Проекции исходных точек сильно перемешаны, и построить явные разделяющие границы в местах скопления проекций тестовых примеров не представляется возможным. Однако, в стороне от основного скопления получились явные границы классов, информация о которых не отображена на обычных проекциях, но получается только при помощи синтетических точек.


Color encoding
[Рис. 4] Результат визуализации трех различных классификаторов для k=7, R=500x500, N=5


Заключение


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


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

Источник: https://habr.com/ru/post/483608/


Интересные статьи

Интересные статьи

В этой статье я поделюсь некоторым опытом на простом примере. Мне повезло проработать в Банке в течение пяти лет в качестве руководителя направления, аналитика, математика, где-то програ...
В этом посте я постараюсь раскрыть тему написания несложного модульного приложения на языке C89 для обработки 24-битных BMP изображений, использующего в своей работе прос...
Недавно на arXiv.org была загружена статья с не очень интригующим названием "Neural reparameterization improves structural optimization" [arXiv:1909.04240]. Однако оказалось, что авторы, по сути,...
Всем привет. Недавно задался вопросом: «А что, если… ?». В результате родилась вот такая тема-идея: Проектирование на основе «отражения». Этой самой идеей я и хочу поделиться с Вами в данной п...
Сегодня мы поговорим о перспективах становления Битрикс-разработчика и об этапах этого пути. Статья не претендует на абсолютную истину, но даёт жизненные ориентиры.