Regresja liniowa i metody jej wyznaczania

Regresja liniowa i metody jej wyznaczania
Źródło: xkcd

Regresja liniowa jest jednym z podstawowych algorytmów wykorzystywanych w wielu dziedzinach związanych z analizą danych. Powód jest oczywisty. To bardzo prosty i zrozumiały algorytm, co sprzyja jego szerokiemu zastosowaniu przez wiele dziesięcioleci, jeśli nie setek lat. Idea polega na założeniu liniowej zależności jednej zmiennej od zestawu innych zmiennych, a następnie próbie odtworzenia tej zależności.

Jednak w tym artykule nie będziemy omawiać zastosowania regresji liniowej do rozwiązywania praktycznych problemów. Zostaną omówione interesujące aspekty realizacji rozproszonych algorytmów jej odtwarzania, z którymi spotkaliśmy się podczas pisania modułu uczenia maszynowego w Apache Ignite. Trochę podstawowej matematyki, podstaw uczenia maszynowego i obliczeń rozproszonych pomoże zrozumieć, jak odtwarzać regresję liniową, nawet jeśli dane są rozproszone pomiędzy tysiącami węzłów.

O co chodzi?

Stoi przed nami zadanie odtworzenia liniowej zależności. Jako dane wejściowe podawane jest wiele wektorów przypuszczalnie niezależnych zmiennych, z którymi każdemu przypisana jest pewna wartość zmiennej zależnej. Te dane można przedstawić w postaci dwóch macierzy:

Regresja liniowa i metody jej wyznaczania

Teraz, skoro zakładamy zależność, a do tego jeszcze liniową, zapiszmy nasze przypuszczenie w postaci iloczynu macierzy (dla uproszczenia zapisu w tym i kolejnych podpunktach przyjmuje się, że wolny człon równania jest ukryty za Regresja liniowa i metody jej wyznaczania, a ostatnia kolumna macierzy Regresja liniowa i metody jej wyznaczania zawiera jedynki):

Regresja liniowa i metody jej wyznaczania

Bardzo przypomina to układ równań liniowych, prawda? Przypomina, ale taki układ równań prawdopodobnie nie będzie miał rozwiązań. Przyczyną tego jest szum, który obecny jest praktycznie w każdym rzeczywistym zbiorze danych. Przyczyną może być także brak liniowej zależności jako takiej, z którą można by próbować walczyć poprzez wprowadzenie dodatkowych zmiennych nieliniowo zależnych od wyjściowych. Rozważmy następujący przykład:
Regresja liniowa i metody jej wyznaczania
Źródło: Wikipedia

To prosty przykład regresji liniowej, który demonstruje zależność jednej zmiennej (na osi Regresja liniowa i metody jej wyznaczania) od innej zmiennej (na osi Regresja liniowa i metody jej wyznaczania). Aby odpowiedni system równań liniowych miał rozwiązanie, wszystkie punkty muszą leżeć dokładnie na tej samej prostej. Ale tak nie jest. A to, że nie leżą one na jednej prostej, wynika właśnie z szumu (lub z błędnego założenia o istnieniu zależności liniowej). W związku z tym, aby odtworzyć zależność liniową na podstawie rzeczywistych danych, zazwyczaj trzeba wprowadzić jeszcze jedno założenie: dane wejściowe zawierają szum, a ten szum ma rozkład normalny. Można również wysuwać założenia o innych typach rozkładu szumu, ale w przeważającej większości przypadków rozpatruje się właśnie rozkład normalny, o którym poniżej będzie mowa.

Metoda największej wiarygodności

Zatem, założyliśmy obecność losowego szumu o rozkładzie normalnym. Co w takiej sytuacji zrobić? W matematyce istnieje i jest szeroko stosowana metoda największej wiarygodności. W skrócie, polega ona na wyborze funkcji wiarygodności i jej późniejszej maksymalizacji.

Wracając do odtwarzania zależności liniowej na podstawie danych z normalnym szumem. Zauważmy, że zakładana zależność liniowa jest matematyczną oczekiwaną wartością Regresja liniowa i metody jej wyznaczania istniejącego rozkładu normalnego. Jednocześnie prawdopodobieństwo, że Regresja liniowa i metody jej wyznaczania przyjmuje wartość, pod warunkiem występowania obserwowanych Regresja liniowa i metody jej wyznaczania, wygląda następująco:

Regresja liniowa i metody jej wyznaczania

Podstawmy teraz zamiast Regresja liniowa i metody jej wyznaczania i Regresja liniowa i metody jej wyznaczania potrzebne nam zmienne:

Regresja liniowa i metody jej wyznaczania

Pozostało tylko znaleźć wektor Regresja liniowa i metody jej wyznaczania, przy którym to prawdopodobieństwo jest maksymalne. Aby zmaksymalizować taką funkcję, wygodnie jest najpierw ją zlogarytmayzować (logarytm funkcji będzie osiągał maksimum w tym samym punkcie, co sama funkcja):

Regresja liniowa i metody jej wyznaczania

Co z kolei sprowadza się do minimalizacji następującej funkcji:

Regresja liniowa i metody jej wyznaczania

Przy okazji, nazywa się to metodą najmniejszych kwadratów. Często wszystkie powyższe rozważania są pomijane, a po prostu używa się tej metody.

Rozkład QR

Minimum powyższej funkcji można znaleźć, jeśli znajdziemy punkt, w którym gradient tej funkcji jest równy zeru. A gradient zapisuje się w następujący sposób:

Regresja liniowa i metody jej wyznaczania

Rozkład QR jest macierzową metodą rozwiązania problemu minimalizacji stosowaną w metodzie najmniejszych kwadratów. W związku z tym przepiszemy równanie w formie macierzowej:

Regresja liniowa i metody jej wyznaczania

Zatem rozkładamy macierz Regresja liniowa i metody jej wyznaczania na macierze Regresja liniowa i metody jej wyznaczania i Regresja liniowa i metody jej wyznaczania i wykonujemy szereg przekształceń (sam algorytm rozkładu QR nie będzie tutaj omawiany, tylko jego zastosowanie w kontekście postawionego zadania):

Regresja liniowa i metody jej wyznaczania

Macierz Regresja liniowa i metody jej wyznaczania jest ortogonalna. Pozwala nam to pozbyć się iloczynu Regresja liniowa i metody jej wyznaczania:

Regresja liniowa i metody jej wyznaczania

A jeśli zamienić Regresja liniowa i metody jej wyznaczania na Regresja liniowa i metody jej wyznaczania, to otrzymamy Regresja liniowa i metody jej wyznaczania. Biorąc pod uwagę, że Regresja liniowa i metody jej wyznaczania jest macierzą trójkątną górną, wygląda to następująco:

Regresja liniowa i metody jej wyznaczania

Można to rozwiązać metodą podstawień. Element Regresja liniowa i metody jej wyznaczania znajduje się jako Regresja liniowa i metody jej wyznaczania, poprzedni element Regresja liniowa i metody jej wyznaczania znajduje się jako Regresja liniowa i metody jej wyznaczania i tym podobne.

Należy zauważyć, że złożoność uzyskanego algorytmu dzięki zastosowaniu rozkładu QR wynosi Regresja liniowa i metody jej wyznaczania. Warto przy tym zauważyć, że operacja mnożenia macierzy dobrze się równolegle wykonuje, jednak napisanie efektywnej rozproszonej wersji tego algorytmu nie wydaje się możliwe.

Spadek gradientu

Mówiąc o minimalizacji pewnej funkcji, zawsze warto pamiętać o metodzie (stochastycznego) spadku gradientu. To prosty i skuteczny sposób minimalizacji, oparty na iteracyjnym obliczaniu gradientu funkcji w punkcie, a następnie przesunięciu go w kierunku przeciwnym do gradientu. Każdy taki krok przybliża rozwiązanie do minimum. Gradient przy tym wygląda tak samo:

Regresja liniowa i metody jej wyznaczania

Ten sposób dobrze się również równolegle wykonuje i rozprasza dzięki liniowym właściwościom operatora gradientu. Zauważmy, że w powyższym wzorze pod symbolem sumy znajdują się niezależne składniki. Innymi słowy, możemy obliczyć gradient niezależnie dla wszystkich indeksów Regresja liniowa i metody jej wyznaczania od pierwszego do Regresja liniowa i metody jej wyznaczania, równolegle obliczając gradient dla indeksów z Regresja liniowa i metody jej wyznaczania do Regresja liniowa i metody jej wyznaczania. Następnie zsumować uzyskane gradienty. Wynikiem sumowania będzie taki sam, jakbyśmy od razu obliczyli gradient dla indeksów od pierwszego do Regresja liniowa i metody jej wyznaczania. W ten sposób, jeśli dane są rozproszone pomiędzy kilka części danych, gradient może być obliczany niezależnie w każdej części, a następnie wyniki tych obliczeń mogą być zsumowane, aby uzyskać ostateczny rezultat:

Regresja liniowa i metody jej wyznaczania

Z punktu widzenia realizacji, mieści się to w paradygmacie MapReduce. Na każdym kroku spadku gradientu do każdego węzła danych wysyłane jest zadanie obliczenia gradientu, następnie obliczone gradienty są zbierane razem, a wynik ich sumowania jest wykorzystywany do poprawy rezultatu.

Mimo prostoty realizacji i możliwości wykonywania w paradygmacie MapReduce, metoda gradientowego spadku ma również swoje wady. W szczególności liczba kroków potrzebnych do osiągnięcia zbieżności jest znacznie większa w porównaniu z innymi, bardziej wyspecjalizowanymi metodami.

LSQR

LSQR to kolejna metoda rozwiązania zadanego problemu, która nadaje się zarówno do rekonstrukcji regresji liniowej, jak i do rozwiązania układów równań liniowych. Jej główną cechą jest to, że łączy zalety metod macierzowych i podejścia iteracyjnego. Implementacje tej metody można znaleźć w bibliotece SciPy, jak i w MATLAB. Opis tej metody nie będzie tu podawany (można go znaleźć w artykule LSQR: An algorithm for sparse linear equations and sparse least squares). Zamiast tego zaprezentowane zostanie podejście, które pozwala na dostosowanie LSQR do realizacji w rozproszonym środowisku.

W podstawie metody LSQR leży procedura bidiagonalizacji. To iteracyjna procedura, której każda iteracja składa się z następujących kroków:
Regresja liniowa i metody jej wyznaczania

Jednak zakładając, że macierz Regresja liniowa i metody jej wyznaczania jest partycjonowana poziomo, można każdą iterację przedstawić w postaci dwóch kroków MapReduce. Dzięki temu udaje się zminimalizować przesyłanie danych w trakcie każdej z iteracji (tylko wektory o długości równej liczbie niewiadomych):

Regresja liniowa i metody jej wyznaczania

To podejście jest używane przy realizacji regresji liniowej w Apache Ignite ML.

Podsumowanie

Istnieje wiele algorytmów rekonstrukcji regresji liniowej, ale nie wszystkie z nich mogą być stosowane w każdych warunkach. Na przykład rozkład QR doskonale nadaje się do dokładnych rozwiązań na małych zbiorach danych. Gradientowy spadek jest łatwy w realizacji i pozwala szybko znaleźć przybliżone rozwiązanie. A LSQR łączy najlepsze właściwości dwóch wcześniejszych algorytmów, ponieważ może być rozproszony, szybciej zbiega w porównaniu do gradientowego spadku oraz umożliwia wcześniejsze zatrzymanie algorytmu w przeciwieństwie do rozkładu QR w celu znalezienia przybliżonego rozwiązania.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster