- Formalna definicja regresji liniowej
- Wyprowadzenie funkcji kosztu (MSE)
- Obliczanie gradientu względem parametrów
- Regresja logistyczna jako algorytm klasyfikacyjny
- Funkcja kosztu: Entropia krzyżowa (Cross-Entropy)
- Interpretacja współczynników i mechanizm Log-Odds
- Implementacja krok po kroku: od formuły do pętli optymalizującej
- Dyskusja o zbieżności i typowych problemach numerycznych
- Praktyczne zastosowania w inżynierii danych
- Porównanie techniczne modeli
- Źródła
Uczenie maszynowe w swoich najgłębszych fundamentach opiera się na matematycznej optymalizacji, a najpopularniejszym punktem wyjścia do zrozumienia tych skomplikowanych mechanizmów są algorytmy regresji liniowej oraz regresji logistycznej. Modele te stanowią absolutną bazę dla bardziej zaawansowanych architektur, w tym sztucznych sieci neuronowych, pozwalając na dogłębne zrozumienie propagacji błędów i w pełni świadomą aktualizację wag w procesach iteracyjnych. Poznanie ich mechaniki od podstaw ułatwia radzenie sobie z wieloma wyzwaniami numerycznymi, a także pozwala na optymalne budowanie i strojenie rozwiązań z zakresu zaawansowanej analityki danych.
Modele regresyjne uczą nas, że uczenie maszynowe to w rzeczywistości rozwiązywanie wielowymiarowych problemów optymalizacyjnych, gdzie kluczem jest odpowiednie zdefiniowanie metryki błędu.
Formalna definicja regresji liniowej
Regresja liniowa to w swojej istocie model parametryczny, którego głównym zadaniem jest modelowanie zależności między zmienną objaśnianą (zależną) a jednym lub wieloma predyktorami (zmiennymi niezależnymi). Celem algorytmu jest przewidywanie ciągłej wartości na podstawie dostarczonego wektora cech. Formalnie, dla pojedynczej obserwacji reprezentowanej jako wektor cech
oraz dopasowanego do niej wektora wag (parametrów modelu)
, hipotezę matematyczną modelu definiujemy jako ich kombinację liniową.
Aby ułatwić obliczenia macierzowe w fazie implementacji, do wektora cech dodaje się zazwyczaj sztuczną stałą wartość
, co pozwala na płynne włączenie wyrazu wolnego (ang. bias) bezpośrednio do standardowego iloczynu skalarnego. Zatem model regresji liniowej przyjmuje zwartą postać:
![]()
W uogólnionym zapisie macierzowym, obejmującym cały dostępny zbiór danych treningowych składający się z
przykładów uczących, macierz cech
przyjmuje wymiary
. Równanie predykcji upraszcza się wówczas do pojedynczej operacji mnożenia macierzy:
. W wyniku tej operacji uzyskujemy jednowymiarowy wektor kolumnowy przewidywanych wartości dla wszystkich próbek w systemie. Nadrzędnym zadaniem algorytmu uczącego jest analityczne lub iteracyjne znalezienie takiego optymalnego wektora parametrów
, który w najwyższym możliwym stopniu zminimalizuje rozbieżności pomiędzy predykcjami a rzeczywistymi etykietami zapisanymi w wektorze
.
Wyprowadzenie funkcji kosztu (MSE)
Aby obiektywnie ocenić jakość dopasowania modelu w konkretnym punkcie przestrzeni parametrów, definiuje się tzw. funkcję kosztu (zwaną również funkcją straty). W przypadku regresji liniowej powszechnym, matematycznie eleganckim standardem jest błąd średniokwadratowy, znany szerzej pod akronimem MSE (Mean Squared Error). Dla
niezależnych przykładów uczących, funkcja kosztu
jest zdefiniowana w następujący sposób:
![]()
Charakterystyczny ułamek zawierający dwójkę w mianowniku wprowadzany jest tu wyłącznie dla późniejszej wygody analitycznej. Podczas obliczania pochodnej wielomianu drugiego stopnia, z reguły łańcuchowej wyciągnięta zostanie potęga, która idealnie skróci się z owym ułamkiem, co znacząco upraszcza końcowy wzór gradientu. Ponieważ funkcja kwadratowa opisująca błąd formuje w przestrzeni wielowymiarowej wypukłą paraboloidę, model posiada gwarancję istnienia dokładnie jednego, globalnego minimum. Ułatwia to bezproblemową zbieżność metod iteracyjnych.
Obliczanie gradientu względem parametrów
W celu optymalizacji opisanej wyżej funkcji algorytmem spadku wzdłuż gradientu (Gradient Descent), niezbędne jest precyzyjne obliczenie wektora gradientu funkcji kosztu względem wag
. Gradient to wektor pochodnych cząstkowych, który wyznacza w przestrzeni kierunek najszybszego wzrostu funkcji. Pochodna cząstkowa dla wybranego, pojedynczego parametru
przedstawia się jako:
![]()
Taki zapis, choć intuicyjny i doskonały do implementacji prostej pętli programistycznej po poszczególnych cechach, jest wysoce nieefektywny w środowiskach do przetwarzania dużych wolumenów danych. W postaci macierzowej, krytycznej z punktu widzenia paralelizacji obliczeń w językach wektoryzowanych takich jak Python (np. we frameworkach bazujących na tablicach wielowymiarowych), ten sam gradient zapisuje się w zwięzłej formie iloczynu macierzy przez wektor:
![]()
Regresja logistyczna jako algorytm klasyfikacyjny
Pomimo historycznej nazwy wskazującej na modelowanie ciągłe, regresja logistyczna jest potężnym algorytmem wykorzystywanym wyłącznie do zadań klasyfikacji (najczęściej binarnej). Zastosowanie wprost modelu liniowego do przewidywania przynależności do klas napotyka poważny problem: przewidywane wartości często wykraczają drastycznie poza logiczny przedział
, przez co tracą jakąkolwiek sensowną interpretację jako prawdopodobieństwo. Technicznym rozwiązaniem tego problemu jest dodanie etapu transformacji, czyli przepuszczenie wyjścia modelu liniowego przez nieliniową funkcję aktywacji – funkcję sigmoidalną.
Funkcja logistyczna (sigmoida) ma charakterystyczny kształt litery S i jest formalnie definiowana równaniem:
![]()
Kiedy w miejscu argumentu
podstawimy nasz zdefiniowany wcześniej model liniowy, otrzymujemy ulepszoną hipotezę:
![]()
Wynik zwracany przez to zmodyfikowane równanie bezpiecznie asymptotycznie dąży do zera dla wartości skrajnie ujemnych i do jedynki dla wartości skrajnie dodatnich. Od teraz traktuje się go z pełnym przekonaniem jako warunkowe prawdopodobieństwo przynależności badanej wektorowej próbki cech do klasy pozytywnej:
.
Funkcja kosztu: Entropia krzyżowa (Cross-Entropy)
Próba zastosowania poznanego wcześniej błędu średniokwadratowego (MSE) z uwzględnieniem równania nieliniowej funkcji sigmoidalnej rodzi poważny matematyczny problem. Generuje funkcję kosztu, która traci pożądaną właściwość wypukłości. Taka pofalowana struktura obfituje w minima lokalne, przez co optymalizator bazujący na gradiencie bardzo szybko ugrzązłby w suboptymalnym zagłębieniu. Z tego powodu w przypadku klasyfikacji optymalizuje się funkcję entropii krzyżowej (Log-Loss):
![]()
Logarytmiczna natura tej miary błędu sprawia, że jest ona rygorystycznie wypukła. Co więcej, entropia krzyżowa niezwykle silnie karze estymator za wysoką pewność przy błędnej ostatecznej decyzji. Jeżeli rzeczywista kategoria próbki to
, a funkcja decyzyjna zwróci wartość bliską absolutnemu zeru, algorytm musi wyliczyć logarytm liczby bliskiej zera. Wartość ta zmierza logarytmicznie w stronę ujemnej nieskończoności, przez co kara w postaci funkcji kosztu wybucha do niewyobrażalnych rozmiarów. Wymusza to na algorytmie szybką zmianę parametrów w przeciwnym kierunku.
Interpretacja współczynników i mechanizm Log-Odds
Praktyczne wdrażanie modeli analitycznych wymaga umiejętności ich poprawnej interpretacji. W liniowej wersji, wyliczony współczynnik
oznacza zmianę wartości prognozowanej dokładnie o wartość
przy jednostkowym skoku odpowiedniej cechy
. W algorytmach logistycznych nieliniowość mocno zaburza tę prostą i intuicyjną zależność. Można jednak uciec się do linearyzacji i skorzystać z pojęcia logarytmu z szans, znanego szerzej jako log-odds. Sama „szansa” to klasyczny stosunek prawdopodobieństwa odniesienia sukcesu do prawdopodobieństwa jego braku, wyrażany wzorem
.
Przekształcając odwrotnie bazowe równanie probabilistyczne logistyczne, wyprowadzamy transformację zwaną logitem:
![]()
W świetle powyższej definicji interpretacja staje się bardziej przejrzysta. Mianowicie: przyrost wartości atrybutu
o jedną jednostkę skutkuje linearną zmianą logarytmu wyliczonej szansy precyzyjnie o współczynnik wagi
. Gdy obłożymy to potęgowaniem na bazie liczby Eulera, wyrażenie
komunikuje wprost, jako bezpośredni mnożnik, o ile razy powiększą się nominalne szanse zaklasyfikowania rekordu do klasy pozytywnej.
Implementacja krok po kroku: od formuły do pętli optymalizującej
Proces implementacji uczenia regresji sprowadza się do poprawnego zainicjalizowania puli losowych wektorów wag (najczęściej rozkładem jednostajnym bliskim zera lub samym wektorem zerowym) oraz ich iteracyjnego aktualizowania. Co interesujące, zasada uaktualniania parametrów pozostaje algebraicznie w pełni identyczna dla regresji liniowej i jej odpowiednika logistycznego. Wyróżnia je wyłącznie bazowa definicja formacji hipotezy zagnieżdżonej w predyktorze.
Równanie aktualizujące dla założonej stałej tempa uczenia się (learning rate), oznaczanej parametrem
, realizowane jest według formuły:
![]()
W wydajnej implementacji w wektoryzowanym języku skryptowym, rdzeń całego iteracyjnego uczenia ogranicza się do zwięzłej pętli realizującej sekwencyjne kroki w epokach:
- Obliczenie pełnej macierzy predykcji wykorzystując mnożenie macierzy i opcjonalne przejście przez nieliniową sigmoidę.
- Ewaluacja globalnego błędu rezydualnego, jako macierzowa różnica pomiędzy estymatorami a wartościami docelowymi zbioru uczącego.
- Projekcja uchybu na atrybuty, czyli wyliczenie gradientu uśrednionego po wszystkich instancjach za pomocą transponowanej macierzy i operacji dot-product.
- Korekcja wag poprzez odjęcie od bieżących parametrów przeskalowanego stałą
gradientu.
Dyskusja o zbieżności i typowych problemach numerycznych
Odpowiednia stabilność zbieżności algorytmu wyliczającego bezpośrednio zależy od właściwej ewaluacji współczynnika uczenia się
. Parametr skonfigurowany przesadnie zachowawczo (wartość bardzo bliska zeru) spowolni uczenie do punktu praktycznej nieakceptowalności. Natomiast krok zbyt agresywny skutkuje drastycznymi fluktuacjami trajektorii funkcji w pobliżu docelowego minimum, a bardzo często całkowitym przestrzeleniem celu i dywergencją (tzw. wybuchem błędu). Przed optymalizacją niezmiernie krytyczna jest uprzednia standaryzacja rozkładów zmiennych objaśniających, zapewniająca zbliżone skale danych, dzięki czemu algorytmy minimalizują koszt operacyjny, omijając wąskie topologicznie gradientowe doliny.
Przy samodzielnym programowaniu logiki logistycznej napotyka się również na pułapki numeryczne związane z jednostką arytmetyczną zmiennoprzecinkową. Podczas przeliczania wartości w wykładniku potęgi
dla wielkich liczb ujemnych, algorytm może zaraportować defekt przekroczenia dopuszczalnego rozmiaru reprezentacji zmiennej (ang. numerical overflow). W kodach produkcyjnych zapobiega się temu, wprowadzając sztywne ograniczenia zakresowe na wyjście macierzowe (ang. clipping). Niemniej groźne jest liczenie logarytmów na styku wartości skrajnych prawdopodobieństw – kiedy model przewidzi rygorystyczne zero dla błędnej kategorii, logarytm spróbuje przetworzyć matematyczną niemożliwość (
), dając krytyczny błąd wartości nieokreślonych. Obejście polega na celowym wstrzykiwaniu bliskich zera wartości typu epsilon (
) w korpusie samej funkcji kosztowej.
Praktyczne zastosowania w inżynierii danych
Omawiana teoria stanowi merytoryczne fundamenty rygorystycznej analityki spotykanej na co dzień w produkcyjnych potokach danych. W modelowaniu ciągłych wolumenów sprzedaży czy wycenie portfeli rynkowych dominuje implementacja zwykłej i wielorakiej formuły liniowej, odpowiadająca na bezpośrednie zapytania ilościowe. Z kolei systemy filtrujące ruch sieciowy, oceniające zdolność kredytową klientów (Credit Scoring) czy też predyktory retencji subskrybentów oparte są w głównym pniu logicznym o wdrożenia modułów logistycznych.
Porównanie techniczne modeli
Poniższa tabela stanowi merytoryczne zestawienie rozpatrwanych koncepcji na płaszczyźnie algorytmicznej i analitycznej.
| Charakterystyka | Regresja Liniowa | Regresja Logistyczna |
|---|---|---|
| Rodzaj wyjściowego wektora | Wartości rzeczywiste, bez ograniczeń zakresu | Dyskretne zbiory prawdopodobieństw w przedziale |
| Główne zastosowanie dziedzinowe | Zadania ciągłej regresji trendów | Binarne i wieloklasowe zadania klasyfikacji |
| Dominująca miara błędu | Błąd średniokwadratowy (MSE) | Wypukła binarna entropia krzyżowa (Log-Loss) |
| Wpływ wag predykcji | Liniowy we współczynniku kierunkowym | Przeliczalny i wykładniczy na bazie log-oddsów |
Źródła
- Regresja liniowa i logistyczna — od podstaw — Turing.pl
- Jak działa regresja liniowa i gradient descent – przewodnik od – Sukces AI
- Jak zrozumieć regresję lokalnie ważoną i logistyczną – Sukces AI
- WYKŁAD: Klasyfikacja logistyczna – IPI PAN
- Regresja logistyczna – Ichi.pro
- Regresja logistyczna, problemy bias/variance, diagnostyka – AGH
- Regresja liniowa: ćwiczenie polegające na schodkowym zmniejszaniu gradientu | Machine Learning | Google for Developers





