Средний сдвиг - Mean shift

Средний сдвиг это непараметрический функциональное пространство методика анализа для определения максимумов функция плотности, так называемый Режим -поисковой алгоритм.[1] Домены приложений включают кластерный анализ в компьютерное зрение и обработка изображений.[2]

История

Процедура среднего сдвига была первоначально представлена ​​в 1975 году Фукунага и Хостетлер.[3]

Обзор

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

где это окрестности , набор точек, для которых .

Различия называется средний сдвиг в Фукунаге и Хостетлере.[3] В алгоритм среднего сдвига сейчас устанавливает , и повторяет оценку до тех пор, пока сходится.

Хотя алгоритм среднего сдвига широко используется во многих приложениях, жесткое доказательство сходимости алгоритма, использующего общее ядро ​​в многомерном пространстве, до сих пор не известно.[4] Алияри Гассабех показал сходимость алгоритма среднего сдвига в одномерном случае с дифференцируемой выпуклой и строго убывающей функцией профиля.[5] Однако одномерный случай имеет ограниченное применение в реальном мире. Также доказана сходимость алгоритма в более высоких размерностях с конечным числом (или изолированных) стационарных точек.[4][6] Однако не были предоставлены достаточные условия для того, чтобы общая ядерная функция имела конечные (или изолированные) стационарные точки.

Гауссовский средний сдвиг - это Алгоритм ожидания – максимизации.[7]

подробности

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

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

где - входные образцы и это функция ядра (или Окно Парзена). является единственным параметром в алгоритме и называется пропускной способностью. Этот подход известен как оценка плотности ядра или техника окна Парзена. После того, как мы вычислили из приведенного выше уравнения мы можем найти его локальные максимумы, используя градиентный подъем или какой-либо другой метод оптимизации. Проблема с этим методом «грубой силы» состоит в том, что для более высоких измерений становится невозможно вычислить по всему пространству поиска. Вместо этого средний сдвиг использует вариант того, что известно в литературе по оптимизации как многократный перезапуск градиентного спуска. Начиная с некоторой догадки о локальном максимуме, , который может быть точкой случайных входных данных , средний сдвиг вычисляет градиент оценки плотности в и делает серьезный шаг в этом направлении.[8]

Типы ядер

Определение ядра: Пусть быть -мерное евклидово пространство, . Норма неотрицательное число, . Функция называется ядром, если существует профиль, , так что

и

  • k неотрицательно.
  • k не увеличивается: если .
  • k кусочно непрерывна и

Два наиболее часто используемых профиля ядра для среднего сдвига:

Плоское ядро

Гауссово ядро

где параметр стандартного отклонения работает как параметр пропускной способности, .

Приложения

Кластеризация

Рассмотрим набор точек в двумерном пространстве. Предположим, что круглое окно с центром в C и имеет радиус r в качестве ядра. Среднее смещение - это алгоритм подъема на холм, который включает итеративное смещение этого ядра в область с более высокой плотностью до сходимости. Каждый сдвиг определяется вектором среднего сдвига. Вектор среднего сдвига всегда указывает в сторону максимального увеличения плотности. На каждой итерации ядро ​​сдвигается к центроиду или среднему значению точек внутри него. Метод вычисления этого среднего зависит от выбора ядра. В этом случае, если вместо плоского ядра выбрано ядро ​​Гаусса, то каждой точке сначала будет присвоен вес, который будет экспоненциально затухать по мере увеличения расстояния от центра ядра. При сходимости не будет направления, при котором сдвиг может вместить больше точек внутри ядра.

Отслеживание

Алгоритм среднего сдвига может использоваться для визуального отслеживания. Простейший такой алгоритм мог бы создать карту достоверности в новом изображении на основе цветовой гистограммы объекта на предыдущем изображении и использовать средний сдвиг, чтобы найти пик карты достоверности рядом со старым положением объекта. Карта достоверности представляет собой функцию плотности вероятности для нового изображения, присваивающую каждому пикселю нового изображения вероятность, которая представляет собой вероятность появления цвета пикселя в объекте на предыдущем изображении. Несколько алгоритмов, таких как отслеживание объектов на основе ядра,[9] ансамблевое сопровождение,[10] CAMshift [11][12] расширить эту идею.

Сглаживание

Позволять и быть -мерные входные и фильтрованные пиксели изображения в объединенной области пространственного диапазона. Для каждого пикселя

  • Инициализировать и
  • Вычислить согласно с до схождения, .
  • Назначить . Верхние индексы s и r обозначают пространственную и дальнюю компоненты вектора соответственно. Назначение указывает, что отфильтрованные данные на оси пространственного положения будут иметь компонент диапазона точки конвергенции. .

Сильные стороны

  1. Среднее смещение - это инструмент, не зависящий от приложения, подходящий для анализа реальных данных.
  2. Не принимает никаких предопределенных форм на кластерах данных.
  3. Он способен обрабатывать произвольные пространства функций.
  4. Процедура основана на выборе одного параметра: пропускной способности.
  5. Ширина полосы пропускания / размер окна 'h' имеет физический смысл, в отличие от k-означает.

Недостатки

  1. Выбор размера окна нетривиален.
  2. Несоответствующий размер окна может привести к объединению режимов или возникновению дополнительных «неглубоких» режимов.
  3. Часто требует использования адаптивного размера окна.

Доступность

Варианты алгоритма можно найти в пакетах машинного обучения и обработки изображений:

  • ELKI. Инструмент интеллектуального анализа данных Java с множеством алгоритмов кластеризации.
  • ImageJ. Фильтрация изображений с использованием фильтра среднего сдвига.
  • mlpack. Эффективная реализация на основе алгоритма двойного дерева.
  • OpenCV содержит реализацию среднего сдвига с помощью метода cvMeanShift
  • Набор инструментов Orfeo. Реализация на C ++.
  • Scikit-Learn Реализация Numpy / Python использует дерево шариков для эффективного поиска соседних точек

Смотрите также

использованная литература

  1. ^ а б Чэн, Ицзун (август 1995 г.). «Средний сдвиг, поиск режима и кластеризация». IEEE Transactions по анализу шаблонов и машинному анализу. 17 (8): 790–799. CiteSeerX  10.1.1.510.1222. Дои:10.1109/34.400568.
  2. ^ Команичиу, Дорин; Питер Меер (май 2002 г.). «Среднее смещение: надежный подход к анализу пространства признаков». IEEE Transactions по анализу шаблонов и машинному анализу. 24 (5): 603–619. CiteSeerX  10.1.1.160.3832. Дои:10.1109/34.1000236.
  3. ^ а б Фукунага, Кейносуке; Ларри Д. Хостетлер (январь 1975 г.). «Оценка градиента функции плотности с приложениями в распознавании образов». IEEE Transactions по теории информации. 21 (1): 32–40. Дои:10.1109 / TIT.1975.1055330.
  4. ^ а б Алияри Гассабех, Юнесс (01.03.2015). «Достаточное условие сходимости алгоритма среднего сдвига с гауссовым ядром». Журнал многомерного анализа. 135: 1–10. Дои:10.1016 / j.jmva.2014.11.009.
  5. ^ Алияри Гассабех, Юнесс (01.09.2013). «О сходимости алгоритма среднего сдвига в одномерном пространстве». Письма с распознаванием образов. 34 (12): 1423–1427. arXiv:1407.2961. Дои:10.1016 / j.patrec.2013.05.004. S2CID  10233475.
  6. ^ Ли, Сянжу; Ху, Чжаньи; Ву, Фучао (01.06.2007). «Замечание о сходимости среднего сдвига». Распознавание образов. 40 (6): 1756–1762. Дои:10.1016 / j.patcog.2006.10.016.
  7. ^ Каррейра-Перпинан, Мигель А. (май 2007 г.). «Гауссовский средний сдвиг - это алгоритм ЭМ». IEEE Transactions по анализу шаблонов и машинному анализу. 29 (5): 767–776. Дои:10.1109 / тпами.2007.1057. ISSN  0162-8828. PMID  17356198. S2CID  6694308.
  8. ^ Ричард Селиски, Компьютерное зрение, алгоритмы и приложения, Springer, 2011 г.
  9. ^ Команичиу, Дорин; Вишванатан Рамеш; Питер Меер (май 2003 г.). «Отслеживание объектов на основе ядра». IEEE Transactions по анализу шаблонов и машинному анализу. 25 (5): 564–575. CiteSeerX  10.1.1.8.7474. Дои:10.1109 / тпами.2003.1195991.
  10. ^ Авидан, Шай (2005). Ансамблевое отслеживание. 2005 Конференция компьютерного общества IEEE по компьютерному зрению и распознаванию образов (CVPR'05). 2. Сан-Диего, Калифорния: IEEE. С. 494–501. Дои:10.1109 / CVPR.2005.144. ISBN  978-0-7695-2372-9. PMID  17170479. S2CID  1638397.
  11. ^ Гэри Брадски (1998) Отслеживание лица с помощью компьютерного зрения для использования в перцепционном пользовательском интерфейсе В архиве 2012-04-17 в Wayback Machine, Intel Technology Journal, № Q2.
  12. ^ Эмами, Эбрахим (2013). «Онлайн-обнаружение и исправление сбоев для алгоритма отслеживания CAMShift». 2013 8-я Иранская конференция по машинному зрению и обработке изображений (MVIP). 2013 Иранская конференция по машинному зрению и обработке изображений (MVIP). 2. IEEE. С. 180–183. Дои:10.1109 / ИранскийMVIP.2013.6779974. ISBN  978-1-4673-6184-2. S2CID  15864761.