Порог-алерт «якщо температура > 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.







