Zaczynając przygodę z uczeniem maszynowym, człowiek zazwyczaj wyobraża sobie, że większość czasu spędzi na projektowaniu skomplikowanych sieci neuronowych, które niczym cyfrowy mózg same rozwiążą wszystkie problemy świata. Szczerze mówiąc, rzeczywistość jest nieco bardziej… przyziemna. Często okazuje się, że zamiast bycia architektem AI, stajesz się kimś w rodzaju detektywa danych, który użera się z brakującymi rekordami i dziwnymi formatami plików.
 

Właśnie o tym traktuje trzecie wydanie książki Auréliena Gérona Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow - o tym, że uczenie maszynowe to nie tylko magiczny algorytm, ale cały, czasem żmudny proces.

Od czego w ogóle zacząć?

Pierwszym odruchem wielu osób jest rzucenie się na kod. Ale zanim w ogóle dotkniesz Pythona, musisz zrozumieć, co właściwie chcesz osiągnąć. W naszych książkach często odwołujemy się do ram CRISP-DM, choć dla wielu brzmi to jak nudna korpomowa. Chodzi jednak o prostą rzecz: określenie celu biznesowego. Czy chcesz przewidzieć cenę mieszkania, czy może wykryć, który z Twoich klientów zaraz ucieknie do konkurencji? Bez tego ani rusz.
 

Dlaczego to takie ważne? No cóż, jeśli źle zdefiniujesz problem, to nawet najpotężniejszy model na nic się nie przyda. To trochę jak budowanie superszybkiego samochodu, żeby przejechać przez środek jeziora - imponująca technologia, ale cel nieco chybiony.
 

Ta cała zabawa z danymi

Potem następuje etap, który niektórzy nazywają „brudną robotą”, czyli przygotowanie danych. To tutaj spędzisz pewnie z 80% swojego czasu. Musisz te dane zebrać, wyczyścić i - co chyba najtrudniejsze – zrozumieć.
 

  • Czyszczenie danych: To moment, w którym wyrzucasz rekordy z błędami albo decydujesz, co zrobić z pustymi polami.
  • Inżynieria cech (feature engineering): To brzmi dumnie, a chodzi o to, żeby z surowych informacji wycisnąć coś, co algorytm zrozumie. Na przykład, zamiast samej daty urodzenia, lepiej podać modelowi wiek użytkownika.
  • Skalowanie: Większość modeli wariuje, gdy jedna zmienna ma wartości od 0 do 1, a druga od 0 do miliona. Trzeba je sprowadzić do wspólnego mianownika.
     

Swoją drogą, ciekawe jest to, że niektóre algorytmy, jak drzewa decyzyjne, mają to gdzieś i radzą sobie bez skalowania. Ale o tym pewnie pogadamy w kolejnym artykule, bo to grubsza sprawa.
 

Budowanie modelu i... rozczarowanie?

Kiedy już masz te swoje wychuchane, wyczyszczone dane, w końcu odpalasz Scikit-Learn. I tu pojawia się pierwszy schodek: wybór modelu. Czy to ma być regresja liniowa? A może od razu lasy losowe? Na początku warto trzymać się prostoty. Sugerujemy, żeby najpierw stworzyć tzw. *baseline*, czyli najprostszy możliwy model, który posłuży jako punkt odniesienia.
 

Częstą pułapką, w którą wpadają początkujący, jest tzw. przetrenowanie (overfitting). Model uczy się danych na pamięć, łącznie z szumem, i potem na nowych przykładach kompletnie wykłada. Trochę jak uczeń, który wykuł testy z zeszłego roku, ale nie rozumie tematu. Z drugiej strony mamy niedotrenowanie - model jest zbyt „leniwy” lub prosty, by cokolwiek zauważyć.
 

Droga na produkcję

No dobra, masz model, wyniki na zbiorze testowym wyglądają świetnie (pamiętaj, zawsze oddzielaj zbiór testowy na samym początku, to świętość!). Co dalej? Model musi zacząć na siebie zarabiać. Wdrożenie to moment, w którym kod z Twojego laptopa trafia na serwer.
 

  1. Serializacja modelu: Musisz zapisać swój model do pliku, żeby można go było łatwo wczytać w innym miejscu.
  2. Monitoring: To nie jest tak, że wrzucasz model i zapominasz. Dane w świecie rzeczywistym się zmieniają. To, co działało w zeszłym miesiącu, dziś może być kompletną bzdurą.
  3. Ekosystem: Tu wchodzą do gry narzędzia typu TensorFlow Serving czy Vertex AI, jeśli celujesz w chmurę.
     

Szczerze mówiąc, cały ten proces to bardziej maraton niż sprint. Wymaga cierpliwości i - nie oszukujmy się - sporej dawki pokory wobec danych, które potrafią być wyjątkowo złośliwe. Ale satysfakcja, gdy system zaczyna poprawnie przewidywać rzeczywistość, jest… no, całkiem spora.
 

Czy masz już pomysł, na jakim zbiorze danych chciałbyś przetestować swój pierwszy model? A może utknąłeś na etapie czyszczenia tabeli w Excelu? Chętnie pogadamy o tych mniej „seksownych” aspektach pracy z AI. Śledź naszą serię artykułów na temat uczenia maszynowego.