Системи штучного інтелекту

Розподіл балів

  • І половина семестру (09.02-21.03.2026)
    • Лабораторні №№1-3 - 15 балів
    • Презентація 1 - 5 балів (додається до тестів)
  • ІІ половина семестру (23.03-23.05.2026)
    • Лабораторні №№4-6 - 15 балів
    • Презентація 2 - 5 балів (додається до тестів)
  • Протягом семестру
    • Самостійна робота - 20 балів
  • Екзаменаційна сесія
    • Поточні бали - 50 балів
    • Екзаменаційні тести - 50 балів

Диски для звітності

Корисні посилання
Follow Us
Лабораторна робота №4

Багатошарові перцептрони

Мета роботи. Ознайомитися з багатошаровими перцептронами, що призначені для розпізнавання, передбачення та глибокого навчання. Набути практичних навичок з користування нейроемуляторами, провести низку експериментів, щоб дослідити вплив навчальної множини та параметрів на якість результатів.

Доступність і зростаючі обчислювальні можливості сучасних комп'ютерів привели до широкого поширення програм, що використовують принципи нейромережної обробки даних, але виконаних на традиційних комп'ютерах. Цей підхід орієнтується на здатність нейромереж вирішувати формалізовані задачі.

Переваги таких програмних додатків для відносно невеликих завдань очевидні:

  • Не треба витрачатися на нову апаратуру, якщо можна використати комп'ютери загального призначення.
  • Користувач не повинен освоювати особливості програмування.
  • Універсальні комп’ютери не накладають жодних обмежень на структуру нейромереж і способи їх навчання.

Багатошаровий перцептрон

Багатошаровий персептрон (Multilayer Perceptron, MLP) у машинному навчанні є поширеним видом нейронних мереж, які можуть виконувати різноманітні завдання, такі як класифікація, регресія та прогнозування часових рядів.

Це штучна нейронна мережа з прямими зв'язками, що має щонайменше три рівні вузлів: вхідний шар, один або кілька прихованих шарів і вихідний шар. Кожен вузол шару має зв’язок з кожним вузлом наступного шару.

  • Вхідний шар складається з одного або кількох вузлів, кожен з яких відповідає характеристиці або вхідній змінній у даних. Вхідні дані подаються у вхідний шар, і кожен вузол обчислює зважену суму вхідних значень.
  • Кожен вузол у прихованому шарі отримує вхідні дані від усіх вузлів попереднього шару і обчислює зважену суму вхідних даних, яка потім обробляється за допомогою функції активації для створення виходу вузла.
  • Виходи останнього прихованого шару подаються у вихідний шар, де кожен вузол обчислює зважену суму входів і пропускає їх через функцію активації для отримання прогнозу або виходу.
  • Ваги в перцептронах часто навчаються за допомогою механізму зворотного поширення похибки. Різниця між очікуваним і фактичним виходом передається назад через мережу, а ваги змінюються для мінімізації похибки. Таке навчання часто здійснюється за допомогою стохастичного градієнтного спуску або однієї з його варіацій.
Багатошаровий перцептрон
Рис.1. Багатошаровий перцептрон

Мета MLP - зрозуміти основний зв'язок між вхідними даними та вихідною змінною (змінними) у навчальних даних, щоб вона могла робити точні прогнози на нових, ще не бачених даних. MLP можна навчити представляти складні нелінійні взаємодії між вхідними даними та вихідними змінними, змінюючи ваги мережі.

Рис.1. JS-демонстрація роботи багатошарового перцептрона (відкрити)

Сервіс Teachable Machine

Веб-додаток від Google для створення моделей машинного навчання для широкого кола користувачів. Вхідні дані для обробки нейронна мережа отримує через веб-камеру. Це можуть бути різні об'єкти, певний рух або звук. Ви навчаєте комп’ютер розпізнавати ваші зображення, звуки та пози без написання коду машинного навчання. Потім використовуйте свою модель у власних проектах, на сайтах, у програмах тощо. Наприклад, можна навчити Teachable Machine при піднятою вгору долоні говорити «Hi». При піднятому вгору великому пальці - «Cool», а при здивованому обличчю з відкритим ротом - «Wow».

Teachable Machine
Рис.2. Типи данних для навчання Teachable Machine

Використання мережі складається з 3 етапів

1. Збір даних для навчання системи. Дані збирає сам користувач, приклади групуються за класами чи категоріями, за якими буде відбуватися розпізнавання. Для початку потрібно навчити нейромережу. Для цього слід тримати кнопку «Hold to Record» і перед веб камерою показати об'єкт, вимовити слово або здійснити рух - сервіс робить кілька десятків знімків, для того, щоб знайти на зображеннях закономірність. Набір таких знімків прийнято називати «Data Set» (рис.3).

Етап збору даних для навчння нейромережі
Рис.3. Етап збору даних для навчння нейромережі

Інструкція щодо збору даних.

2. Навчання (тренування) нейромережі. Для того, щоб мережа могла розпізнавати візуальні, звукові або рухові образи її потрібно навчити. Для цього користувач має надати достатню кількість образів (об'єкт в різних проекціях, слово вимовлене в різному темпі чи тональності, дещо уповільнений чи пришвидшений рух), щоб мережа запам'ятала цей образ. Присутня кнопка для миттєвого тестування. У випадку неякісного розпізнавання, потрібно надати для навчання мережі більшу кількість образів. Teachable Machine демонструє ефективну «впевненість» - наскільки система «впевнена» у розпізнанні образа (рис.4).

Результати навчання нейромережі
Рис.4. Результати навчання нейромережі, відсоток впевненості у розпізнаванні

Інструкція щодо навчання мережі.

3. Експорт навченої моделі. Навчену для певних образів мережу можна експортувати для різних проектів: сайтів, додатків тощо. Модель можна або завантажити на свій комп'ютер або розмістити її в Інтернеті (рис.5).

Користувацький вибір для збереження моделі
Рис.5. Користувацький вибір для збереження моделі

Інструкція щодо експортування.

Використання сервісу є легким та наочним, опанування прийомами роботи є швидким, а отримані результати вражаючими. На сайті є докладна документація.

Моделі, створені за допомогою Teachable Machine, є моделями TensorFlow.js, тому їх можна експортувати і використовувати наприклад, на веб-сайті, на сервері або в деяких програмах для створення прототипів. Можна експортувати створену модель в інші формати, щоб використовувати на інших платформах і середовищах.

Дізнайтися більше про експорт і використання своєї моделі в Repo Github спільноти Teachable Machine.

Реалізація багатошарових перцептронів в Python

Для реалізації багатошарових перцептронів (MLP) в Python існує кілька популярних бібліотек і фреймворків — від навчальних і простих до професійних і промислових.

  • Основна бібліотека (№1 для класичних алгоритмів) scikit-learn
  • Глибокі нейромережі (основні фреймворки) TensorFlow + Keras, PyTorch, FastAI
  • Спеціалізовані бібліотеки JAX + Flax, Haiku
  • Реалізація «з нуля» NumPy

Лабораторне завдання

  1. Ознайомитися з теоретичними матеріалами щодо машинного навчання нейронних мереж та їх застосування.
  2. Послідовно випробувати наведені приклади. Здійснити низку досліджень в кожному з додатків: з параметрами, що встановлено за замовченням, зі зміненими параметрами.
  3. На сервісі Teachable Machine здійснити кілька експериментів щодо розпізнавання образів: візуальних, звукових, рухомих, змішаних. Зазначити фактори, що впливають на якість розпузнавання. Зберегти модель.
  4. Обрати для реалізації модель багатошарового перцептрону для виконання завдання класифікації.
  5. Алгоритм реалізовувати мовою Python, використовуючи різноманітні бібліотеки.
  6. Результат виконання продемонструвати викладачеві. Пояснити дію алгоритму, вхідні дані та інтерпретацію результату виконання. Під час захисту лабораторної роботи вільно володіти теоретичним матеріалом: особливості нейронних мереж, вимоги щодо даних, фактори, що впливають на результати навчання, усталені терміни, коло практичного застосування моделей.

Зміст звіту

  1. Назва та мета виконання лабораторної роботи.
  2. Короткий опис алгоритму, що вибрано для реалізації.
  3. Скріншоти виконання алгоритму з коротким описом.
  4. Аналітичні висновки щодо отриманих результатів, можливого застосування реалізованої моделі для виконання інших завдань.

Контрольні запитання

  1. Назвіть основні завдання, де використання нейронної мережі буде ефективним.
  2. Що називають відстанню Хемінга, як вона вимірюється.
  3. Які основні етапи призначені для функціонування нейронної мережі.
  4. Які фактори є важливими для навчання нейронної мережі.
  5. Яка парадигма навчання є популярною для багатошарових перцептронів.
  6. З яких міркувань обирається кількість нейронів у вхідному, вихідному і прихованому прошарках в багатошарових перцептронах.
  7. Для чого проводиться нормалізація навчальних даних.
  8. В яких пропорціях обирають кількість навчальних та тестувальних даних
  9. Як довго проводиться навчання BackPropagation, за яких умов припиняється.
  10. Чим можна пояснити певні неточності у результатах навченої мережі.