Regularyzacja w regresji

Pomyślmy o uczeniu maszynowym jako o sztuce tworzenia modeli, które dobrze przewidują wyniki na podstawie przyszłych, nieznanych danych. Okej, wydaje się proste, ale w tym kontekście zadać można sobie pytanie: na ile dokładnie chcemy nauczyć się danych obecnych? W praktyce to, że model działa świetnie na danych, na których go trenowaliśmy, nie musi wcale oznaczać, że równie dobrze będzie na tych, których nigdy wcześniej “nie widział”. Zjawisko zbytniego dopasowania do danych treningowych nazywamy przeuczeniem (ang. overfitting).

Tu na ratunek przychodzą różne techniki regularyzacji, które można porównać do zasad fair play w sporcie. Tak jak te zasady zapobiegają nieuczciwym praktykom i sprawiają, że gra jest bardziej ekscytująca, tak regularyzacja pomaga modelom nie “oszukiwać” i nie uczyć na pamięć szczegółów z danych, a raczej ogólnych zasad.

Funkcja kosztu

Regresja liniowa:

Funkcja kosztu (funkcja straty), jest miarą tego, jak dobrze wyznaczona przez nas linia przewiduje rzeczywiste wyniki. W przypadku regresji liniowej, najczęściej używa MSE (Mean Squared Error), czyli błędu średniokwadratowego. Matematycznie wygląda to tak:

J(\beta) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} – y^{(i)})^2

I jest to po prostu średnia wartość kwadratów różnic pomiędzy rzeczywistymi a prognozowanymi wynikami, gdzie mniejsza wartość MSE oznacza lepsze dopasowanie modelu do danych. Podczas procesu uczenia algorytmu, staramy się więc tą wartość minimalizować.

Regresja logistyczna:

W przypadku regresji logistycznej, modelowana zmienna nie pochodzi już z rozkładu ciągłego, a zerojedynkowego. Musimy zatem dostosować także minimalizowaną funkcję kosztu. Najczęściej używana jest entropia krzyżowa, wyrażona wzorem:

J(\beta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\beta(x^{(i)})) + (1 – y^{(i)}) \log(1 – h_\beta(x^{(i)})) \right]

Ta funkcja, choć wydaje się nieco skomplikowana, mierzy po prostu różnicę pomiędzy rzeczywistymi etykietami (0 lub 1) a przewidywanymi prawdopodobieństwami. Minimalizowana jest średnia obliczonych wartości. Dla pojedynczej próbki, w zależności od otrzymanej wartości, wartość funkcji kosztu wygląda tak:


Techniki regularyzacji:

Regularyzacja L1 (Lasso)

Regularyzacja L1 polega w praktyce na dodaniu dodatkowego elementu do funkcji kosztu. Sprawia to, że niektóre współczynniki zaczynają się zbliżać do zera, co można interpretować jako eliminowanie mniej ważnych cech z modelu. Innymi słowy, zapobiegamy sytuacji, w której wartości współczynników /beta (nawet jeśli “rozwiązują” układ równań z niskim średnim błędem), przyjmują zbyt duże wartości.

Dla regresji liniowej, funkcja kosztu będzie zatem wyglądać następująco:

J(\beta) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} – y^{(i)})^2 + \alpha \sum_{j=1}^{n} |\beta_j|

Zaś dla regresji logistycznej:

J(\beta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\beta(x^{(i)})) + (1 – y^{(i)}) \log(1 – h_\beta(x^{(i)})) \right] + \alpha \sum_{j=1}^{n} |\beta_j|

W obu przypadkach, do pierwotnej funkcji kosztu dodaliśmy po prostu dodatkowy element. Model jest zatem “karany” jeśli suma wartości współczynników rośnie.

Regularyzacja L2 (Ridge)

Regularyzacja L2 również dodaje dodatkowy element do funkcji kosztu, ale tym razem jest to suma kwadratów współczynników modelu. To nie eliminuje cech, ale wciąż “karze” je za zbyt duże wartości.

Regresja liniowa:

J(\beta) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} – y^{(i)})^2 + \frac{\alpha}{2} \sum_{j=1}^{n} \beta_j^2

Regresja logistyczna:

J(\beta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\beta(x^{(i)})) + (1 – y^{(i)}) \log(1 – h_\beta(x^{(i)})) \right] + \frac{\alpha}{2} \sum_{j=1}^{n} \beta_j^2

Elastic Net

Elastic Net to połączenie obu powyższych tych technik. W praktyce oznacza to, że dodajemy do funkcji kosztu zarówno sumę absolutnych wartości współczynników (L1), jak i sumę ich kwadratów (L2). Funkcje kosztu będą zatem wyglądać następująco:

Regresja liniowa:

J(\beta) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} – y^{(i)})^2 + \alpha \rho \sum_{j=1}^{n} |\beta_j| + \frac{\alpha (1-\rho)}{2} \sum_{j=1}^{n} \beta_j^2

Regresja logistyczna:

J(\beta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\beta(x^{(i)})) + (1 – y^{(i)}) \log(1 – h_\beta(x^{(i)})) \right] + \alpha \rho \sum_{j=1}^{n} |\beta_j| + \frac{\alpha (1-\rho)}{2} \sum_{j=1}^{n} \beta_j^2

W tym wszystkim pozostał jeszcze jeden nieomówiony element wzoru – alfa. Jest to współczynnik, dzięki któremu możemy sterować siłą regularyzacji. Im większa alfa tym bardziej bierzemy pod uwagę dodatkowy czynnik w funkcji kosztu.


Każda z omówionych powyżej technik ma swoje zalety i wady, a wybór między nimi zależy od konkretnego przypadku. Najważniejsze jest jednak to, że regularyzacja pomaga nam stworzyć modele, które są bardziej uogólnione, zatem lepiej działają na nowych danych. A chyba właśnie to jest naszym celem?

Zobacz także:

  • Piotr Szymański

    Kategoria:

    Hejka! Zapraszam na skrót z minionych dwóch tygodni, który przyswoić możecie przy ciepłej herbatce w te mroczne, szare dni. W opublikowanym przez Google 14 listopada ostrzeżeniu wskazano kilka najważniejszych rodzajów oszustw internetowych. Uwagę zwrócono między na niebezpieczne techniki ataków typu cloaking, które nabierają nowego wymiaru dzięki wykorzystaniu sztucznej inteligencji. Cloaking polega na ukrywaniu przed użytkownikiem […]
  • Piotr Szymański

    Kategoria:

    Hejka po dłuższej przerwie! Zaczynamy świeżym tematem. Raptem kilkanaście godzin temu do użytkowników trafiła, zapowiedziana 25 lipca, funkcja SearchGPT od OpenAI, umożliwiająca, w przeciwieństwie do tradycyjnych modeli językowych, na integrację z internetem w czasie rzeczywistym. SearchGPT ma dostęp do aktualnych informacji z sieci, co pozwala na udzielanie odpowiedzi opartych na najnowszych danych. Ponadto SearchGPT dostarcza […]
  • Piotr Szymański

    Kategoria:

    Hejson! Dzisiejsza konsumpcja mediów ma to do siebie, że odbywa się na 5-6 calowym ekranie telefonu. Ma też to do siebie, że zanim zdjęcie dotrze do Ciebie, to przejdzie przez 6 konwersacji na jedynym słusznym messengerze, zatem zostanie 6-cio krotnie skompresowane. W międzyczasie, jak będziecie mieli pecha, to jakiś wujek zrobi screena, zamiast zapisać zdjęcie […]
  • Piotr Szymański

    Kategoria:

    Hej! Robimy bardzo dużo zdjęć, a co za tym idzie – wiele z nich jest niechlujnych, z zabałagnionym tłem. Możemy jednak chcieć wykorzystać je do pochwalenia się naszym ryjkiem na jakimś publicznym profilu, gdyż np. naturalne, miękkie światło korzystnie eksponuje naszą facjatę. Podejścia mogą być dwa – albo zdecydujemy się na blur bądź zupełne usunięcie […]
  • Piotr Szymański

    Kategoria:

    Strzałeczka. Nvidia przejęła OctoAI, startup specjalizujący się w optymalizacji modeli uczenia maszynowego. To już piąta akwizycja Nvidii w 2024 roku, co czyni aktualnie nam panujący rok rekordowym pod względem liczby przejęć. OctoAI, założone w 2019 roku przez Luisa Ceze, skupiło się na tworzeniu oprogramowania zwiększającego wydajność modeli uczenia maszynowego na różnych platformach sprzętowych. Oprogramowanie OctoAI […]