Uczenie maszynowe często zajmuje się optymalizacją funkcji, która ma wiele lokalnych minimów. Dobrym przykładem są sprzężone sieci neuronowe z ukrytymi jednostkami. Niezależnie od tego, czy funkcje te są dyskretne czy ciągłe, nie ma metody, która osiąga globalne minimum i zatrzymuje się. Łatwo jest udowodnić, że nie ma ogólnego algorytmu znajdowania globalnego minimum funkcji ciągłej, nawet jeśli jest ona jednowymiarowa i gładka (ma nieskończenie wiele pochodnych). W praktyce wszystkie algorytmy uczenia sieci neuronowych utknęły w lokalnym minimum. Łatwo to sprawdzić: utwórz losową sieć neuronową, zrób duży zestaw jej odpowiedzi na losowe dane wejściowe, a następnie spróbuj nauczyć się innej sieci neuronowej o tej samej architekturze, aby skopiować odpowiedzi. Chociaż istnieje idealne rozwiązanie, ani propagacja wsteczna, ani żaden inny algorytm uczenia się nie będzie w stanie go wykryć,
Niektóre metody uczenia się, takie jak symulowane algorytmy wyżarzania lub algorytmy genetyczne, badają wiele lokalnych minimów. Dla funkcji ciągłych istnieją metody takie jak opadanie gradientu, które znajdują najbliższe lokalne minimum. Są znacznie szybsze, dlatego są szeroko stosowane w praktyce. Ale biorąc pod uwagę wystarczającą ilość czasu, pierwsza grupa metod przewyższa późniejszą pod względem błędu zestawu treningowego. Ale przy rozsądnych ograniczeniach czasowych w przypadku problemów w świecie rzeczywistym ta druga grupa jest zwykle lepsza.
W przypadku niektórych modeli, takich jak regresja logistyczna, istnieje jedno lokalne minimum, funkcja jest wypukła, minimalizacja zbiega się do minimum, ale same modele są uproszczone.
To gorzka prawda.
Należy również zauważyć, że dowód na zbieżność i dowód na najlepsze rozwiązanie to dwie różne rzeczy. Algorytm K-średnich jest tego przykładem.
Wreszcie, w przypadku niektórych modeli wcale nie wiemy, jak się uczyć. Na przykład, jeśli dane wyjściowe są dowolną funkcją obliczeniową danych wejściowych, nie znamy dobrych algorytmów, które w rozsądnym czasie znajdują maszynę Turinga lub równoważną maszynę realizującą tę funkcję. Na przykład, jeśli f (1) = 2, f (2) = 3, f (3) = 5, f (4) = 7, ..., f (10) = 29 (dziesięć pierwszych liczb pierwszych) nie zna żadnego algorytmu uczenia się, który byłby w stanie przewidzieć w rozsądnym czasie, że f (11) = 31, chyba że zna już pojęcie liczb pierwszych.