В статистике и обработке сигналов обнаружение шагов (также известное как сглаживание шагов , фильтрация шагов , обнаружение сдвига , обнаружение скачков или обнаружение краев ) — это процесс обнаружения резких изменений (шагов, скачков, сдвигов) в среднем уровне временного ряда или сигнала. Обычно его рассматривают как особый случай статистического метода, известного как обнаружение изменений или обнаружение точек изменения. Часто шаг мал, а временной ряд искажается каким-либо шумом , и это усложняет задачу, поскольку шаг может быть скрыт шумом. Поэтому часто требуются статистические и/или алгоритмы обработки сигналов.
Проблема обнаружения шагов возникает в различных научных и инженерных контекстах, например, в статистическом управлении процессами [1] ( контрольная карта является наиболее непосредственно связанным методом), в разведочной геофизике (где проблема заключается в сегментации записи каротажа скважины на стратиграфические зоны [2] ), в генетике (проблема разделения данных микроматрицы на схожие режимы числа копий [3] ), и в биофизике (обнаружение переходов состояний в молекулярной машине , как записано в трассах времени-позиции [4] ). Для 2D-сигналов связанная проблема обнаружения границ интенсивно изучалась для обработки изображений . [5]
Когда обнаружение шага должно выполняться по мере поступления данных, обычно используются онлайн-алгоритмы , [6] и это становится частным случаем последовательного анализа . Такие алгоритмы включают классический метод CUSUM, применяемый к изменениям среднего. [7]
Напротив, автономные алгоритмы применяются к данным потенциально долго после их получения. Большинство автономных алгоритмов для обнаружения шагов в цифровых данных можно разделить на категории сверху вниз , снизу вверх , скользящего окна или глобальные методы.
Эти алгоритмы начинаются с предположения, что шагов нет, и вводят возможные шаги-кандидаты по одному за раз, проверяя каждого кандидата, чтобы найти тот, который минимизирует некоторые критерии (например, наименьшее квадратичное соответствие оценочного, базового кусочно-постоянного сигнала). Примером является алгоритм пошагового размещения прыжков , впервые изученный в геофизических задачах, [2] , который недавно нашел применение в современной биофизике. [8]
Алгоритмы «снизу вверх» используют подход, «противоположный» нисходящим методам, сначала предполагая, что между каждым сэмплом цифрового сигнала есть шаг, а затем последовательно объединяя шаги на основе некоторых критериев, проверяемых для каждого кандидата на слияние.
Рассматривая небольшое «окно» сигнала, эти алгоритмы ищут доказательства наличия шага в пределах окна. Окно «скользит» по временному ряду, по одному шагу за раз. Доказательства наличия шага проверяются статистическими процедурами, например, с помощью двухвыборочного t-критерия Стьюдента . В качестве альтернативы к сигналу применяется нелинейный фильтр , такой как медианный фильтр . Такие фильтры пытаются удалить шум, сохраняя при этом резкие шаги.
Глобальные алгоритмы рассматривают весь сигнал за один раз и пытаются найти шаги в сигнале с помощью некоторой процедуры оптимизации. Алгоритмы включают в себя методы вейвлетов [9] и полное вариационное шумоподавление , которое использует методы из выпуклой оптимизации . Если шаги можно смоделировать как цепь Маркова , то также часто используются скрытые марковские модели (популярный подход в сообществе биофизиков [10] ). Когда есть только несколько уникальных значений среднего, то также можно использовать кластеризацию k-средних .
Поскольку шаги и (независимый) шум имеют теоретически бесконечную полосу пропускания и, таким образом, перекрываются в базисе Фурье , подходы обработки сигналов для обнаружения шагов обычно не используют классические методы сглаживания, такие как фильтр нижних частот . Вместо этого большинство алгоритмов явно нелинейны или изменяются во времени. [11]
Поскольку целью обнаружения шагов является нахождение серии мгновенных скачков в среднем значении сигнала, желаемый, базовый, средний сигнал является кусочно-постоянным . По этой причине обнаружение шагов можно выгодно рассматривать как проблему восстановления кусочно-постоянного сигнала, искаженного шумом. Существуют две взаимодополняющие модели для кусочно-постоянных сигналов: как 0-градусные сплайны с несколькими узлами или как наборы уровней с несколькими уникальными уровнями. Поэтому многие алгоритмы обнаружения шагов лучше всего понимать как методы подгонки 0-градусных сплайнов или восстановления набора уровней.
Когда есть только несколько уникальных значений среднего, то уместны методы кластеризации, такие как кластеризация k-средних или сдвиг среднего . Эти методы лучше всего понимать как методы нахождения описания уровня базового кусочно-постоянного сигнала.
Многие алгоритмы явно подгоняют сплайны 0-й степени под зашумленный сигнал, чтобы обнаружить шаги (включая методы пошагового размещения прыжков [2] [8] ), но существуют и другие популярные алгоритмы, которые также можно рассматривать как методы подгонки сплайнов после некоторого преобразования, например, полного вариационного шумоподавления . [12]
Все упомянутые выше алгоритмы имеют определенные преимущества и недостатки в конкретных обстоятельствах, однако, на удивление большое количество этих алгоритмов обнаружения шагов являются частными случаями более общего алгоритма. [11] Этот алгоритм включает минимизацию глобального функционала: [13]
Здесь x i для i = 1, ...., N — это дискретный по времени входной сигнал длины N , а m i — это выходной сигнал алгоритма. Цель состоит в том, чтобы минимизировать H [ m ] относительно выходного сигнала m . Форма функции определяет конкретный алгоритм. Например, выбрав:
где I ( S ) = 0, если условие S ложно, и единица в противном случае, получаем алгоритм шумоподавления полной вариации с параметром регуляризации . Аналогично:
приводит к алгоритму среднего сдвига при использовании адаптивного шагового интегратора Эйлера, инициализированного входным сигналом x . [13] Здесь W > 0 — параметр, определяющий поддержку ядра среднего сдвига. Другой пример:
что приводит к двустороннему фильтру , где — параметр тонального ядра, а W — поддержка пространственного ядра. Еще один особый случай:
задание группы алгоритмов, которые пытаются жадно подогнать сплайны 0-й степени к сигналу. [2] [8] Здесь определяется как ноль, если x = 0, и единица в противном случае.
Многие из функционалов в уравнении ( 1 ), определяемые конкретным выбором, являются выпуклыми : их можно минимизировать с помощью методов выпуклой оптимизации . Другие же являются невыпуклыми, но был разработан ряд алгоритмов для минимизации этих функционалов. [13]
Классический вариационный метод обнаружения шагов — модель Поттса. Она задается невыпуклой задачей оптимизации
Член штрафует число скачков, а член измеряет точность данных x . Параметр γ > 0 управляет компромиссом между регулярностью и точностью данных . Поскольку минимизатор кусочно-постоянен, шаги задаются ненулевыми положениями градиента . Для и существуют быстрые алгоритмы, которые дают точное решение задачи Поттса в . [14] [15] [16] [17]