Uczenie nadzorowane

Uczenie modelu na danych z etykietami, gdzie każdy przykład ma przypisaną poprawną odpowiedź. Model uczy się odwzorowywać wejścia na właściwe wyjścia.

Uczenie nadzorowane (ang. supervised learning) to sposób trenowania modelu na danych, w których każdy przykład ma przypisaną poprawną odpowiedź — etykietę. Model dostaje pary (wejście, oczekiwane wyjście) i jego zadaniem jest nauczyć się funkcji, która odwzorowuje jedno na drugie. Mówiąc po ludzku: pokazujesz mu setki rozwiązanych zadań razem z odpowiedziami, a on uczy się je rozwiązywać samodzielnie na nowych, niewidzianych wcześniej danych. To najpopularniejszy i najbardziej „namacalny” paradygmat w machine learning.

Jak to działa

Trening polega na minimalizowaniu różnicy między tym, co model przewiduje, a tym, co faktycznie jest w etykiecie. Tę różnicę mierzy funkcja straty (loss function), a algorytm optymalizacji — najczęściej jakaś odmiana gradient descent — stopniowo dostraja parametry modelu, żeby ta strata malała. Po treningu sprawdzasz model na osobnym zbiorze testowym, którego nigdy nie widział, żeby ocenić, czy faktycznie się czegoś nauczył, czy tylko wykuł dane na pamięć.

Uczenie nadzorowane dzieli się na dwa główne zadania. Klasyfikacja — gdy etykieta jest kategorią: spam / nie spam, kot / pies, faktura / paragon. Regresja — gdy etykieta jest liczbą ciągłą: cena mieszkania, temperatura, czas dostawy. Cała reszta to warianty tych dwóch.

Przykład z praktyki

Klasyk na rozgrzewkę: klasyfikacja kwiatów na zbiorze Iris przy użyciu scikit-learn. Ładujesz dane, dzielisz je na część treningową i testową, trenujesz model i sprawdzasz dokładność:

  • from sklearn.model_selection import train_test_split
  • X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
  • model = RandomForestClassifier().fit(X_train, y_train)
  • model.score(X_test, y_test)

Tutaj X to cechy (długość płatka itd.), a y to etykiety gatunku — i właśnie te etykiety robią z tego uczenie nadzorowane.

Na co uważać

Największa pułapka to overfitting — model wkuwa dane treningowe razem z szumem i radzi sobie świetnie na treningu, a kładzie się na nowych przykładach. Dlatego zawsze trzymaj osobny zbiór testowy i nie podglądaj go podczas strojenia. Druga sprawa: etykiety bywają drogie i czasochłonne — ktoś musi je ręcznie nadać, a jeśli są błędne lub stronnicze, model wiernie powtórzy te błędy. Pamiętaj też o data leakage: jeśli do cech wpełznie informacja, której w produkcji nie będziesz mieć, wyniki będą zawyżone i nierealne.

Pojęcia powiązane: uczenie nienadzorowane (bez etykiet, np. klastrowanie), uczenie półnadzorowane, uczenie przez wzmacnianie, klasyfikacja i regresja, funkcja straty, overfitting, zbiór treningowy i testowy.