
Celem artykułu jest wsparcie początkujących analityków danych. W prosty sposób omówiliśmy trzy metody rozwiązania równania regresji liniowej: rozwiązanie analityczne, spadek gradientowy i stochastyczny spadek gradientowy. Dla rozwiązania analitycznego zastosowaliśmy formułę
. W tym artykule, jak wskazuje tytuł, uzasadnimy zastosowanie tej formuły, innymi słowy, samodzielnie ją wyprowadzimy.
Dlaczego warto zwrócić szczególną uwagę na formułę
?
Właśnie od równania macierzowego w większości przypadków zaczyna się znajomość z regresją liniową. Przy tym, szczegółowe wyprowadzenia tego, jak formuła została uzyskana, zdarzają się rzadko.
Na przykład na kursach uczenia maszynowego od Yandexa, gdy uczestnicy zapoznają się z regularizacją, proponuje się korzystanie z funkcji z biblioteki sklearn, przy czym nie pada ani słowo o macierzowej reprezentacji algorytmu. W tym momencie u niektórych uczestników może pojawić się chęć głębszego zrozumienia tego zagadnienia — napisania kodu bez użycia gotowych funkcji. A do tego, należy najpierw przedstawić równanie z regularizatorem w postaci macierzowej. Ten artykuł z pewnością pomoże tym, którzy chcą opanować takie umiejętności. Zaczynajmy.
Warunki początkowe
Wskaźniki docelowe
Mamy szereg wartości wskaźnika docelowego. Na przykład, wskaźnikiem docelowym może być cena jakiegoś aktywa: ropy, złota, pszenicy, dolara itd. Przy tym przez szereg wartości wskaźnika docelowego rozumiemy liczbę obserwacji. Takimi obserwacjami mogą być na przykład miesięczne ceny ropy przez rok, co oznacza, że będziemy mieli 12 wartości wskaźnika docelowego. Zaczniemy od wprowadzenia oznaczeń. Oznaczmy każdą wartość wskaźnika docelowego jako
. Mamy zatem
obserwacji, co oznacza, że możemy przedstawić nasze obserwacje jako
.
Regresory
Załóżmy, że istnieją czynniki, które w pewnym stopniu wyjaśniają wartości wskaźnika docelowego. Na przykład, kurs pary dolar/rubel jest silnie uzależniony od ceny ropy naftowej, stopy procentowej Fed i innych. Takie czynniki nazywane są regresorami. Oznacza to, że każdej wartości wskaźnika docelowego powinno odpowiadać wartość regresora, to znaczy, jeśli mamy 12 wskaźników docelowych za każdy miesiąc w 2018 roku, to również powinniśmy mieć 12 wartości regresorów za ten sam okres. Oznaczmy wartości każdego regresora przez
. Niech w naszym przypadku mamy
regresorów (tj.
czynników, które wpływają na wartości wskaźnika docelowego). Oznacza to, że nasze regresory mogą być przedstawione w następujący sposób: dla 1. regresora (na przykład cena ropy):
, dla 2. regresora (na przykład stopa procentowa Fed):
, dla "
-go" regresora: 
Zależność wskaźników docelowych od regresorów
Załóżmy, że zależność wskaźnika docelowego
od regresorów "
-tego" obserwacji może być wyrażona poprzez równanie regresji liniowej w postaci:

, gdzie
— «
-te" wartość regresora od 1 do
,
— liczba regresorów od 1 do 
— współczynniki kierunkowe, które przedstawiają wielkość, o którą zmieni się obliczany wskaźnik docelowy średnio przy zmianie regresora.
Innymi słowy, dla każdego (z wyjątkiem
) regresora określamy "swój" współczynnik
, następnie mnożymy współczynniki przez wartości regresorów "
-tego" obserwacji, w rezultacie otrzymując pewne przybliżenie "
-tego" wskaźnika docelowego.
W związku z tym musimy dobrać takie współczynniki
, przy których wartości naszej funkcji aproksymującej
będą znajdować się maksymalnie blisko wartości wskaźników docelowych.
Ocena jakości funkcji aproksymującej
Będziemy określać ocenę jakości funkcji aproksymującej metodą najmniejszych kwadratów. Funkcja oceny jakości w takim przypadku przyjmie następującą postać:

Musimy dobrać takie wartości współczynników $w$, przy których wartość
będzie najmniejsza.
Przekształcamy równanie w postać macierzową
Wektoryzacja
Na początku, aby ułatwić sobie życie, należy zwrócić uwagę na równanie regresji liniowej i zauważyć, że pierwszy współczynnik
nie jest mnożony przez żaden regresor. W związku z tym, gdy przekształcimy dane do postaci macierzy, powyższe okoliczności poważnie skomplikują obliczenia. W tej sytuacji proponuje się wprowadzenie jeszcze jednego regresora dla pierwszego współczynnika
i przyrównać go do jedności. Dokładniej, każde „
-te” wartości tego regresora należy przyrównać do jedności — ponieważ przy mnożeniu przez jedność nie zmienia się nic z punktu widzenia wyników obliczeń, a z perspektywy zasad mnożenia macierzy znacznie zmniejszą się nasze trudy.
Teraz, na pewien czas, w celu uproszczenia materiału, załóżmy, że mamy tylko jedno „
-te” obserwację. Wówczas przedstawimy wartości regresorów „
-tej” obserwacji jako wektor
. Wektor
ma wymiar
, czyli
wierszy i 1 kolumny:

Poszukiwane współczynniki przedstawimy w postaci wektora
, który ma wymiar
:

Równanie regresji liniowej dla „
-tej” obserwacji przyjmie postać:

Funkcja oceny jakości modelu liniowego przyjmie postać:

Zauważmy, że zgodnie z zasadami mnożenia macierzy, musieliśmy transponować wektor
.
Reprezentacja macierzowa
W rezultacie mnożenia wektorów otrzymujemy liczbę:
, co było do przewidzenia. Ta liczba jest przybliżeniem „
-tego” celu. Ale potrzebujemy przybliżenia nie jednego wartości celu, a wszystkich. W tym celu zapiszemy wszystkie „
-te” regresory w formacie macierzy
. Otrzymana macierz ma wymiar
:

Teraz równanie regresji liniowej przyjmie postać:

Oznaczmy wartości celów (wszystkie
) jako wektor
o wymiarze
:

Teraz możemy zapisać w formacie macierzowym równanie oceny jakości modelu liniowego:

Właściwie, z tej formuły następnie uzyskujemy znaną nam formułę 
Jak to zrobić? Rozwijamy nawiasy, dokonujemy różniczkowania, przekształcamy uzyskane wyrażenia itd., a dokładnie tym teraz się zajmiemy.
Przekształcenia macierzowe
Rozwińmy nawiasy


Przygotujmy równanie do różniczkowania
W tym celu przeprowadzimy pewne przekształcenia. W kolejnych obliczeniach będzie nam wygodniej, jeśli wektor
będzie przedstawiany na początku każdego iloczynu w równaniu.
Przekształcenie 1

Jak to się stało? Aby odpowiedzieć na to pytanie, wystarczy spojrzeć na rozmiary mnożonych macierzy i zobaczyć, że na wyjściu otrzymujemy liczbę, czy inaczej...
.
Zapiszemy wymiary wyrażeń macierzowych.



Przekształcenie 2

Rozpiszemy analogicznie do przekształcenia 1


Na wyjściu otrzymujemy równanie, które musimy zróżnicować:

Różniczujemy funkcję oceny jakości modelu
Różniczujemy względem wektora
:




Nie powinno być pytań dlaczego, ale operacje dotyczące definiowania pochodnych w dwóch innych wyrażeniach omówimy bardziej szczegółowo.
Różnicowanie 1
Rozkładamy różnicowanie:
Aby określić pochodną macierzy lub wektora, trzeba spojrzeć na to, co mają w środku. Patrzymy: 
Oznaczymy iloczyn macierzy



przez macierz
. Macierz
jest kwadratowa i ponadto symetryczna. Te właściwości będą nam potrzebne później, zapamiętajmy je. Macierz
Teraz naszym zadaniem jest poprawne pomnożenie wektorów przez macierz, aby nie otrzymać "dwa razy dwa to pięć", dlatego skupmy się i bądźmy nadzwyczaj ostrożni.
ma wymiar
:

Jednak, uzyskaliśmy skomplikowane wyrażenie! W rzeczywistości otrzymaliśmy liczbę — skalar. A teraz, naprawdę przechodzimy do różniczkowania. Musimy znaleźć pochodną uzyskanego wyrażenia względem każdego współczynnika




i otrzymać na wyjściu wektor o wymiarach
. Na wszelki wypadek rozpiszę procedury działań:
1) zróżniczujemy względem
, otrzymamy:
2) zróżniczujemy względem 
3) zróżniczujemy względem
2) zróżniczujemy względem 
Na wyjściu — obiecany wektor o rozmiarze
2) zróżniczujemy względem 
Jeśli bliżej przyjrzeć się wektorowi, można zauważyć, że lewy i pasujący do niego prawy element wektora można pogrupować w taki sposób, że w efekcie z przedstawionego wektora można wydobyć wektor
:

rozmiaru
(lewy element górnego wiersza wektora)
. Na przykład,
(prawy element górnego wiersza wektora) można przedstawić jako
— jako
, a
itd. w każdym wierszu. Pogrupujmy:
Wyciągnijmy wektor

i na wyjściu otrzymamy:
Teraz przyjrzyjmy się uzyskanej macierzy. Macierz jest sumą dwóch macierzy

Przypomnijmy, że kilka wcześniejszych akapitów zauważyliśmy jedną ważną właściwość macierzy
:

— jest symetryczna. Biorąc pod uwagę tę właściwość, możemy z pewnością stwierdzić, że wyrażenie
równa się
. Można to łatwo sprawdzić, rozpatrując iloczyn macierzy element po elemencie.
. Это легко проверить, раскрыв поэлементно произведение матриц
Nie będziemy tego robić tutaj, chętni mogą przeprowadzić kontrolę samodzielnie.
Wracamy do naszego wyrażenia. Po naszych przekształceniach wygląda ono tak, jak chcieliśmy je zobaczyć:

Zatem z pierwszym różnicowaniem poradziliśmy sobie. Przechodzimy do drugiego wyrażenia.
Różnicowanie 2

Idźmy utartą drogą. Będzie znacznie krótsza niż poprzednia, więc nie oddalajcie się zbytnio od ekranu.
Rozłożymy wektory i macierz element po elemencie:



Na chwilę usuniemy dwójkę z obliczeń – nie odgrywa dużej roli, potem ją przywrócimy. Pomnożymy wektory przez macierz. Na początek pomnożymy macierz
przez wektor
, tutaj nie mamy żadnych ograniczeń. Otrzymamy wektor o rozmiarze
:

Wykonamy następujące działanie – pomnożymy wektor
przez uzyskany wektor. Na wyjściu otrzymamy liczbę:

To właśnie ją zróżnicujemy. Na wyjściu uzyskamy wektor o wymiarach
:

Coś przypomina? Dokładnie! To iloczyn macierzy
przez wektor
.
W ten sposób drugie różnicowanie zostało pomyślnie zakończone.
Zamiast zakończenia
Teraz wiemy, jak powstało równanie
.
Na koniec opiszemy szybki sposób przekształceń podstawowych formuł.
Oceńmy jakość modelu zgodnie z metodą najmniejszych kwadratów:


Różnicujemy uzyskane wyrażenie:


Literatura
Źródła internetowe:
1)
2)
3)
4)
Podręczniki, zbiory zadań:
1) Konspekt wykładów z matematyki wyższej: pełny kurs / D.T. Pismienny – 4. wyd. – Moskwa: Iris-press, 2006
2) Praktyczna analiza regresji / N. Draper, G. Smith – 2. wyd. – Moskwa: Finanse i statystyka, 1986 (tłumaczenie z angielskiego)
3) Zadania na rozwiązywanie równań macierzowych:
Źródło: habr.com
