Системи штучного інтелекту
Анотація курсу
Курс охоплює вивчення найбільш поширених алгоритмів машинного навчання, таких як регресійні моделі, вирішальні дерева, градієнтний бустинг, метричні алгоритми, метод опорних векторів та байєсівські моделі. Особлива увага приділяється методам боротьби з перенавчанням, таким як регуляризація та крос-валідація, а також оцінюванню якості алгоритмів. Практична частина курсу включає використання Python-бібліотек (NumPy, SciPy, TensorFlow, Flask тощо) для розробки моделей та їхнього розгортання у web-застосунках. В результаті вивчення курсу ви опануєте сучасні фреймворки машинного навчання та оволодієте навичками оптимізації і впровадження штучного інтелекту в різних галузях.
Мета:
Метою курсу є формування теоретичних знань та практичних навичок щодо використання понять штучного інтелекту, пошуку рішення у просторі станів, інтелектуальних агентів, машинного навчання та розгортання побудованих моделей у вигляді web-застосунку
Основні завдання:
Основними завданнями вивчення курсу є набуття теоретичних знань та практичних умінь з формування базового уявлення про галузі застосування систем штучного інтелекту; набуття вмінь і навичок розв’язання задач з використанням систем штучного інтелекту; опанування теоретичних і практичних питань створення та застосування систем штучного інтелекту; вивчення механізмів обробки і подання знань в інтелектуальних системах.
Що ви будете знати:
- типи задач машинного навчання;
- основні поняття машинного навчання;
- принципи побудови регресійних і класифікаційних моделей;
- методи навчання моделей машинного навчання;
- поняття перенавчання моделей та засоби боротьби з ним;
- принципи побудови вирішальних дерев та методів їх навчання;
- основні композиційні алгоритми;
- засади функціювання метричних алгоритмів.
Що ви будете вміти:
- будувати моделі машинного навчання;
- застосовувати спеціалізовані бібліотеки мови програмування Python для проектування моделей машинного навчання;
- застосовувати методи навчання моделей;
- використовувати засоби боротьби з перенавчанням моделей;
- виконувати валідацію моделей;
- застосовувати композиційні алгоритми і налаштовувати їх параметри;
- застосовувати високорівневі фреймворки машинного навчання;
- самостійно опановувати нові фреймворки та методи навчання моделей, використовувати документацію.
- створювати власні веб-застосунки і розгортати на них навчені моделі.
Тематичний план курсу
Змістовий модуль 1. Принципи побудови моделей машинного навчання
Тема 1. Загальні положення систем штучного інтелекту. Базові поняття штучного інтелекту. Визначення штучного інтелекту за М. Мінським. Тест Тюрінга. Галузі застосування штучного інтелекту. Сприйняття і розпізнавання образів. Логічні ігри. Розв’язання задач. Розуміння природної мови. Робототехніка. Класифікація систем штучного інтелекту.
Тема 2. Введення у машинне навчання. Типи задач машинного навчання. Навчання на розмічених даних (supervised learning). Навчання без учителя (unsupervised learning). Типи ознак в машинному навчанні. Поняття навчальної вибірки і відповіді у задачах навчання з учителем.
Тема 3. Лінійні моделі. Лінійні моделі в задачах регресії. Навчання моделей лінійної регресії. Градієнтний спуск для лінійної регресії. Стохастичний градієнтний спуск. Лінійна класифікація. Функція втрат в задачах класифікації.
Тема 4. Боротьба з перенавчанням моделей. Проблема перенавчання. Регуляризація. Оцінювання якості алгоритмів. Метод крос-валідації. Порівняння алгоритмів і підбір гіперпараметрів. Метрики якості в задачах регресії. Метрики якості в задачах класифікації. Якість оцінок приналежності до класу.
Змістовий модуль 2. Вирішальні дерева та їх композиції
Тема 5. Вирішальні дерева. Навчання вирішальних дерев. Критерії інформативності. Критерії зупину і стрижки дерев. Вирішальні дерева і категоріальні ознаки. Композиції дерев. Зміщення і розкид.
Тема 6. Градієнтний бустінг. Випадкові ліси. Композиції простих алгоритмів. Метод градієнтного бустінгу. Боротьба з перенавчанням в градієнтному бустінгу. Градієнтний бустінг для регресії і класифікації. Градієнтний бустінг над вирішальними деревами. Змістовий модуль 3. Огляд методів та розгортання моделей штучного інтелекту
Тема 7. Байєсівський класифікатор. Теорема Баєса. Баєсівський підхід до теорії ймовірностей. Баєсівські моделі в задачах машинного навчання. Відновлення розподілів. Мінімізація ризиків. Мінімізація ризиків і аналіз функцій втрат.
Тема 8. Метричні алгоритми і метод опорних векторів. Метод k найближчих сусідів. Налаштування параметрів в kNN. Метрики в kNN. Прокляття розмірності. Рекомендуючі системи на основі kNN.
Тема 9. Метод опорних векторів (SVM). Ядра в методі опорних векторів. Ррозв’язання задач машинного навчання без вчителя. Задача кластеризації. SVM-регресія.
Тема 10. Розгортання моделі. Використання бібліотеки PyCaret для порівняння моделей. Налаштування моделей. Створення front-end частини застосунку. Фреймворк для створення web-застосунків Flask. Платформа для надання доступу до локальних серверів Ngrok.
Загальна інформація
Форма навчання | Кількість кредитів ECTS | Загальна кількість академічних годин | Лекційні | Лабораторні | Самостійна робота | Форма контролю |
---|---|---|---|---|---|---|
Денна | 9,5 | 285 | 68 | 52 | 165 | залік, екзамен |
Заочна | 9,5 | 285 | 14 | 10 | 261 | залік, екзамен |
Компетентності | Результати навчання |
---|---|
ЗК01 Здатність до абстрактного мислення, аналізу та синтезу. ЗК02 Здатність застосовувати знання у практичних ситуаціях. ЗК05 Здатність вчитися і оволодівати сучасними знаннями. ЗК06 Здатність до пошуку, оброблення та аналізу інформації з різних джерел. СК01 Здатність ідентифікувати, класифікувати та формулювати вимоги до програмного забезпечення. СК02 Здатність брати участь у проектуванні програмного забезпечення, включаючи проведення моделювання (формальний опис) його структури, поведінки та процесів функціонування. СК03 Здатність розробляти архітектури, модулі та компоненти програмних систем. СК04 Здатність формулювати та забезпечувати вимоги щодо якості програмного забезпечення у відповідності з вимогами замовника, технічним завданням та стандартами. СК05 Здатність дотримуватися специфікацій, стандартів, правил і рекомендацій в професійній галузі при реалізації процесів життєвого циклу. СК06 Здатність аналізувати, вибирати і застосовувати методи і засоби для забезпечення інформаційної безпеки (в тому числі кібербезпеки). СК10 Здатність накопичувати, обробляти та систематизувати професійні знання щодо створення і супроводження програмного забезпечення та визнання важливості навчання протягом всього життя. СК11 Здатність реалізовувати фази та ітерації життєвого циклу програмних систем та інформаційних технологій на основі відповідних моделей і підходів розробки програмного забезпечення. СК12 Здатність здійснювати процес інтеграції системи, застосовувати стандарти і процедури управління змінами для підтримки цілісності, загальної функціональності і надійності програмного забезпечення. СК13 Здатність обґрунтовано обирати та освоювати інструментарій з розробки та супроводження програмного забезпечення. СК14 Здатність до алгоритмічного та логічного мислення. | ПР01 Аналізувати, цілеспрямовано шукати і вибирати необхідні для вирішення професійних завдань інформаційно-довідникові ресурси і знання з урахуванням сучасних досягнень науки і техніки. ПР02 Знати кодекс професійної етики, розуміти соціальну значимість та культурні аспекти інженерії програмного забезпечення і дотримуватись їх в професійній діяльності. ПР05 Знати і застосовувати відповідні математичні поняття, методи доменного, системного і об’єктно-орієнтованого аналізу та математичного моделювання для розробки програмного забезпечення. ПР07 Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення. ПР11 Вибирати вихідні дані для проектування, керуючись формальними методами опису вимог та моделювання. ПР13 Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань. ПР18 Знати та вміти застосовувати інформаційні технології обробки, зберігання та передачі даних. ПР19 Знати та вміти застосовувати методи верифікації та валідації програмного забезпечення. |