Przeglądam filmy z bezpłatnego internetowego kursu uczenia maszynowego Andrew Ng w Stanford. Omawia Gradient Descent jako algorytm do rozwiązywania regresji liniowej i pisania funkcji w Octave do jej wykonania. Przypuszczalnie mógłbym przepisać te funkcje w R, ale moje pytanie brzmi: czy funkcja lm () już nie daje wyników regresji liniowej? Dlaczego miałbym pisać własną funkcję spadku gradientu? Czy jest jakaś korzyść, czy jest to wyłącznie ćwiczenie edukacyjne? Czy lm () wykonuje opadanie gradientu?
r
regression
machine-learning
gradient-descent
Użytkownik
źródło
źródło
Odpowiedzi:
Spadek gradientu jest w rzeczywistości dość kiepskim sposobem rozwiązania problemu regresji liniowej.
lm()
Funkcja na badania wewnętrznie wykorzystuje postać QR rozkładu , który jest znacznie bardziej skuteczne. Zejście gradientowe jest jednak ogólnie użyteczną techniką, którą warto wprowadzić w tym prostym kontekście, aby wyjaśnić, jak stosować ją w bardziej złożonych problemach. Jeśli chcesz wdrożyć własną wersję jako ćwiczenie edukacyjne, warto to zrobić, alelm()
jest lepszym wyborem, jeśli wszystko, czego chcesz, to narzędzie do regresji liniowej.źródło
Powodem, dla którego gradient online jest przydatny, są aplikacje o dużej skali. W każdym razie teraz istnieją biblioteki, które go implementują, więc nie trzeba go programować. To dobry sposób, aby dowiedzieć się, jak działają rzeczy.
W słowach Leon Bottou:
Uczenie się na dużą skalę
projekt SGD
źródło