Перейти к основному содержимому

Влияние фрагментов на прогноз

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

Ниже показаны примеры разбиения изображения на суперпиксели:

На следующем изображении показаны суперпиксели, приводящие к максимальному изменению прогноза, подсвечиваются цветом, как показано ниже (источник):

superpixel-interpretation.jpg

По самым значимым суперпикселям видно, что модель обучилась корректно - при классификации объекта она анализирует именно его, а не на фон.

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

Анализ текстов

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

Выделение суперпикселей

Для выделения суперпикселей существуют различные алгоритмы. Опишем один из самых известных - алгоритм SLIC (simple linear iterative clustering) [1]:

  1. Изображение переводится в цветовое пространство CIELAB. Тогда цвет каждой точки будет кодироваться на тройкой (R,G,B)(R,G,B), а тройкой (l,a,b)(l,a,b).

  2. Инициализируются центры K кластеров по равномерной сетке координат {(lk,ak,bk,x0k,y0k)}k=1K\left\{ (l_k,a_k,b_k,x_{0}^{k},y_{0}^{k})\right\} _{k=1}^{K}. Если у нас NN пикселей, то вначале каждый кластер будет содержать N/KN/K пикселей, а сторона каждого кластера будет примерно равна S=N/KS=\sqrt{N/K}.

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

I(x+1,y)I(x1,y)22+I(x,y1)I(x,y+1)22minx,yΩ(x0k,y0k)\begin{gathered}\left\lVert I(x+1,y)-I(x-1,y)\right\rVert _{2}^{2}+\left\lVert I(x,y-1)-I(x,y+1)\right\rVert _{2}^{2}\\ \to\min_{x,y\in\Omega(x_{0}^{k},y_{0}^{k})} \end{gathered}
  1. В цикле до сходимости, используя алгоритм K-средних:
    1. для каждого центра производится распределение окружающих его пикселей между кластерами по принципу близости до его центра в пространстве (l,a,b,x,y)(l,a,b,x,y) и пространственной окрестности (±2S,±2S)(\pm2S,\pm2S).
    2. обновляются расположения центров кластеров как средние значения 5-мерных векторов, описывающих каждый пиксель.
  2. Постобработка: если обнаружены несвязные области, отнесенные к одному центроиду, они присоединяются к ближайшему соседнему кластеру.

Литература

  1. Achanta R. et al. Slic superpixels. – 2010.