
Scopul articolului este de a oferi suport începătorilor în data science. În am explicat pe înțelesul tuturor trei metode de rezolvare a ecuației regresiei liniare: soluția analitică, coborârea gradientului și coborârea stochastică a gradientului. Astfel, pentru soluția analitică am aplicat formula
. În acest articol, după cum sugerează titlul, vom justifica aplicarea acestei formule sau, cu alte cuvinte, o vom deduce singuri.
De ce are sens să acordăm o atenție deosebită formulei
?
Anume cu ecuația matricială, în cele mai multe cazuri, începe familiarizarea cu regresia liniară. Totuși, detaliile despre cum a fost dedusă formula sunt rare.
De exemplu, în cursurile de învățare automată de la Yandex, când ascultătorii sunt familiarizați cu regularizarea, li se sugerează să folosească funcțiile din biblioteca sklearn, fără a menționa vreun cuvânt despre reprezentarea matricială a algoritmului. Exact în acel moment, unii dintre ascultători ar putea dori să aprofundeze această problemă — să scrie un cod fără a folosi funcții gata făcute. Și pentru aceasta, trebuie mai întâi să ne reprezentăm ecuația cu regularizatorul în formă matricială. Acest articol va permite celor care doresc să dobândească astfel de abilități. Să începem.
Condițiile inițiale
Indicatorii țintiți
Avem o serie de valori ale indicatorului țintă. De exemplu, indicatorul țintă poate fi prețul unui activ: petrol, aur, grâu, dolar etc. În acest context, prin seria de valori ale indicatorului țintă înțelegem numărul de observații. Aceste observații pot fi, de exemplu, prețurile lunare ale petrolului timp de un an, adică vom avea 12 valori ale indicatorului țintă. Să începem să introducem denumirile. Vom denumi fiecare valoare a indicatorului țintă ca
. În total, avem
observații, așa că putem reprezenta observațiile noastre ca
.
Regresorii
Să considerăm că există factori care, într-o anumită măsură, explică valorile indicatorului țintă. De exemplu, în cazul cursului perechii dolar/rublă, prețul petrolului, rata FRS și altele au un impact semnificativ. Acești factori se numesc regresori. Astfel, fiecărei valori a indicatorului țintă trebuie să îi corespundă o valoare a regresorului, adică, dacă avem 12 indicatori țintă pentru fiecare lună din 2018, atunci trebuie să avem și 12 valori ale regresorilor pentru aceeași perioadă. Să denotăm valorile fiecărui regresor prin
. Să presupunem că în cazul nostru avem
regresori (adică
factori care influențează valorile indicatorului țintă). Astfel, regresorii noștri pot fi reprezentați după cum urmează: pentru 1-regresor (de exemplu, prețul petrolului):
, pentru 2-regresor (de exemplu, rata FRS):
, pentru regresorul „
-lea”: 
Dependenta indicatorilor țintă de regresori
Presupunem că dependența indicatorului țintă
de regresorii „
-ei” observații poate fi exprimată printr-o ecuație de regresie liniară de forma:

, unde
— «
-le” valoare a regresorului de la 1 la
,
— numărul regresorilor de la 1 la 
— coeficienții unghiulari, care reprezintă magnitudinea cu care se va schimba indicatorul țintă calculat în medie la schimbarea regresorului.
Cu alte cuvinte, pentru fiecare regresor (cu excepția
) definim coeficientul „propriu”
, apoi înmulțim coeficienții cu valorile regresorilor „
-ei” observații, rezultând o aproximare a indicatorului țintă „
-ei”.
Prin urmare, trebuie să găsim coeficienți
, pentru care valorile funcției noastre de aproximare
vor fi plasate cât mai aproape de valorile indicatorilor țintă.
Evaluarea calității funcției de aproximare
Vom determina evaluarea calității funcției de aproximare prin metoda celor mai mici pătrate. Funcția de evaluare a calității va avea următoarea formă:

Trebuie să găsim valori ale coeficientelor $w$, pentru care valoarea
va fi cea mai mică.
Transformăm ecuația într-o formă matriceală
Reprezentare vectorială
Pentru început, pentru a ne ușura viața, ar trebui să ne îndreptăm atenția către ecuația de regresie liniară și să observăm că primul coeficient
nu este multiplicat cu niciun regresor. În acest context, atunci când vom transforma datele într-o formă matricială, circumstanța menționată anterior va complica serios calculele. În acest sens, se propune introducerea unui alt regresor pentru primul coeficient.
și să-l egalăm cu unu. Mai exact, fiecare „
-a” valoare a acestui regresor va fi egalată cu unu — căci, prin multiplicarea cu unu, din punctul de vedere al rezultatelor calculelor, nimic nu se va schimba, iar din perspectiva regulilor multiplicării matricelor, ne vor scuti de multe neplăceri.
Acum, pentru o perioadă, în scopul simplificării materialului, să presupunem că avem doar o singură „
-a” observație. Atunci, să ne imaginăm valorile regresorilor pentru observația „
-ă” sub forma unui vector.
Vectorul
are dimensiunea
, adică
linii și 1 coloană:

Coeficientii căutați i-am reprezentat sub formă de vector
, având dimensiunea
:

Ecuația regresiei liniare pentru observația „
-ă” va avea următoarea formă:

Funcția de evaluare a calității modelului liniare va lua următoarea formă:

Să observăm că, în conformitate cu regulile multiplicării matricelor, a fost necesar să transpunem vectorul
.
Reprezentarea matricială
Ca rezultat al multiplicării vectorilor, vom obține un număr:
, ceea ce era de așteptat. Acest număr este aproximarea valorii țintă „
-ului”. Însă noi avem nevoie de aproximarea nu unei singure valori a indicatorului țintă, ci a tuturor. În acest scop, vom scrie toți regresorii „
-i” în format matricial.
Matricea obținută are dimensiunea
:

Acum ecuația regresiei liniare va arăta astfel:

Să notăm valorile indicatorilor țintă (toate
) prin vectorul
de dimensiune
:

Acum putem scrie în format matricial ecuația evaluării calității modelului liniare:

Practic, din această formulă obținem formula bine cunoscută nouă. 
Cum se face acest lucru? Se deschid parantezele, se realizează derivarea, se transformă expresiile obținute etc., iar exact asta ne vom ocupa acum.
Transformări matriciale
Să deschidem parantezele


Să pregătim ecuația pentru derivare
Pentru aceasta, vom efectua unele transformări. În calculele viitoare, ne va fi mai convenabil dacă vectorul
va fi reprezentat la începutul fiecărui produs din ecuație.
Transformarea 1

Cum s-a întâmplat asta? Pentru a răspunde la această întrebare, este suficient să ne uităm la dimensiunile matricelor înmulțite și să vedem că la ieșire obținem un număr sau altfel
.
Să notăm dimensiunile expresiilor matriciale.



Transformare 2

Să detaliem în mod similar transformarea 1


La ieșire obținem ecuația pe care trebuie să o derivăm:

Derivăm funcția de evaluare a modelului
Derivăm după vector
:




Întrebările de ce
nu ar trebui să existe, dar operațiile de definire a derivatelor în celelalte două expresii le vom analiza mai detaliat.
Derivare 1
Să detaliem derivarea: 
Pentru a determina derivata unei matrice sau a unui vector, trebuie să ne uităm la ce au în interior. Să ne uităm:



Să denotăm produsul matricelor
prin matricea
. Matricea
este pătrată și mai mult decât atât, este simetrică. Aceste proprietăți ne vor fi utile mai departe, să le reținem. Matricea
are dimensiunea
:

Acum, sarcina noastră este să înmulțim corect vectorii cu matricea și să nu obținem „doi ori doi este cinci”, așa că să ne concentrăm și să fim extrem de atenți.




Cu toate acestea, am avut o expresie complicată! De fapt, am obținut un număr — scalar. Și acum, cu adevărat, trecem la derivare. Este necesar să găsim derivata expresiei obținute după fiecare coeficient
și să obținem un vector de dimensiune
. Ca o precauție, voi scrie procedurile pas cu pas:
1) derivăm după
, obținem: 
2) derivăm după
, obținem: 
3) derivăm după
, obținem: 
La ieșire — vectorul promis de dimensiune
:

Dacă ne uităm atent la vector, putem observa că elementele din stânga și cele corespunzătoare din dreapta ale vectorului pot fi grupate în așa fel încât, în final, din vectorul prezentat să putem desprinde vectorul
de dimensiune
. De exemplu,
(elementul din stânga al primei linii a vectorului)
(elementul din dreapta al primei linii a vectorului) poate fi reprezentat ca
, iar
— ca
și așa mai departe pentru fiecare linie. Să grupăm:

Să scoatem vectorul
și la ieșire vom obține:

Acum, să ne uităm la matricea obținută. Matricea reprezintă suma a două matrice
:

Să ne amintim că, cu puțin timp în urmă, am menționat o proprietate importantă a matricei
— este simetrică. Pe baza acestei proprietăți, putem afirma cu încredere că expresia
este egală cu
. Este ușor de verificat, deschizând produsul matricelor pe elemente.
. Nu vom face asta aici, cei dornici pot efectua verificarea singuri.
Să ne întoarcem la expresia noastră. După transformările noastre, a rezultat exact așa cum voiam să-l vedem:

Deci, am reușit cu prima diferențiere. Trecem la a doua expresie.
Diferențiere 2

Să urmăm calea trasată. Aceasta va fi mult mai scurtă decât precedentul, așa că nu vă îndepărtați prea mult de ecran.
Să descompunem elementele vectorilor și matricea:



Pentru un timp vom elimina din calcule cifra două - aceasta nu are un rol semnificativ, o vom aduce înapoi mai târziu. Vom înmulți vectorii cu matricea. În primul rând, vom înmulți matricea
cu vectorul
, aici nu avem nicio restricție. Vom obține un vector de dimensiune
:

Vom efectua următoarea acțiune - vom înmulți vectorul
cu vectorul obținut. La ieșire ne va aștepta un număr:

Exact acesta îl vom diferenția. La ieșire vom obține un vector de dimensiune
:

Îți pare cunoscut? Precis! Aceasta este produsul matricei
cu vectorul
.
Astfel, a doua diferențiere a fost finalizată cu succes.
În concluzie
Acum știm cum s-a obținut egalitatea
.
În final, să descriem o cale rapidă de transformare a formelor de bază.
Să evaluăm calitatea modelului conform metodei celor mai mici pătrate:


Diferențiem expresia obținută:


Literatură
Sursele online:
1)
2)
3)
4)
Cărți, culegeri de probleme:
1) Curs de predare a matematicii superioare: curs complet / D.T. Pisemenyi – ediția a 4-a. – Moscova: Iris-Press, 2006
2) Analiza regresională aplicată / N. Draper, G. Smith – ediția a 2-a. – Moscova: Finanțe și statistică, 1986 (traducere din engleză)
3) Probleme de soluționare a ecuațiilor matrice:
Sursa: habr.com
