Próbowałem nauczyć się uczenia maszynowego przy użyciu materiału Coursera . W tym wykładzie Andrew Ng wykorzystuje algorytm spadku gradientu do znalezienia współczynników modelu regresji liniowej, które zminimalizują funkcję błędu (funkcję kosztu).
Czy do regresji liniowej potrzebujemy spadku gradientu? Wydaje się, że potrafię analitycznie rozróżnić funkcję błędu i ustawić ją na zero, aby rozwiązać dla współczynników; czy to prawda?
Odpowiedzi:
Liniowe najmniejsze kwadraty można rozwiązać
0) Zastosowanie wysokiej jakości liniowego solwera najmniejszych kwadratów, opartego na SVD lub QR, jak opisano poniżej, dla nieograniczonego liniowego najmniejszego kwadratu, lub w oparciu o wersję programowania kwadratowego lub optymalizacji stożkowej dla ograniczonych lub liniowo ograniczonych najmniejszych kwadratów, jak opisano poniżej. Taki solver jest wstępnie konserwowany, dokładnie przetestowany i gotowy do użycia - użyj go.
1) SVD, która jest najbardziej niezawodną i dokładną numerycznie metodą, ale wymaga także więcej obliczeń niż rozwiązań alternatywnych. W programie MATLAB rozwiązaniem SVD nieograniczonego liniowego problemu najmniejszych kwadratów A * X = b jest pinv (A) * b, który jest bardzo dokładny i niezawodny.
2) QR, który jest dość niezawodny i dokładny numerycznie, ale nie tak bardzo jak SVD i jest szybszy niż SVD. W MATLAB rozwiązaniem QR dla nieograniczonego liniowego problemu najmniejszych kwadratów A * X = b jest A \ b, które jest dość dokładne i niezawodne, z wyjątkiem sytuacji, gdy A jest źle uwarunkowane, tj. Ma dużą liczbę stanów. Obliczenie A \ b jest szybsze niż pinv (A) * b, ale nie jest tak wiarygodne ani dokładne.
3) Formowanie równań normalnych (STANOWISKO z punktu widzenia niezawodności i dokładności numerycznej, ponieważ podnosi kwadrat warunku, co jest bardzo złym posunięciem) i
3a) rozwiązywanie przez faktoryzację Cholesky'ego (niezbyt dobre)
3b) jawnie odwracająca macierz (HORRIBLE)
4) Rozwiązanie jako problem z programowaniem kwadratowym lub problem ze stożkiem drugiego rzędu
4a) Rozwiąż za pomocą wysokiej jakości oprogramowania do programowania kwadratowego. Jest to wiarygodne i dokładne liczbowo, ale trwa dłużej niż SVD lub QR. Łatwo jest jednak dodawać ograniczenia lub ogólne ograniczenia liniowe lub liniowe lub kwadratowe (dwie normy) kary lub regularyzacyjne do funkcji celu i nadal rozwiązywać problem za pomocą oprogramowania do programowania kwadratowego.
4b) Rozwiąż problem stożka drugiego rzędu za pomocą wysokiej jakości oprogramowania do optymalizacji stożkowej. Uwagi są takie same, jak w przypadku oprogramowania do programowania kwadratowego, ale można również dodawać ograniczone lub ogólne ograniczenia liniowe i inne ograniczenia stożkowe lub terminy funkcji celu, takie jak warunki kary lub regularyzacji w różnych normach.
5) Rozwiązuj za pomocą wysokiej jakości oprogramowania do optymalizacji nieliniowej ogólnego zastosowania. To może nadal działać dobrze, ale ogólnie będzie wolniejsze niż oprogramowanie do programowania kwadratowego lub Conic Optimization i może nie być tak niezawodne. Jednak może być możliwe uwzględnienie nie tylko wiązań i ogólnych wiązań liniowych, ale także wiązań nieliniowych w optymalizacji najmniejszych kwadratów. Można go również stosować do nieliniowych najmniejszych kwadratów i jeśli inne funkcje nieliniowe są dodawane do funkcji celu.
6) Rozwiązuj za pomocą kiepskich algorytmów optymalizacji nieliniowej ogólnego zastosowania -> NIE NALEŻY TEGO ROBIĆ.
7) Rozwiąż za pomocą algorytmu optymalizacji nieliniowej optymalizacji NAJGORSZE MOŻLIWE ogólnego zastosowania, tj. Spadku gradientu. Użyj tego tylko, jeśli chcesz zobaczyć, jak zła i niewiarygodna może być metoda rozwiązania. Jeśli ktoś powie ci, abyś użył spadku gradientu do rozwiązania liniowych problemów z najmniejszymi kwadratami
7 i) Dowiedz się o obliczeniach statystycznych od kogoś, kto coś o tym wie
7 ii) Naucz się optymalizacji od kogoś, kto coś o tym wie.
źródło
Znalezienie współczynników modelu liniowego jest technicznie procesem znajdowania rozwiązań dla zestawu równań liniowych .
Do obliczania takich rozwiązań opracowano wiele
optimization techniques
iGradient Descent
jest jednym z nich.Tak więc Gradient Descent nie jest jedynym sposobem, aby to zrobić.
Andrew Ng używa go w kursie, ponieważ jest prosty do zrozumienia, bez zajmowania się zaawansowaną algebrą liniową i obliczeniami numerycznymi.
źródło
GD
-gradient przyzwoity- służy jako przykład do wprowadzenia bardziej zaawansowanych metod (np.SGD
- stochastycznyGD
).SGD
. Ponieważ większość ludzi nie ma bardzo dużych matryc, rozkład QR jest lepszy. Ogólnie rozkład QR ukształtował świat liczb; SIAM wybrał go jako jeden z 10 najlepszych algorytmów XX wieku.