ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 декабря
1561791 Топик полностью
Бoмж (Сегодня, 16:43, просмотров: 52) ответил IBAH на Как красивее всего найти экстремум функции распределения случайного процесса? Есть случайный процесс, хочу налету определять его наиболее вероятное значение за все время наблюдения. Процесс явно не нормальный, матожидание не совпадает с экстремумом. Складывать в буфер и сортировать - не предлагать .
Грок предлагает: 

Самый элегантный способ найти экстремум функции плотности вероятности (PDF) случайного процесса в реальном времени — это использовать онлайн-алгоритм на основе стохастического градиентного подъёма для оценки моды, без хранения всех наблюдений. Один из таких методов — итеративный алгоритм MODE, который моделирует процесс как решение обыкновенного дифференциального уравнения (ODE) для обеспечения сходимости. Он подходит для гладких unimodal распределений (с одной модой), где процесс не нормальный, и мода не совпадает с математическим ожиданием.Предположения метода:Распределение имеет гладкую плотность с уникальной модой.
Наблюдения — независимые идентично распределённые (i.i.d.) выборки из процесса.
Выбрано подходящее ядро K (например, гауссово), для аппроксимации градиента плотности.

Алгоритм шаг за шагом:Инициализация:Начальная оценка моды m_0 (можно взять среднее первых нескольких наблюдений).
Выбрать маленькие параметры: регуляризация λ > 0 (для стабильности) и полосу пропускания ε > 0 (bandwidth для ядра).
Определить масштабированное ядро K_ε(x) = ε^{-p} K(x / ε), где p — размерность (для 1D p=1).

Для каждого нового наблюдения X_{n+1}:Вычислить аппроксимацию градиента плотности:
∇K_ε(m_n - X_{n+1}).
Это использует свойство свёртки: градиент плотности в точке m приблизительно равен математическому ожиданию ∇K_ε(m - X).
Вычислить направление обновления:
d_{n+1} = ∇K_ε(m_n - X_{n+1}) - λ m_n.
(Терм -λ m_n — регуляризация, предотвращающая расхождение.)

Обновление оценки:Выбрать размер шага a_n (например, a_n = 1/n для сходимости).
m_{n+1} = m_n + a_n d_{n+1}.

Вывод:Текущая m_{n+1} — оценка моды на основе всех наблюдений до момента n+1.

Преимущества:Работает "на лету": обрабатывает одно наблюдение за раз, не хранит прошлые данные.
Не требует сортировки или полного буфера.
Сходимость доказана через анализ ODE: обновление моделируется как стохастическая аппроксимация, где траектория m_n следует ODE \dot{m} = ∇f(m) - λ m, с глобальной стабильностью в нуле благодаря регуляризации.
Подходит для многомерных случаев и не требует нормальности.

Этот метод эффективен для потоковых данных и вычислительно прост.

arxiv.org

Если распределение может быть мультимодальным или с концептуальным дрейфом, можно использовать адаптивный онлайн-оценщик плотности, такой как ALoKDE (Adaptive Local Online Kernel Density Estimator). Он строит оценку плотности в реальном времени с постоянной памятью, обнаруживает изменения в распределении и позволяет найти моду как максимум оценённой плотности. Это robust к шуму и работает без хранения данных, с линейной сложностью по времени.

pmc.ncbi.nlm.nih.gov

Для реализации рекомендуется тюнить параметры (ε, λ, a_n) на основе шкалы данных, возможно, с помощью кросс-валидации на начальных наблюдениях.

memento mori