РОЗПОДІЛЕНЕ ГЛИБОКЕ НАВЧАННЯ ДЛЯ ОБРОБКИ ДАНИХ ІНТЕРНЕТУ РЕЧЕЙ
01.12.2024 13:12
[1. Інформаційні системи і технології]
Автор: Демчишин Владислав Володимирович, магістр, Західноукраїнський національний університет, м. Тернопіль
Сучасні системи Інтернету Речей (IoT) генерують величезну кількість даних, які потребують обробки в реальному часі для прийняття швидких рішень. Проте, традиційні хмарні обчислення можуть спричиняти значні затримки, а граничні обчислення обмежені своїми ресурсами.
Запропонований підхід додає певний рівень інтелекту на ранніх етапах збору даних, що дозволяє відфільтрувати непотрібну інформацію ще на початку. Зазвичай сирі дані зберігаються у сховищах, а вже потім з них вибирається корисна інформація. У такій системі інформація відбирається на етапі збору за допомогою спеціального фільтра на основі штучного інтелекту. Це фільтрування дозволяє уникати зайвих даних і підвищує точність аналізу, коли ці дані потрапляють до глибинної нейронної мережі.
У запропонованій системі використовується 12 різних вхідних параметрів: час події, ідентифікатор вантажівки, ідентифікатор водія, ідентифікатор маршруту, широта, довгота, швидкість, а також інформація про погоду (туман, дощ і вітер). Ці параметри передаються в глибоку нейронну мережу для подальшого аналізу. Конфігурація нейронної мережі обирається з урахуванням специфіки завдання, яке виконує запропонована система, а також обмежень і характеристик середовища IoT.
Особливістю цієї системи є використання підходу потокової передачі даних для збору інформації в IoT-системі. У цій моделі застосовується розподілена глибока нейронна мережа, яка працює на трьох різних рівнях.
Основні технології, що використовуються:
1. Apache NiFi: це платформа, яка автоматизує передачу даних між різними програмними системами. Вона працює на основі потокового програмування і дозволяє легко керувати потоками даних у кластерах, захищати їх за допомогою шифрування TLS, а також розширювати функціонал. NiFi дає змогу налаштовувати та змінювати обробку даних у реальному часі, що робить процес дуже гнучким [1].
2. Minifi: це підпроєкт NiFi, призначений для збору даних безпосередньо з джерела. Minifi фокусується на зборі даних з тих пристроїв, які їх генерують.
3. Apache Kafka: це програмна платформа для обробки потоків даних із високою пропускною здатністю та низькою затримкою. Kafka підтримує безперервну обробку даних, зберігаючи їх у вигляді розподіленого журналу транзакцій. Це дуже корисно для великих систем, де дані постійно передаються у реальному часі [2].
4. Apache Storm: це платформа для розподіленої обробки потоків даних. У Storm дані обробляються у вигляді топології, яка представляє собою граф, де вузли обробляють різні частини інформації, а потоки передають дані від одного вузла до іншого. Такий підхід створює безперервний процес обробки, що працює, доки він не буде завершений [3].
5. Apache Hadoop: це система для зберігання та обробки великих обсягів даних у кластері. Hadoop зберігає дані на декількох вузлах, що дозволяє розподіляти навантаження та забезпечує надійність. Система зберігання даних HDFS (Hadoop Distributed File System) дублює дані, щоб забезпечити їх високу доступність навіть у випадку відмови одного з вузлів [4].
6. HBase: база даних NoSQL, побудована на основі HDFS, забезпечує швидкий доступ до великих обсягів даних.
7. Hive: інтерфейс SQL для роботи з великими даними на базі Hadoop. Hive дозволяє виконувати SQL-подібні запити до даних, що зберігаються в різних базах даних та сховищах, які інтегровані з Hadoop.
Перший рівень обробки в даній системі починається з граничних пристроїв, які збирають 16 вхідних параметрів від IoT-пристроїв. Ці параметри збираються за допомогою Minifi, а потім об'єднуються через систему повідомлень Kafka. Зібрані дані передаються до глибокої нейронної мережі, яка прогнозує цільову подію. Завдяки високій точності та швидкій обробці модель забезпечує швидку відповідь, що знижує затримки. Перед використанням модель навчалась у хмарі на основі даних з великих сховищ.
На другому рівні обробка відбувається на граничному шлюзі, де працюють Менеджер потокової аналітики (SAM) та Apache Storm. Ці інструменти отримують пакети повідомлень від Kafka і передають їх до файлової системи Hadoop на хмарному сервері. На цьому рівні модель DL використовується для прийняття рішень щодо дій на основі даних від навколишніх вузлів. Модель допомагає SAM приймати рішення у реальному часі.
Останній рівень системи знаходиться у хмарі, де розгорнута файлова система Hadoop та інші сервіси для обробки даних. Тут працює основна модель нейронної мережі, яка виконує макроаналітику та навчає моделі для інших рівнів. Сховище даних і користувацький інтерфейс пов'язані з цим рівнем у хмарі.
Глибока нейронна мережа, яка використовується на граничному рівні, спочатку навчається у хмарі, де є достатньо ресурсів для цього процесу. Потім навчена модель розгортається на різних рівнях: від граничних пристроїв до шлюзів і, нарешті, у хмарі. Це дозволяє ефективно фільтрувати дані, передбачаючи події та обираючи відповідні дії. Завдяки цьому наша нейронна мережа здатна працювати навіть на пристроях із обмеженими ресурсами.
Література
1. Li, H., Ota, K., Dong, M. Learning IoT in Edge: Deep learning for the Internet of Things with Edge computing. IEEE Netw. 2018. 32(1), pp. 96–101.
2. Casadei, R., et al. A development approach for collective opportunistic Edge-of-Things services. Inform. Sci. 2019, 498. pp. 154–169.
3. Calo, S.B., Touna, M., Verma, D.C., Cullen, A. Edge computing architecture for applying AI to IoT. In: IEEE International Conference on Big Data. 2017. pp. 3012–3016.
4. White, T. Hadoop: The Definitive Guide, fourth ed. O’Reilly Media, Inc. 2015.