Модуль 2
Нелінійна оптимізація, обмеження та стійкість рішень
Другий модуль переходить від функцій однієї змінної до багатовимірної оптимізації. Ви послідовно проходите похідні, градієнт, вибір кроку, Newton/BFGS, опуклість, KKT, квадратичне програмування, оцінювання параметрів, регуляризацію та багатокритеріальний вибір.
Що ви опануєте
Як проходити модуль
Рухайтеся за блоками зверху вниз. Спочатку прочитайте лекцію або кілька пов’язаних лекцій, потім пройдіть тест із 10 питань у кожній лекції. Після цього виконайте лабораторну, яка закріплює саме щойно вивчену теорію.
Детальний маршрут
Блок 1. Функція однієї змінної та її екстремуми
Після блоку. Після блоку ви маєте вміти читати поведінку функції однієї змінної, використовувати похідну для пошуку кандидатів на екстремум і не забувати перевіряти межі допустимого інтервалу.
Блок 2. Чисельний пошук мінімуму на відрізку
Після блоку. Ви маєте розуміти, як працюють bounded-пошук, золотий переріз і Brent, навіщо потрібні інтервал і критерій зупинки та як порівнювати чисельні результати.
Блок 3. Кілька змінних і напрям зміни функції
Після блоку. Після блоку ви маєте вміти обчислювати часткові похідні, збирати градієнт і використовувати його для прогнозу зміни функції в обраному напрямі.
Блок 4. Градієнтний спуск
Після блоку. Ви маєте вміти виконати ітерації градієнтного спуску, відстежувати значення цілі та пояснювати, чому занадто малий або занадто великий крок погіршує роботу алгоритму.
Блок 5. Вибір довжини кроку
Після блоку. Після блоку ви маєте розуміти line search і правило Armijo, перевіряти прийнятність пробного кроку та будувати журнал прийнятих і відхилених спроб.
Блок 6. Кривизна і матриця Гессе
Після блоку. Ви маєте вміти побудувати Гессіан у стаціонарній точці, прочитати його власні значення та відрізнити локальний мінімум, максимум і сідлову точку.
Блок 7. Newton і квазіньютонівські методи
Після блоку. Після блоку ви маєте розуміти Newton-крок, роль локальної квадратичної моделі, ідею BFGS і практично порівнювати поведінку двох методів на одній задачі.
Блок 8. Опуклість і гарантії оптимізації
Після блоку. Ви маєте вміти пояснити геометричний зміст опуклості та перевірити квадратичну модель за Гессіаном і власними значеннями.
Блок 9. Допустимість та активні обмеження
Після блоку. Після блоку ви маєте вміти обчислювати запас обмеження, класифікувати обмеження як активне, неактивне або порушене та коректно застосовувати числовий tolerance.
Блок 10. Оптимум за рівнянням-обмеженням
Після блоку. Ви маєте вміти скласти функцію Лагранжа, отримати систему стаціонарності та інтерпретувати множник як чутливість оптимального значення до ресурсу.
Блок 11. Нерівності та умови KKT
Після блоку. Після блоку ви маєте вміти перевірити пряму допустимість, знаки множників, стаціонарність і комплементарність та скласти чисельний KKT-сертифікат.
Блок 12. Квадратичне програмування
Після блоку. Ви маєте вміти записати квадратичну ціль і лінійні обмеження, отримати розв’язок у CVXPY та незалежно перевірити його через обмеження, dual values і KKT-нев’язки.
Блок 13. Оцінювання параметрів за надлишковими даними
Після блоку. Після блоку ви маєте вміти побудувати дизайн-матрицю для методу найменших квадратів, оцінити параметри й перевірити якість через залишки.
Блок 14. Стабільність оцінювання та Ridge
Після блоку. Ви маєте вміти розпізнати нестійкість через майже залежні ознаки, застосувати Ridge-регуляризацію та кількісно порівняти точність і стабільність оцінок.
Блок 15. Кілька критеріїв і фінальний аудит
Після блоку. Після завершення модуля ви маєте вміти знаходити Парето-недоміновані рішення, обирати компроміс прозорим правилом і проводити повний чисельний аудит перед використанням результату.
Практика в браузері
Для лабораторних використовується JupyterLite. Відкрийте notebook потрібної лабораторної, задайте свій STUDENT_X, виконайте роботу та запустіть точну самоперевірку.