Optymalizacja to kluczowa dziedzina sztucznej inteligencji (SI) oraz matematyki stosowanej, której celem jest znalezienie najlepszego możliwego rozwiązania danego problemu według jednego lub wielu ilościowych kryteriów. W SI optymalizacja polega najczęściej na dostrajaniu parametrów modelu w celu minimalizacji funkcji kosztu (lub straty) albo, szerzej, na optymalnej alokacji zasobów w celu osiągnięcia zamierzonego celu. W odróżnieniu od technik takich jak przeszukiwanie pełne czy heurystyki, opiera się ona na formalnych metodach matematycznych pozwalających zagwarantować lub przybliżyć rozwiązanie optymalne. Działa w oparciu o algorytmy eksplorujące przestrzeń rozwiązań, oceniające kandydatów i stopniowo ich ulepszające według precyzyjnych reguł.

Przypadki użycia i przykłady zastosowań

W uczeniu maszynowym optymalizacja służy do dostosowywania wag sieci neuronowych w trakcie treningu. Jest również używana do planowania optymalnych tras dla pojazdów autonomicznych, inteligentnego zarządzania energią, logistyki oraz maksymalizacji portfeli inwestycyjnych pod określonymi ograniczeniami. Optymalizacja wykorzystywana jest także w automatycznym projektowaniu struktur i złożonych systemów.

Główne narzędzia, biblioteki i frameworki

Do popularnych narzędzi należą biblioteka naukowa SciPy (Python) oferująca szeroką gamę solverów optymalizacyjnych oraz CVXPY do programowania wypukłego. W machine learningu frameworki TensorFlow i PyTorch wyposażone są w optymalizatory takie jak SGD, Adam czy RMSProp. Gurobi, CPLEX oraz OR-Tools od Google to zaawansowane solwery do dużych problemów optymalizacji kombinatorycznej i liniowej.

Najświeższe trendy i rozwój

Optymalizacja korzysta z postępów w obliczeniach rozproszonych i kwantowych, co umożliwia rozwiązywanie coraz większych i bardziej złożonych problemów. Nowe trendy obejmują optymalizację różniczkowalną, optymalizację bayesowską do automatycznego strojenia hiperparametrów oraz hybrydowe podejścia łączące deep learning z klasyczną optymalizacją. Istotne są również integracja optymalizacji z systemami autonomicznymi oraz rosnąca popularność rozwiązań open source.