Optymalizacja i uczenie maszynowe

13

Chciałem wiedzieć, ile uczenia maszynowego wymaga optymalizacji. Z tego, co słyszałem, statystyki są ważnym tematem matematycznym dla osób pracujących z uczeniem maszynowym. Podobnie, jak ważne jest, aby ktoś pracujący z uczeniem maszynowym uczył się optymalizacji wypukłej lub niewypukłej?

Ronald Grayson
źródło
2
„praca z uczeniem maszynowym” jest niejasną koncepcją - praca nad opracowaniem lepszych metod ML będzie oznaczać jedną odpowiedź, opracowanie systemów ML wykorzystujących znane metody to zupełnie inna sprawa.
Peteris,

Odpowiedzi:

28

Według mnie statystyki / uczenie maszynowe podpowiadają, co należy optymalizować, a optymalizacja to sposób, w jaki należy to robić.

Rozważmy na przykład regresję liniową z gdzie i . Statystyki mówią nam, że jest to (często) dobry model, ale nasz faktyczny szacunek , rozwiązując problem optymalizacjiY=Xβ+εE(ε)=0Var(ε)=σ2Iβ^

β^=argminbRp||YXb||2.

Właściwości są nam znane ze statystyk, więc wiemy, że jest to dobry problem optymalizacyjny do rozwiązania. W tym przypadku jest to łatwa optymalizacja, ale nadal pokazuje to ogólną zasadę.β^

Mówiąc bardziej ogólnie, wiele uczenia maszynowego można postrzegać jako rozwiązywanie gdzie piszę to bez regularyzacji, ale można to łatwo dodać.

f^=argminfF1ni=1nL(yi,f(xi))

Ogromna liczba badań w statystycznej teorii uczenia się (SLT) badała właściwości tych argminimów, niezależnie od tego, czy są one asymptotycznie optymalne, jak odnoszą się do złożoności i wielu innych podobnych rzeczy. Ale kiedy naprawdę chcesz dostać , często kończy się to trudną optymalizacją i jest to oddzielny zestaw ludzi, którzy badają ten problem. Myślę, że historia SVM jest tutaj dobrym przykładem. Mamy ludzi SLT, takich jak Vapnik i Cortes (i wielu innych), którzy pokazali, że SVM jest dobrym problemem optymalizacyjnym do rozwiązania. Ale potem inni, jak John Platt i autorzy LIBSVM, sprawili, że stało się to wykonalne w praktyce.fFf^

Aby odpowiedzieć na dokładne pytanie, znajomość optymalizacji jest z pewnością pomocna, ale generalnie nikt nie jest ekspertem we wszystkich tych obszarach, więc uczysz się jak najwięcej, ale niektóre aspekty zawsze będą dla ciebie czymś w rodzaju czarnej skrzynki. Być może nie zbadałeś poprawnie wyników SLT stojących za twoim ulubionym algorytmem ML, a może nie znasz wewnętrznych mechanizmów optymalizatora, którego używasz. To podróż na całe życie.

jld
źródło
3
Warto wyraźnie wspomnieć o en.wikipedia.org/wiki/Empirical_risk_minimization
Emre
13

W praktyce wiele pakietów zajmuje się optymalizacją i większością szczegółów matematycznych. Na przykład TensorFlow może automatycznie wykonać gradient gradientu stochastycznego w celu automatycznego treningu sieci neuronowych (wystarczy określić szybkość uczenia się). Narzędzia ML scikit-learn na ogół nie będą wymagały wiedzy o tym, jak faktycznie przebiega optymalizacja, ale może po prostu ustaw niektóre parametry strojenia i zajmie się resztą (np. liczbą iteracji, dla których działa optymalizator). Na przykład możesz trenować SVM bez znajomości matematyki w scikit-learn - po prostu podaj dane, typ jądra i przejdź dalej.

To powiedziawszy, znajomość podstawowej optymalizacji (np. Na poziomie wypukłej optymalizacji Boyda i Vandenberghe'a / programowania nieliniowego Bertsekasa) może być pomocna w projektowaniu i analizie algorytmów / problemów, szczególnie jeśli pracujesz nad teorią. Lub samodzielnie wdrażając algorytmy optymalizacji.

Zauważ, że metody optymalizacji podręczników często wymagają poprawek, aby faktycznie działały w praktyce w nowoczesnych warunkach; na przykład, możesz nie używać klasycznego stochastycznego spadku gradientu Robbinsa-Munroe, ale szybszy wariant przyspieszony. Niemniej jednak możesz uzyskać wgląd w pracę z problemami związanymi z optymalizacją.

Ordynans
źródło