Trzeci odcinek naszej serii opartej na „biblii” Auréliena Gérona „Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow. Wydanie III”  to moment, w którym odstawiamy na bok proste linie regresji i zaczynamy wchodzić w rejony, gdzie algorytmy zyskują nieco więcej… charakteru. O ile pierwsze kroki w uczeniu maszynowym przypominają naukę tabliczki mnożenia, o tyle maszyny wektorów nośnych czy drzewa decyzyjne to już raczej czytanie poezji – niby zasady są jasne, ale diabeł tkwi w interpretacji i niuansach, których nie wyłapie żaden automat.

Maszyny wektorów nośnych, czyli o szukaniu najszerszej drogi

Wydaje mi się, że SVM (ang. *Support Vector Machines*) to jeden z najbardziej eleganckich konceptów w całym arsenale badacza danych. Wyobraź sobie, że masz dwie grupy punktów na wykresie i musisz je rozdzielić linią. Proste? Może i tak, ale SVM nie szuka jakiejkolwiek linii. On szuka najszerszej możliwej autostrady, która odseparuje te grupy od siebie. Te punkty, które leżą najbliżej brzegu tej drogi, to właśnie tytułowe wektory nośne. To na ich barkach spoczywa cały model.
 

Co się dzieje, gdy danych nie da się rozdzielić prostą linią? I tu wchodzi coś, co programiści nazywają „sztuczką z jądrem” (*kernel trick*). To trochę tak, jakbyś dodał trzeci wymiar do płaskiej kartki papieru, żeby punkty, które wcześniej były przemieszane, nagle dały się łatwo oddzielić płaszczyzną. Fascynujące jest to, że matematycznie wcale nie musimy tych dodatkowych wymiarów obliczać - to taka elegancka droga na skróty. Choć z drugiej strony, trzeba pamiętać, że SVM są wyjątkowo wrażliwe na skalowanie cech. Jeśli jedna zmienna dominuje nad inną pod względem wielkości, Twoja „autostrada” będzie wyglądać jak po przejściu tornada.
 

Drzewa decyzyjne i ich niemal ludzka logika

Zupełnie inaczej sprawa ma się z drzewami decyzyjnymi. To chyba najbardziej intuicyjne algorytmy, jakie wymyślono. Ich działanie przypomina grę w „20 pytań” – czy cecha X jest większa od 5? Jeśli tak, idź w lewo. Czy cecha Y to „niebieski”? Jeśli tak, idź w prawo. Co jest w nich urzekające, to fakt, że w przeciwieństwie do sieci neuronowych, drzewa nie są „czarną skrzynką”. Możesz dokładnie prześledzić, dlaczego model podjął taką, a nie inną decyzję.
 

Swoją drogą, drzewa mają jedną unikalną cechę, o której często zapominamy: mają totalnie gdzieś, czy Twoje dane są skalowane, czy nie. Mogą pracować na surowych liczbach i cechach kategorialnych bez mrugnięcia okiem. Ale, żeby nie było zbyt różowo - drzewa bywają strasznie uparte. Mają tendencję do nadmiernego dopasowywania się do danych treningowych, tworząc tak skomplikowane struktury, że stają się bezużyteczne przy nowych przykładach. To dlatego rzadko używa się ich „solo”, a częściej łączy w całe lasy losowe, gdzie tłum algorytmów głosuje nad ostatecznym wynikiem.
 

Przekleństwo wymiarowości i sztuka odpuszczania

W miarę jak dodajemy do naszych modeli kolejne informacje, wpadamy w pułapkę, którą matematycy nazywają przekleństwem wymiarowości. Brzmi to trochę jak tytuł kiepskiego horroru, ale problem jest realny: im więcej mamy cech, tym bardziej pusta staje się nasza przestrzeń danych. Algorytmy gubią się w tym labiryncie.
 

Rozwiązaniem jest często redukcja wymiarowości, na przykład za pomocą PCA (analizy głównych składowych). To proces, który pozwala nam skompresować dane, zachowując przy tym to, co w nich najważniejsze. Trochę jak robienie zdjęcia 3D w dwóch wymiarach - tracimy pewne informacje, ale ogólny zarys i najważniejsze krawędzie zostają nienaruszone.
 

Czasem najtrudniejszą rzeczą w uczeniu maszynowym nie jest dodawanie nowych zmiennych, ale umiejętność zrezygnowania z tych, które wprowadzają tylko szum. To wymaga pewnej intuicji, której nie nauczysz się z dokumentacji Scikit-Learn, a raczej przez setki godzin spędzonych na obserwowaniu, jak Twój model radzi sobie (lub nie) z rzeczywistością.
 

Wydaje się, że te zaawansowane techniki to most między prostą statystyką a głębokim uczeniem, o którym pewnie przyjdzie nam jeszcze opowiedzieć. Ciekawe, czy kiedykolwiek zastanawialiście się, jak bardzo nasze własne, ludzkie decyzje przypominają takie mocno rozbudowane drzewa decyzyjne? Czasem chyba lepiej nie wiedzieć.
 

Ciekawi mnie, który z tych konceptów wydaje się Wam bardziej „naturalny” - matematyczna precyzja autostrad SVM czy może nieco chaotyczna, ale logiczna struktura drzew? Każdy z nich ma swoje miejsce w ekosystemie AI, a wybór między nimi to często kwestia artystycznego wyczucia badacza, a nie tylko twardych liczb.