Głównym powodem stosowania spadku gradientu do regresji liniowej jest złożoność obliczeniowa: w niektórych przypadkach znalezienie rozwiązania wykorzystującego spadek gradientu jest tańsze (szybciej).
Formuła, którą napisałeś, wygląda na bardzo prostą, nawet obliczeniową, ponieważ działa tylko w przypadku wielkości pojedynczej, tj. Gdy masz tylko jedną zmienną. W przypadku wielu zmiennych, gdy masz wiele zmiennych, formuły są nieco bardziej skomplikowane na papierze i wymagają znacznie więcej obliczeń, gdy implementujesz je w oprogramowaniu:
Tutaj trzeba obliczyć macierz a następnie odwrócić ją (patrz uwaga poniżej). To kosztowna kalkulacja. Dla odniesienia, macierz (projektowa) X ma K + 1 kolumn, gdzie K jest liczbą predyktorów i N rzędów obserwacji. W algorytmie uczenia maszynowego można uzyskać K> 1000 i N> 1 000 000. matryca sama zajmuje trochę czasu, aby obliczyć, to trzeba odwrócićX ′ X X ′ X K × K
β=(X′X)−1X′Y
X′XX′XK×KMacierz - jest to droga.
Spadek gradientu pozwala więc zaoszczędzić dużo czasu na obliczeniach. Co więcej, sposób, w jaki to się robi, pozwala na trywialną równoległość, tj. Rozłożenie obliczeń na wiele procesorów lub maszyn. Rozwiązanie algebry liniowej można również zrównoleglać, ale jest ono bardziej skomplikowane i wciąż drogie.
Ponadto istnieją wersje gradientu zejścia, gdy przechowujesz tylko część danych w pamięci, co obniża wymagania dotyczące pamięci komputera. Ogólnie rzecz biorąc, w przypadku bardzo dużych problemów jest bardziej wydajne niż rozwiązanie algebry liniowej.
Staje się to jeszcze ważniejsze, gdy wzrasta wymiarowość, gdy masz tysiące zmiennych, takich jak uczenie maszynowe.
Uwaga . Byłem zaskoczony, jak wiele uwagi poświęcono gradientowi opadającemu w wykładach Ng. Mówi o tym nietrywialnie, może 20% całego kursu. Dla mnie to tylko szczegół implementacji, to jak dokładnie znaleźć optymalne. Kluczem jest sformułowanie problemu optymalizacji, a to, jak dokładnie go znajdziesz, nie jest konieczne. Nie martwiłbym się tym zbytnio. Pozostaw to informatykom i skoncentruj się na tym, co jest dla Ciebie ważne jako statystyk.
Mimo to muszę zakwalifikować się mówiąc, że to jest rzeczywiście ważne, aby zrozumieć o złożoności obliczeniowej i stabilności numerycznej algorytmów rozwiązania. Nadal nie sądzę, że musisz znać szczegóły implementacji i kod algorytmów. Zwykle nie jest to najlepsze wykorzystanie twojego czasu jako statystyki.
Uwaga 1 . Napisałem, że musisz odwrócić macierz dla celów dydaktycznych i nie tak zazwyczaj rozwiązujesz równanie. W praktyce problemy z algebrą liniową są rozwiązywane przez zastosowanie pewnego rodzaju faktoryzacji, takiej jak QR, gdzie nie odwracasz bezpośrednio macierzy, ale wykonujesz inne matematycznie równoważne manipulacje, aby uzyskać odpowiedź. Robisz to, ponieważ inwersja macierzy jest w wielu przypadkach kosztowną i niestabilną numerycznie operacją.
Daje to kolejną małą zaletę algorytmu spadku gradientu jako efekt uboczny: działa nawet wtedy, gdy macierz projektowa ma problemy z kolinearnością. Zwykła ścieżka algebry liniowej wybuchłaby, a opadanie gradientu trwałoby nawet w przypadku predyktorów współliniowych.