Нейронні мережі
Спеціальність: Інженерія програмного забезпечення
Код дисципліни: 6.121.00.M.042
Кількість кредитів: 6.00
Кафедра: Програмне забезпечення
Лектор: проф. Романишин Юрій Михайлович
Семестр: 7 семестр
Форма навчання: денна
Завдання: Вивчення навчальної дисципліни передбачає формування у здобувачів освіти компетентностей:
загальні компетентності:
К01. Здатність до абстрактного мислення, аналізу та синтезу.
К02. Здатність застосовувати знання у практичних ситуаціях.
Фахові компетентності:
К14. Здатність брати участь у проектуванні програмного забезпечення, включаючи проведення моделювання (формальний опис) його структури, поведінки та процесів функціонування.
ФКС2.2. Здатність застосовувати методи штучного інтелекту й машинного навчання для створення спеціалізованого програмного забезпечення мультимедіа та ігор.
ФКС2.7. Розуміння принципів та алгоритмів опрацювання зображень та комп’ютерного зору та здатність застосовувати спеціалізовані алгоритми та структури даних для конструювання програмного забезпечення опрацювання зображень та комп’ютерного зору.
ФКС3.4. Розуміння базових методів хмарних обчислень в інженерії даних. ФКС3.5. Здатність застосовувати методи штучного інтелекту й машинного навчання для аналізу даних та створення спеціалізованого програмного забезпечення.
Результати навчання: У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі результати навчання:
- знання основних можливостей та областей застосування штучних нейронних мереж в задачах штучного інтелекту;
- знання основних структур нейронних мереж, функцій активації нейронів, алгоритмів навчання нейронних мереж;
- вміння вибрати структуру нейронної мережі відповідно до поставленої задачі, оцінити необхідну кількість шарів, нейронів в кожному шарі, алгоритм навчання нейронної мережі;
- вміння будувати та досліджувати нейронні мережі засобами хмарного середовища Google Colab;
- вміння побудувати та застосувати нейронну мережу для різних класів задач штучного інтелекту.
У результаті вивчення навчальної дисципліни здобувач освіти повинен бути здатним продемонструвати такі програмні результати навчання:
ПР2.03. Вміти програмувати інтелектуалізацію ігрових процесів, використовуючи технології штучного інтелекту.
ПР2.09. Вміти застосовувати алгоритми та структури даних для конструювання програмного забезпечення опрацювання зображень та комп’ютерного зору.
ПР3.04. Вміти створювати програми для розв’язування задач штучного інтелекту, зокрема спеціалізованими мовами програмування.
ПР3.05. Вміти використовувати інструментальні засоби для машинного навчання і проектування систем штучного інтелекту.
ПР3.07. Вміти використовувати хмарні сервіси для розроблення безпечних програмних застосувань у хмарі.
Необхідні обов'язкові попередні та супутні навчальні дисципліни: Попередні навчальні дисципліни:
Основи програмування.
Програмування штучного інтелекту для ігор.
Технології штучного інтелекту в інженерії даних.
Супутні та наступні навчальні дисципліни:
Комп’ютерний зір.
Короткий зміст навчальної програми: Дисципліна належить до вибіркових професійної підготовки (блок “Інженерія даних та знань”), вивчається у сьомому семестрі.
Дисципліна передбачає вивчення різних структур нейронних мереж, зокрема послідовних та рекурентних, в тому числі глибоких нейронних мереж, математичних основ нейронних мереж, функцій активації нейронів (RELU, softmax та інших), градієнтних методів навчання нейронних мереж, засобів проектування та дослідження нейронних мереж Google Colab, застосування нейронних мереж для розв’язання різних класів задач штучного інтелекту. Детально розглядаються згорткові нейронні мережі для задач класифікації та розпізнавання зображень, оцінки їх якості та контрасту. Виконання лабораторних робіт здійснюється з використанням хмарних сервісів середовища Google Colab та ресурсів графічних процесорів GPU.
Опис: 1. Вступ до нейронних мереж. Основні етапи розвитку теорії та практичної реалізації нейронних мереж. Модель штучного нейрона. Основні структури нейронних мереж. Функції активації. Тензорні операції. Процедури навчання нейронних мереж. Програмно-апаратні засоби побудови та дослідження нейронних мереж.
2. Нейронні мережі прямого поширення зі зворотним поширенням похибки. Нейронна мережа прямого поширення для розпізнавання зображень рукописних цифр MNIST.
3. Нейромережева бінарна класифікація на прикладі текстових даних. База текстових даних IMDB (Internet Movie Database). Нейронна мережа для бінарної класифікації відгуків про фільми.
4. Нейромережева n-арна класифікація на прикладі текстових даних. Набір даних Reuters. Текст програми для нейронної мережі багатокласової класифікації. Передбачення нових даних.
5. Нейромережева регресія. Набір даних з цінами на житло. Текст програми для нейронної мережі регресії з результатами її роботи. Оцінка рішення методом перехресної перевірки за K блоками.
6. Згорткові нейронні мережі. Вступ до згорткових нейронних мереж. Згорткова нейронна мережа для розпізнавання рукописних цифр. Додавання класифікатора поверх згорткової нейронної мережі. Операція згортки. Ефекти меж та доповнення. Крок згортки. Вибір максимального значення з сусідніх (max-pooling).
7. Згорткова нейронна мережа для розпізнавання зображень об’єктів двох класів як задача бінарної класифікації. Задача бінарної класифікації складних зображень. Побудова нейронної мережі. Компілятор. Використання ImageDataGenerator для читання зображень. Навчання нейронної мережі. Розширення даних. Шар Dropout.
8. Використання попередньо навченої згорткової нейронної мережі. Виділення ознак. Створення екземпляра згорткової основи VGG16. Швидке виділення ознак без розширення даних. Виділення ознак із розширенням даних. Донавчання.
9. База зображень 10 класів CIFAR10. База зображень CIFAR-10. Використання повнозв’язної нейронної мережі для розпізнавання. Збільшення кількості шарів нейронів. Використання згорткової нейронної мережі. Покращення результатів використання згорткової нейронної мережі.
10. База зображень 100 класів CIFAR100. База зображень CIFAR-100. Програма побудови згорткової нейронної мережі для 100 класів об’єктів. Програма побудови згорткової нейронної мережі для 20 суперкласів об’єктів.
11. Візуалізація знань у згортковій нейронній мережі. Варіанти візуалізації знань у згортковій нейронній мережі. Візуалізація проміжних активацій. Візуалізація фільтрів згорткових нейронних мереж. Візуалізація теплових карт активації класу.
12. Нейромережева оцінка якості та контрасту зображень. База зображень для оцінки якості та контрасту зображень TID2013. Побудова нейронної мережі для оцінки якості та контрасту зображень. Побудова нейронної мережі для оцінки якості та контрасту з використанням згорткової основи VGG16.
13. Використання шару Embedding для обробки тексту. Робота з текстовими даними. Векторне подання слів. Конструювання векторних представлень слів за допомогою шару Embedding. Використання попередньо навчених векторних представлень слів.
14. Рекурентні нейронні мережі з шарами SimpleRNN, LSTM та GRU. Рекурентні нейронні мережі. Рекурентний шар SimpleRNN в Keras. Шари LSTM та GRU. Приклад використання шару LSTM з Keras. Використання рекурентного проріджування для боротьби з перенавчанням. Використання двоспрямованих рекурентних нейронних мереж.
15. Опрацювання послідовностей за допомогою згорткових нейронних мереж. Обробка послідовних даних за допомогою одновимірної згорткової нейронної мережі. Реалізація одновимірної згорткової мережі в Keras. Об'єднання згорткових та рекурентних мереж для обробки довгих послідовностей.
Методи та критерії оцінювання: 1. Захист лабораторних робіт включає демонстрацію програм, результатів їх роботи, оформлення звітів до лабораторних робіт.
2. Усне опитування відбувається на лабораторних заняттях.
3. Тестування відбувається у ВНС під час екзамену.
4. Екзамен складається з письмової компоненти (тест), що містить 28 питань, кожне з яких оцінюється 2 балами.
Критерії оцінювання результатів навчання: Протягом семестру передбачено 15 лабораторних робіт. Захист 13 лабораторних робіт проводиться на лабораторних заняттях під час семестру.
Максимальні оцінки за лабораторні роботи (3-4 бали) виставляються при вчасному та успішному виконанні та захисті робіт.
Максимальна оцінка за поточний контроль – 44 бали.
Максимальна оцінка за екзаменаційний контроль у вигляді тестів – 56 балів.
Порядок та критерії виставляння балів та оцінок: 100–88 балів – («відмінно») виставляється за високий рівень знань (допускаються деякі неточності) навчального матеріалу компонента, що міститься в основних і додаткових рекомендованих літературних джерелах, вміння аналізувати явища, які вивчаються, у їхньому взаємозв’язку і роз витку, чітко, лаконічно, логічно, послідовно відповідати на поставлені запитання, вміння застосовувати теоретичні положення під час розв’язання практичних задач; 87–71 бал – («добре») виставляється за загалом правильне розуміння навчального матеріалу компонента, включаючи розрахунки , аргументовані відповіді на поставлені запитання, які, однак, містять певні (неістотні) недоліки, за вміння застосовувати теоретичні положення під час розв’язання практичних задач; 70 – 50 балів – («задовільно») виставляється за слабкі знання навчального матеріалу компонента, неточні або мало аргументовані відповіді, з порушенням послідовності викладення, за слабке застосування теоретичних положень під час розв’язання практичних задач; 49–26 балів – («не атестований» з можливістю повторного складання семестрового контролю) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння застосувати теоретичні положення під час розв’язання практичних задач; 25–00 балів – («незадовільно» з обов’язковим повторним вивченням) виставляється за незнання значної частини навчального матеріалу компонента, істотні помилки у відповідях на запитання, невміння орієнтуватися під час розв’язання практичних задач, незнання основних фундаментальних положень.
Рекомендована література: Базова
1. Francois Chollet. Deep Learning with Python. - Shelter Island: Manning Publications Co., 2018. - 373 pp.
2. Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J. Smola. Dive into Deep Learning. Release 0.14.3. - Jul 26, 2021. – 839 pp.
3. Ian Goodfellow, Yoshua Bengio, Aaron Courville. Deep learning. –? The MIT Press, 2016. – 800 pp.
4. Саймон Хайкин. Нейронные сети: полный курс, 2-е издание.: Пер. с англ. – М.: Издательский дом “Вильямс”, 2006. – 1104 с.
5. Ткаченко Р.О., Ткаченко П.Р., Ізонін І.В. Нейромережеві засоби штучного інтелекту. – Львів: Видавництво Львівської політехніки, 2017. – 208 с.
Допоміжна
1. Julius Berner, Philipp Grohs, Gitta Kutyniok, Philipp Petersenz. The Modern Mathematics of Deep Learning. - arXiv:2105.04026v1 [cs.LG] 9 May 2021. - 78 pp.
2. Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong. Mathematics for Machine Learning. – https://mml-book.com, 2021. - 412 pp.
Навчально-методичне забезпечення
1. Матеріали навчально-методичного комплексу у ВНС НУ «Львівська політехніка».
Інформаційні ресурси
1. https://colab.research.google.com/
2. https://keras.io/
Уніфікований додаток: Національний університет «Львівська політехніка» забезпечує реалізацію права осіб з інвалідністю на здобуття вищої освіти. Інклюзивні освітні послуги надає Служба доступності до можливостей навчання «Без обмежень», метою діяльності якої є забезпечення постійного індивідуального супроводу навчального процесу студентів з інвалідністю та хронічними захворюваннями. Важливим інструментом імплементації інклюзивної освітньої політики в Університеті є Програма підвищення кваліфікації науково-педагогічних працівників та навчально-допоміжного персоналу у сфері соціальної інклюзії та інклюзивної освіти. Звертатися за адресою:
вул. Карпінського, 2/4, І-й н.к., кімн. 112
E-mail: nolimits@lpnu.ua
Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: Політика щодо академічної доброчесності учасників освітнього процесу формується на основі дотримання принципів академічної доброчесності з урахуванням норм «Положення про академічну доброчесність у Національному університеті «Львівська політехніка» (затверджене вченою радою університету від 20.06.2017 р., протокол № 35).