TGViewer
Data Science | Machinelearning [ru] Data Science | Machinelearning [ru] @devsp · 19.8K subscribers
Post #5721 1.27K
⁣Нелинейная интерполяция пропусков в timeseries: INRs для real-time serving с bounded latency

Классическая линейная интерполяция или сплайны ломаются, когда в данных нелинейные паттерны: резкие скачки, осцилляции, аномалии. В production ML это критично для real-time систем, где задержка на предсказание строго ограничена, а ошибки интерполяции приводят к сбоям в мониторинге или A/B тестах. Типичная ошибка — использовать глобальную модель на всю историю, теряя контроль над latency.

Почему INRs, а не просто сплайны
Implicit Neural Representations (INRs) отображают timestamp в значение сигнала через крошечную MLP. Это дает аппроксимацию любой гладкой функции, включая резкие переходы и шумные тренды. Для production ключевое — bounded latency. Если тренировать INR на всей истории, время обучения неконтролируемо растет. Решение — patch-based подход: делим историю на фиксированные окна, например, по 128 точек, и для каждого окна обучаем малую сеть за 30-50 итераций.

Реализация с нулевым оверхедом
Пример кода на PyTorch для окна:

class TinyINR(nn.Module):
def __init__(self, hidden_dim=64):
super().__init__()
self.net = nn.Sequential(
nn.Linear(1, hidden_dim), nn.ReLU(),
nn.Linear(hidden_dim, hidden_dim), nn.ReLU(),
nn.Linear(hidden_dim, 1))

def forward(self, t):
return self.net(t)


Обучаем на наблюдаемых точках окна за 50 шагов, предсказываем пропуски. Предсказание на CPU занимает микросекунды. Ключевой trade-off: при фиксированном размере окна и числе итераций latency детерминировано, но нужно подбирать гиперпараметры под конкретный датасет.

Подводные камни и практические советы
- Overfitting: без weight decay сеть запоминает шум. Используйте L2-регуляризацию.
- Если target latency < 1 мс на CPU, siren-активации (синус) работают лучше ReLU — требуют меньше итераций для сходимости.
- Bounded latency держится только при фиксированном размере окна и числе итераций. Если окно растет, время уходит. В production явно задавайте максимальный размер окна и прерывайте обучение после превышения лимита.
- На реальных данных избегайте глобальных INR без Fourier features: они плохо аппроксимируют высокие частоты, что критично для HFT или медицинских сигналов.

Где применяю в production
- HFT: заполнение микро-пропусков между тиками, где линейная интерполяция дает артефакты (ошибка до 5% на осцилляциях).
- IoT: потеря пакетов от сенсоров — надо вставить значение без задержки, иначе срабатывает ложный alarm.
- Медицинские сигналы (ЭКГ): пропуск в пару отсчетов ломает детекцию аномалий (например, экстрасистол). INR восстанавливают форму волны с MSE < 0.001 при latency 200 мкс на CPU.

Вывод: INRs дают нелинейную гибкость интерполяции, но в real-time serving bounded latency достигается только через patch-based подход с фиксированным окном и числом итераций, иначе вы рискуете получить недетерминированное время ответа.
  • ❤ 1
More from @devsp
  1. Sep 27, 2026Нейрочип НТЦ «Модуль»: единственный серийный в стране Разбор единственного серийного нейро…
  2. Sep 27, 2026[Перевод] Промпт-инжиниринг: как лучше общаться с ИИ Что тебе ответит генеративная модель…
  3. Sep 26, 2026Тем, кто только лезет в ML Начинаешь щупать машинное обучение и хочешь нормально въехать в…
  4. Sep 26, 2026NVIDIA тоже подтянулась к тренду: LeetCode-собесы — на выход И весь замес — вокруг трёх те…
  5. Sep 26, 2026От готовых реплик до памяти о контексте: как AI-чаты дошли до нынешнего уровня В первой ча…
  6. Sep 26, 2026Post #5961
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →