Algorytmy uczenia maszynowego cały czas korzystają z optymalizacji. Minimalizujemy straty lub błędy lub maksymalizujemy niektóre funkcje oceniania. Zejście gradientowe to algorytm optymalizacji „witaj świecie”, który obejmuje prawdopodobnie każdy kurs uczenia maszynowego. Jest to oczywiste w przypadku modeli regresji lub klasyfikacji, ale nawet przy zadaniach takich jak klastrowanie szukamy rozwiązania, które optymalnie pasuje do naszych danych (np. K-średnie minimalizuje sumę kwadratów wewnątrz klastra). Jeśli więc chcesz zrozumieć, jak działają algorytmy uczenia maszynowego, lepiej poznaj optymalizację. Co więcej, jeśli musisz robić rzeczy takie jak dostrajanie hiperparametrów, wtedy bezpośrednio używasz optymalizacji.
Można argumentować, że optymalizacja wypukła nie powinna być tak interesująca dla uczenia maszynowego, ponieważ zamiast zajmować się funkcjami wypukłymi , często napotykamy powierzchnie strat takie jak ta poniżej, które są dalekie od wypukłych .
(źródło: https://www.cs.umd.edu/~tomg/projects/landscapes/ i arXiv: 1712.09913 )
Niemniej jednak, jak wspomniano w innych odpowiedziach, optymalizacja wypukła jest szybsza, prostsza i mniej wymagająca obliczeniowo, więc często łatwiej jest „wypuknąć” problem (uczynić go optymalizacją wypukłą), a następnie zastosować optymalizację niewypukłą. Na przykład algorytmy opadania gradientu i podobne algorytmy są powszechnie stosowane w uczeniu maszynowym, szczególnie w sieciach neuronowych, ponieważ „działają”, skalują się i są szeroko implementowane w różnych programach, niemniej jednak nie są to najlepsze osoby, które możemy zdobyć i mieć ich pułapki , zgodnie z dyskusją Ali Rahimi na NIPS 2017 .
Z drugiej strony, niewypukłe algorytmy optymalizacyjne, takie jak algorytmy ewolucyjne, wydają się zyskiwać coraz większe uznanie w społeczności ML, np. Szkolenie sieci neuronowych przez neuroewolucję wydaje się być najnowszym tematem badań (patrz także arXiv: 1712.07897 ).