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?
machine-learning
optimization
Ronald Grayson
źródło
źródło
Odpowiedzi:
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β+ ε mi( ε ) = 0 V.a r ( ε ) = σ2)ja β^
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ć.
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.fF f^
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.
źródło
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ą.
źródło