Pracuję nad teoretycznym uczeniem maszynowym - a konkretnie nad uczeniem się przez transfer - dla mojego doktoratu.
Z ciekawości, dlaczego powinienem wziąć kurs optymalizacji wypukłej?
Jakie wnioski z optymalizacji wypukłej mogę wykorzystać w swoich badaniach nad teoretycznym uczeniem maszynowym?
machine-learning
optimization
convex
transfer-learning
Upendra Pratap Singh
źródło
źródło
Odpowiedzi:
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 ).
źródło
Myślę, że są tutaj dwa pytania.
Myślę, że @Tim ma dobrą odpowiedź na pytanie, dlaczego optymalizacja. Zdecydowanie się zgadzam i polecam wszystkim zainteresowanym uczeniem maszynowym opanowanie ciągłej optymalizacji. Ponieważ proces optymalizacji / znalezienie lepszego rozwiązania w czasie, jest procesem uczenia się komputera.
Chcę porozmawiać o tym, dlaczego interesują nas funkcje wypukłe. Powód jest prosty: optymalizacje wypukłe są „łatwiejsze do rozwiązania” i mamy wiele niezawodnych algorytmów do rozwiązania.
Ale czy świat jest wypukły? Nie. Dlaczego ma obsesję na punkcie wypukłości? Sprawdź tę metaforę
źródło
Najważniejsze jest to, że uczenie maszynowe jest stosowane do problemów, w których nie ma optymalnego rozwiązania. Najlepsze, co możesz zrobić, to znaleźć dobre przybliżenie.
Natomiast w przypadku problemu z optymalizacją istnieje optymalne rozwiązanie, ale zwykle nie można go znaleźć w rozsądnym czasie lub przy odpowiedniej mocy przetwarzania.
Narzędzia i algorytmy, których używasz, są zasadniczo różne. Więc chociaż powiedziałbym, że nie ma natychmiastowej korzyści z wzięcia udziału w lekcji optymalizacji, zawsze dobrze jest wiedzieć trochę o powiązanych polach. Jeśli potrafisz rozpoznać problem optymalizacji, będziesz wiedział, że nie powinieneś go rozwiązywać za pomocą algorytmów uczenia maszynowego, ale za pomocą algorytmów optymalizacji. Samo to jest warte dużo powiedziałbym.
źródło
Jak powiedział hxd1011, wypukłe problemy są łatwiejsze do rozwiązania, zarówno teoretycznie, jak i (zwykle) w praktyce. Tak więc nawet w przypadku problemów niewypukłych wiele algorytmów optymalizacji rozpoczyna się od „kroku 1. zredukowania problemu do wypukłego” (być może wewnątrz pętli while).
Podobnie dzieje się z nieliniowym wyszukiwaniem korzeni. Zwykle rozwiązanie (np. Metodą Newtona) idzie „krok 1. Zmniejszyć do problemu liniowego, ponieważ wiemy, jak je rozwiązać”.
źródło
Jeśli twoje zainteresowania leżą w (wypukłej) optymalizacji zastosowanej do głębokiego uczenia się (wspominasz o uczeniu się przez przeniesienie, które jest szeroko stosowane w praktyce w sieciach neuronowych), gorąco zachęcam do rozważenia przeczytania rozdziału 8 (optymalizacja do szkolenia głębokich sieci neuronowych) http : //www.deeplearningbook.org/
Dyskutuje się na temat optymalizacji wypukłej i dlaczego nie odniosła ona jeszcze tak dużego sukcesu, gdy zastosowano głębokie sieci neuronowe. Oczywiście być może mógłbyś przeprowadzić badania w tej dziedzinie, które zmienią obecny konsensus!
źródło
Jak słyszałem od Jerome H. Friedmana metody opracowane w uczeniu maszynowym w rzeczywistości same w sobie nie należą do społeczności uczącej się maszynowo.
Z mojego punktu widzenia Uczenie maszynowe bardziej przypomina zbiór różnych metod z innych dziedzin.
Z punktu widzenia nauki statystycznej trzy główne pytania dotyczące regresji i klasyfikacji to:
Czym jest rodzina funkcji, z której pobierasz aproksymator
Jakie są kryteria pobierania funkcji
Jaka jest metoda znalezienia najlepszej funkcji
Aby działać w konstruktywny sposób na (1) - nie jest tak oczywiste, w jaki sposób może pomóc wykorzystanie optymalizacji matematycznej
Aby działać w konstruktywny sposób na (2) - oczywiste jest, że celem jest cel. I optymalizacja matematyki może w tym pomóc.
Aby działać w konstruktywny sposób na (3) - potrzebujesz optymalizacji matematycznej.
Istnieje kilka części optymalizacji matematycznej:
Istnieją także sposoby radzenia sobie w jakiś sposób z „stochastycznością”, nawet „Nikt nie wie, jak rozwiązać stochastyczną optymalizację wypukłą”
Optymalizacja bez wypukłości - zwykle oznacza to coś, co jest ciągłym celem, ale krzywizna może się różnić. Ludzie na tej planecie nie wiedzą, jak to dokładnie rozwiązać. I w rzeczywistości wszystkie mehtody wykorzystują (1)
Kombinatoryczna optymalizacja - jest jeszcze bardziej dzika niż (2), teraz dla parametrów, których nawet nie można zastosować operatora minus. Jednym z przykładów są „regiony” w drzewach decyzyjnych. Są więc dwa sposoby, jak sobie z tym poradzić: a) Wyjaw problem i zastosuj metody z (1) b) Zrób brutalną siłę. Nie działa dla dużej liczby parametrów. c) Zrób brutalną siłę, ale z pewnymi chciwymi krokami. CART robi to.
Myślę więc, że przynajmniej przekonuję cię, że:
I) Optymalizacja wypukła jest kluczowa dla większości problemów związanych z optymalizacją.
II) „01:15 Optymalizacja jest w rzeczywistości tematem większym niż ML czy AI, ale w rzeczywistości jest większym przedmiotem”. ( https://www.youtube.com/watch?v=uF3htLwUHn0&t=992s )
źródło