Оптимізація — це ключова галузь штучного інтелекту (ШІ) та прикладної математики, що має на меті знаходження найкращого можливого розв’язку для заданої задачі відповідно до одного чи кількох кількісних критеріїв. У ШІ оптимізація часто передбачає налаштування параметрів моделі для мінімізації функції втрат (або вартості) або, ширше, оптимальний розподіл ресурсів для досягнення певної мети. На відміну від простого перебору або евристик, оптимізація базується на формальних математичних методах, які гарантують або наближають оптимальний розв’язок. Її робота ґрунтується на алгоритмах, здатних досліджувати простір рішень і поступово покращувати кандидати згідно з чіткими правилами.

Використання та приклади

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

Основне програмне забезпечення, бібліотеки та фреймворки

Серед популярних інструментів слід відзначити SciPy (Python), що містить численні оптимізаційні алгоритми, та CVXPY для опуклого програмування. У машинному навчанні TensorFlow і PyTorch мають вбудовані оптимізатори, такі як SGD, Adam і RMSProp. Потужними солверами для великомасштабної комбінаторної та лінійної оптимізації є Gurobi, CPLEX та Google OR-Tools.

Останні розробки та тенденції

Оптимізація розвивається завдяки досягненням у розподілених та квантових обчисленнях, що дозволяє вирішувати задачі все більшої складності. Серед сучасних трендів — диференційована оптимізація, байєсівська оптимізація для автоматичного підбору гіперпараметрів, а також гібридні підходи, які поєднують глибоке навчання з класичною оптимізацією. Важливими є також інтеграція оптимізації в автономні системи та зростання відкритих рішень (open source).