Uczenie maszynowe, często przedstawiane jako magiczna skrzynka, która „same się uczy”, w swojej istocie jest systematycznym, matematycznym procesem poszukiwania wzorców w danych. Kluczową metaforą jest tu nauka na przykładach. Algorytm nie otrzymuje sztywnych reguł programistycznych („jeśli X, to Y”), lecz ogromny zbiór przykładów – danych treningowych – i zadanie, aby na ich podstawie odkryć ukryte reguły, które te dane łączą. Nasze dane – kliknięcia, zakupy, lokalizacje, wpisy, zdjęcia – są tym surowym paliwem, ale zanim zostaną użyte, muszą przejść proces przygotowania. To etap inżynierii cech, gdzie ludzcy inżynierowie decydują, co w tych danych może być istotne. Dla prognozy pogody cechami będą: temperatura, wilgotność, ciśnienie, kierunek wiatru. Dla rekomendacji filmu: twoja historia oglądania, oceny, gatunki, a nawet czas spędzony na oglądaniu. Te cechy stają się współrzędnymi w wielowymiarowej przestrzeni matematycznej, w której algorytm będzie pracował.
Sercem procesu jest budowa modelu statystycznego. Model to uproszczona matematyczna reprezentacja rzeczywistości, rodzaj formuły z wieloma wolnymi parametrami („pokrętłami”), które początkowo mają losowe wartości. Zadaniem algorytmu jest dostrojenie tych pokręteł tak, by model jak najlepiej opisywał zależności w danych treningowych. Proces dostrajania to optymalizacja, sterowana przez funkcję straty (lub funkcję celu). To jest kluczowy mechanizm „nauki”. Wyobraźmy sobie, że uczymy model rozpoznawać koty na zdjęciach. Pokazujemy mu tysiące zdjęć oznaczonych „kot” lub „nie kot”. Po każdej próbie model dokonuje przypuszczenia, a funkcja straty oblicza błąd – czyli to, jak bardzo jego przypuszczenie odbiega od prawdziwej etykiety. Im większy błąd, tym większa „kara”. Algorytm (np. gradient descent – spadek gradientu) analizuje, w którą stronę pokrętła należy przekręcić, aby ten błąd minimalizować. Robi to iteracyjnie, tysiące, miliony razy, za każdym razem nieznacznie korygując parametry modelu. To właśnie ten proces minimalizacji błędu na przykładach jest uczeniem się. Model nie „rozumie”, czym jest kot; uczy się skomplikowanej kombinacji matematycznych cech pikseli (kontury, tekstury, kształty), które statystycznie najsilniej korelują z etykietą „kot” w dostarczonym zbiorze danych.
Kluczowe jest rozróżnienie na uczenie nadzorowane i nienadzorowane. W uczeniu nadzorowanym, na którym działa większość aplikacji, które znamy, każdej próbce danych towarzyszy „odpowiedź” lub etykieta (to jest zdjęcie psa, to transakcja jest fraudem, użytkownikowi spodobał się ten film). Algorytm uczy się mapowania: dane wejściowe -> poprawna etykieta. W uczeniu nienadzorowanym dane nie mają etykiet. Zadaniem algorytmu jest odkrycie wewnętrznej struktury danych, np. pogrupowanie podobnych użytkowników (klastrowanie) lub znalezienie niezwykłych wzorców (wykrywanie anomalii). Gdy platforma streamingowa grupuje cię w „miłośników skandynawskich kryminałów”, mogło się to stać dzięki algorytmowi nienadzorowanemu, który znalazł podobieństwa między tobą a innymi widzami.
Największym wyzwaniem i tajemnicą nie jest sam mechanizm uczenia, ale osiągnięcie generalizacji. Chodzi o to, by model, który nauczył się na danych treningowych, potrafił poprawnie działać na nowych, nigdy wcześniej nie widzianych danych. To podobne do nauki do egzaminu: jeśli uczysz się na pamięć odpowiedzi do konkretnych zadań (przeuczenie), na prawdziwym teście, z nowymi pytaniami, polegniesz. Algorytm musi znaleźć prawdziwy, ogólny wzorzec, a nie zapamiętać szum i szczegóły konkretnego zbioru treningowego. Walka z przeuczeniem i osiągnięcie dobrej generalizacji to sztuka, w której kluczową rolę odgrywa jakość i reprezentatywność naszych danych. Jeśli dane treningowe są stronnicze (bias), model nauczy się i wzmocni tę stronniczość. Jeśli system rekrutacyjny jest trenowany na historycznych danych o zatrudnieniu firmy, która preferowała mężczyzn, nauczy się, że „bycie mężczyzną” jest cechą predykcyjną sukcesu, utrwalając dyskryminację. Algorytm nie ma sumienia; uczy się jedynie korelacji obecnych w danych, które mu dostarczymy. Ostatecznie, uczenie maszynowe na naszych danych to proces tworzenia coraz dokładniejszych statystycznych luster naszych zbiorowych zachowań, preferencji i uprzedzeń. Algorytm nie snuje teorii, nie rozumie przyczyn – jedynie odkrywa korelacje. To, czy użyjemy tej wiedzy, by przewidywać burze, leczyć choroby, personalizować edukację, czy też by manipulować zachowaniami i utrwalać niesprawiedliwość, zależy już wyłącznie od ludzkich decyzji stojących za przygotowaniem danych, sformułowaniem zadania i użyciem gotowego modelu. Sam proces uczenia, choć matematycznie elegancki, jest bezduszny – to tylko optymalizacja liczb. Sens i konsekwencje nadajemy mu my, ludzie, których dane ten proces zasilają.
