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

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

  • І половина семестру (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
Лабораторна робота №3

Класичне машинне навчання

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

Класичне машинне навчання

Класичне машинне навчання (Classical Machine Learning, ML) — це набір технік і методик аналізу даних, що базуються на принципі виявлення закономірностей або прихованих патернів та прийняття рішень з мінімальною участю людини. Процес класичного навчання схожий на навчання дитини — чим більше зроблено спроб та отримано досвіду, тим точнішим буде результат.

Типи навчання

  1. Контрольоване навчання або навчання з вчителем. Процес контролюється розробником, який відповідає за маркування даних, встановлення правил та обмежень роботи алгоритмів. Для навчання використовують набори розмічених даних, які легко класифікувати. Завдання навчання з учителем: класифікація та регресія.
  2. Неконтрольоване навчання або навчання без вчителя. Процес не контролюється розробником, а бажані результати обробки є невідомими та визначаються алгоритмом. Для навчання використовують нерозмічені набори даних. Завдання навчання без вчителя: кластеризація, пошук асоціативних правил, виявлення аномалій.
  3. Навчання з частковим залученням вчителя. Метод поєднує переваги контрольованого та неконтрольованого навчання. Процес поділяється на два етапи:
    • Навчання на наборах розмічених даних для налаштування та розпізнавання ознак.
    • Самостійне навчання моделі на наборах нерозмічених даних.
    Тобто модель самостійно навчається, дотримуючись спочатку заданого набору правил. Метод використовується, якщо неможливо позначити мітки та виявити ознаки.
  4. Навчання з підкріпленням за допомогою техніки дослідження та засвоєння правильних та невірних дій. Алгоритм здійснює дії, аналізує отримані результати та виконує наступні дії з врахуванням отриманого досвіду.

Навчання з вчителем

Наївний Байєс для класифікації спаму

Наївний Байєс (Naive Bayes) — це популярний алгоритм машинного навчання з вчителем, який використовується для завдань класифікації. Є особливо ефективним в обробці природної мови, аналізі текстів та фільтрації спаму. Алгоритм базується на теоремі Байєса і передбачає, що наявність конкретної ознаки в класі не залежить від наявності інших ознак. Алгоритм розглядає кожну ознаку як таку, що незалежно впливає на ймовірність певного результату.

Як працює алгоритм

  • Токенізація, розділення тексту на окремі слова
  • Підрахунок частот, скільки разів кожне слово з'являється у спамі та не спамі
  • Згладжування Лапласа: P(слово|клас) = (кількість + 1) / (всього + розмір_словника)
  • Теорема Байєса: P(клас|текст) ∝ P(клас) × ∏ P(слово|клас)
  • Використання логарифму для уникнення антипереповнення
  • Математика: P(спам|текст) = P(спам) × P(слово1|спам) × P(слово2|спам) × ...
Рис.1. JS-демонстрація вирішення задачі класифікації за алгоритмом Наївного Байєсу (відкрити)

Cистема прийняття рішень на основі Дерева рішень для видачі кредиту

Дерево рішень (Decision Tree) - це техніка машинного навчання, яку можна використовувати для завдань регресії та класифікації. Алгоритм поділяє набір даних на менші частини, доки дані не будуть розділені на окремі екземпляри, які потім класифікуються.

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

В даному прикладі задіяно Числові пороги (дохід, вік, сума кредиту) та Категоріальні атрибути (історія, робота, застава). Кредитна історія - головний фактор

Рис.2. JS-демонстрація вирішення задачі класифікації за алгоритмом Дерева Рішень (відкрити)

Лінійна регресія

Проста лінійна регресія (Simple Linear Regression) моделює зв'язок між незалежною та залежною змінними у вигляді лінії. Залежна змінна повинна бути неперервною/реальною величиною, що є найважливішим аспектом аналізу. Незалежна змінна може бути обчислена з використанням безперервних або категоріальних значень.

Основними цілями алгоритму простої лінійної регресії є

  • Створення моделі, яка відображає взаємозв'язок між двома змінними. Наприклад, співвідношення доходу до витрат, співвідношення метражу квартири до її ціни тощо.
  • Передбачення нових результатів, наприклад, ціна квартири на основі її метражу, дохід компанії на основі річних витрат.

Інтерактивний графік на прикладі:

  • Вісь X: Площа квартири (0-150 м2)
  • Вісь Y: Ціна (0-3 млн.грн)

Лінійна регресія (метод найменших квадратів):

  • Знаходження оптимальної прямої: y = mx + b
  • m (slope) - наскільки зростає ціна при збільшенні площі на 1 м2
  • b (intercept) - базова ціна
  • R2 - коефіцієнт детермінації (0-1), якість моделі

Математика:

  • m = Σ[(xi - x̄)(yi - ȳ)] / Σ[(xi - x̄)2]
  • b = ȳ - m·x̄
  • R2 = 1 - (SS_res / SS_tot)
Рис.3. JS-демонстрація вирішення задачі передбачення за алгоритмом лінійної регресії (відкрити)

Навчання без вчителя

Алгоритм кластеризації K-Means

Алгоритм k-means використовують для групування об'єктів у набори (кластери) на основі їхньої схожості. В основу роботи k-means покладено принцип мінімізації відстані між об'єктами всередині одного кластеру.

Спочатку вибираються кілька центрів для груп (наприклад, для трьох груп – три центри). Далі алгоритм розподіляє всі об’єкти по групах, визначаючи, якого центру вони ближче. Після цього він переобчислює центри нових груп і повторює процес, доки центри не перестануть сильно змінюватися. Це дозволяє створити групи з об’єктами, схожими між собою.

Алгоритм, показаний на прикладі:

  • Ініціалізація K-Means. Розумний вибір початкових центроїдів
  • Кожна точка призначається найближчому центроїду
  • Центроїди переміщуються в центр мас своїх точок
  • Кроки до збіжності або досягнення ліміту ітерацій
Рис.4. JS-демонстрація вирішення задачі кластеризації за методом k-means (відкрити)

Алгоритм кластеризації DBSCAN

DBSCAN (density-based spatial clustering of applications with noise) — алгоритм кластеризації даних, що засновано на щільності. Для заданої множини об’єктів в деякому просторі алгоритм відносить до одної групи об’єкти, які розташовані найбільш щільно (об’єкти з багатьма сусідами) та помічає об’єкти, які знаходяться в областях з невеликою щільністю (чиї сусіди розташовані занадто далеко) як шум (викиди).

Алгоритм, показаний на прикладі:

  • Для кожної точки шукає сусідів в радіусі epsilon
  • Epsilon (ε) - радіус околу для пошуку сусідів (10-100)
  • Якщо знайдено >= minPoints сусідів - формує кластер
  • MinPoints - мінімальна кількість точок для формування кластера (2-10)
  • Алгоритм рекурсивно розширює кластер, додаючи сусідів сусідів
  • Точки без достатньої кількості сусідів позначаються як шум
Рис.5. JS-демонстрація вирішення задачі кластеризації за методом DBSCAN (відкрити)

Навчання без вчителя

Q-навчання

Ця демонстрація відповідає опису алгоритму глибокого навчання з підкріпленням Q-Learning.

  • 2D-агент, в якого 9 очей спрямовані під різними кутами вперед.
  • Кожне око сприймає 3 значення вздовж свого напрямку (до певної максимальної відстані видимості):
    • відстань до стіни
    • відстань до зеленого предмета
    • відстань до червоного предмета
  • Агент орієнтується, використовуючи одну з 5 дій, які повертають його під різними кутами.
  • Червоні предмети – це їжа, і агент отримує винагороду за їх з'їдання.
  • Зелені предмети – це отрута, і агент отримує негативну винагороду за їх з'їдання.

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

Рис.6. JS-демонстрація навчання з підкріпленням Q-Learning (відкрити)

Реалізації класичних алгоритмів у Python

Для реалізації класичних алгоритмів у Python існує кілька спеціалізованих бібліотек.

  • Основна бібліотека (№1 для класичних алгоритмів) scikit-learn
  • Наївний Байєс sklearn.naive_bayes
  • Дерева рішень sklearn.tree
  • Лінійна регресія sklearn.linear_model, statsmodels (для статистичного аналізу)
  • K-найближчих сусідів sklearn.neighbors
  • Метод опорних векторів sklearn.svm
  • K-Means, DBSCAN sklearn.cluster
  • Q-Learning NumPy

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

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

Зміст звіту

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

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

  1. Для вирішення яких завдань призначені алгоритми з контрольованим навчанням.
  2. Для вирішення яких завдань призначені алгоритми з неконтрольованим навчанням.
  3. Для вирішення яких завдань призначені алгоритми з навчанням з підріпленням.
  4. Назвати особливості алгоритму Наївного Байєсу.
  5. Назвіть особливості і складності вирішення задачі кластеризації.
  6. Яким чином вирішується задача класифікації за допомогою Дерева рішень.
  7. Які особливості використано в алгоритмі DBSCAN.
  8. Які корисні властивості запозичено для реалізації алгоритмів навчання з підкріпленням.
  9. Назвати особливості алгоритму K-Means.
  10. Які критерії вказують на ефективність алгоритмів класичного машинного навчання.
  11. Які основні налаштування закладено в алгоритм Дерево рішень
  12. Назвати правила поведінки в алгоритмі Q-Learning.