Порог-алерт «если температура > 80°C» срабатывает поздно: к моменту превышения порога проблема уже сформировалась. В наших проектах по IoT-мониторингу мы используем детекцию аномалий — отклонений от нормального паттерна, которые заметны за часы или дни до достижения критического значения. Например, мотор, обычно разогревающийся до 45°C за 20 минут, сегодня достигает 45°C за 8 минут. Это аномалия, хотя температура в норме. Мы реализовали двухуровневую архитектуру, которая выявляет такие отклонения и немедленно алертит оператора. Наш опыт — 5+ лет мобильной разработки и 30+ IoT-проектов — позволяет адаптировать решение под любой сценарий.
Как работает детекция аномалий на мобильном устройстве?
Для IoT-аномалий в реальном времени на мобильном устройстве нужны алгоритмы с малым потреблением памяти и быстрым инференсом. Ниже — сравнение трёх популярных подходов.
| Алгоритм | Потребление памяти | Точность | Скорость инференса |
|---|---|---|---|
| EWMA с адаптивным baseline | <1 МБ | Средняя (унивариативный) | <1 мс |
| Isolation Forest (TFLite) | ~5 МБ (int8) | Высокая (мультивариантный) | ~2 мс |
| LSTM Autoencoder (TFLite int8) | ~4 МБ | Очень высокая (временные ряды) | ~10 мс |
EWMA — лёгкий алгоритм без модели, работает на устройстве с нулевым оверхедом. Его 10-строчная реализация на Kotlin помещается в код-базу за час. Isolation Forest лучше для многомерных данных: обучается офлайн, инференс быстрый, модель конвертируется в TFLite через ONNX. LSTM Autoencoder — лучший выбор для временных рядов с паттернами (суточная цикличность, производственные смены). После квантизации int8 занимает ~4 МБ и выдаёт reconstruction error как меру аномальности.
Почему EWMA — оптимальный выбор для on-device?
EWMA реализуется как простая рекурсивная формула: estimate = alpha * observation + (1 - alpha) * previous_estimate. Адаптивный baseline обновляется на лету: если аномалий не было, baseline смещается к текущим значениям. Порог аномалии — стандартное отклонение, умноженное на коэффициент. Это даёт мгновенную реакцию (<1 мс) без потребления сети и батареи.
Как мы реализовали LSTM Autoencoder на TFLite?
Для сложных временных рядов мы используем LSTM Autoencoder, обученный на нормальных данных. Модель конвертируется в TFLite с квантизацией int8 — размер с 12 МБ уменьшается до ~4 МБ. Инференс выполняется через Interpreter на Android или MLModel на iOS. Reconstruction error вычисляется как средняя квадратичная ошибка по окну; если она превышает порог (подбирается по валидации), фиксируется аномалия. Мы добавили suppressions, чтобы исключить плановые события, и feedback loop (кнопка «Это нормально») для сбора negative samples. После месяца работы количество ложных срабатываний снижается на 60%.
Почему необходима многоуровневая детекция?
Оптимальная архитектура — двухуровневая. На устройстве: лёгкий EWMA для мгновенной реакции (<100 мс). На сервере: тяжёлая модель (Isolation Forest, LSTM AE) с полным историческим контекстом для точной классификации. Мобильное приложение получает события обоих уровней: устройство → прямой пуш через локальное уведомление (если приложение запущено), сервер → FCM/APNs с подтверждённой аномалией и её классификацией.
@Serializable data class AnomalyEvent( val sensorId: String, val timestamp: Long, val value: Double, val baseline: Double, val anomalyType: AnomalyType, // SPIKE, DRIFT, PATTERN_BREAK val severity: Severity, val possibleCause: String? // заполняется сервером через LLM ) AI-детекция аномалий IoT-датчиков: аналитика и управление ложными срабатываниями
Экран аналитики должен показывать heatmap аномалий по датчикам и времени суток, кластеры по типу (DBSCAN на сервере), корреляции между датчиками. Эти инсайты появляются только при накоплении данных за несколько недель, поэтому важно сразу настроить сбор контекста.
Как управлять ложными срабатываниями? — ai детекция аномалий
- Feedback loop: кнопка «Это нормально» на карточке аномалии — отправляет negative sample, сервер учитывает в дообучении.
- Suppressions: «не сигнализировать по датчику T-5 с 06:00 до 08:00 — это плановый прогрев».
- Confidence threshold: показывать только аномалии с confidence > 0.8.
Сравнение on-device и серверной детекции
| Критерий | On-device | Серверная |
|---|---|---|
| Задержка | <1 мс | ~100 мс (сеть) |
| Точность | Средняя (EWMA) | Высокая (LSTM) |
| Автономность | Полная | Зависит от сети |
| Обновление модели | Через OTA | Мгновенно |
Выбор определяется сценарием: для критичных по времени реакций нужен on-device, для детального анализа — сервер.
Что входит в работу
- Разработка модуля детекции аномалий с двухуровневой архитектурой.
- Обучение и квантизация моделей (EWMA, Isolation Forest или LSTM по выбору).
- Интеграция в мобильное приложение (Android/iOS) с поддержкой TFLite/Core ML.
- Настройка feedback loop, suppressions и панели аналитики.
- Документация, обучение операторов, поддержка в течение месяца после запуска.
Экономия на алертах за счёт раннего обнаружения достигает 40%. Оценим ваш проект за 2 рабочих дня. Наш опыт — 5+ лет мобильной разработки и 30+ IoT-проектов — гарантирует стабильную работу системы. Закажите консультацию для оценки вашего проекта — подберём оптимальное решение. Свяжитесь с нами.
Ссылки: EWMA на Wikipedia, TFLite документация.







