Rodzaje ML i najpopularniejsze algorytmy
Uczenie maszynowe pomaga rozwiązywać złożone problemy w tak różnych dziedzinach, jak medycyna, bankowość i ubezpieczenia, przemysł czy telekomunikacja. Rzecz jasna, ze względu na mnogość przypadków, nie da się zastosować uniwersalnego podejścia do wykorzystania ML, równie efektywnego dla każdego zagadnienia. Jakie zatem mamy do wyboru narzędzia?
Trzeba zaznaczyć, że metody wykorzystywane w machine learningu są nierzadko starsze nie tylko od tej technologii, ale też od samych komputerów. Na przykład, pierwszy model regresji liniowej został opublikowany już w 1805 roku przez francuskiego matematyka Adrien-Marie Legendre’a. Z kolei maszyna analityczna Charlesa Babbage’a, znana jako pierwszy programowalny komputer, powstała także w XIX wieku, trzy dekady później. Z czasem nurt ML wytworzył własne metody, ale pozostają one mocno osadzone w dorobku matematyki i statystyki. Algorytmy uczenia maszynowego możemy podzielić na 3 podstawowe typy: uczenie nadzorowane, nienadzorowane i uczenie ze wzmocnieniem.
Uczenie nadzorowane
Najpowszechniejszym rodzajem machine learningu jest uczenie nadzorowane. Widać to w statystykach wykorzystania algorytmów, w których zazwyczaj próżno szukać innych rodzajów ML. Uczenie nadzorowane polega na przygotowaniu odpowiednio opisanych danych wzorcowych, używanych do trenowania wybranego modelu. W ten sposób algorytm uczy się rozpoznawać cechy obiektów, co pozwala mu odpowiednio klasyfikować dane, z którymi się zetknie w przyszłości w środowisku produkcyjnym (innym niż środowisko uczące).
Regresja liniowa
Jednym z najprostszych algorytmów uczenia nadzorowanego jest regresja liniowa. U podstaw tego podejścia leży założenie, że związek pomiędzy danym zjawiskiem (cechą), a zmiennymi, które je opisują, jest liniowy. Wada regresji liniowej to podatność na wartości odstające, które mają duży wpływ na dopasowanie modelu — dlatego przed zastosowaniem metody powinniśmy oczyścić z tego typu wartości dane treningowe. Równie istotne jest, by odpowiednio dobrać metodę szacowania współczynników regresji, stosownie do charakterystyk procesu generującego dane.
Regresja logistyczna
To metoda wykorzystywana w szczególności do zagadnień klasyfikacyjnych, w ramach której dopasowujemy funkcję logistyczną do danych treningowych. Wytrenowany model po dodatkowych przekształceniach przypisuje danym wejściowym prawdopodobieństwo przynależności do jednej z dwóch klas.
Regresja kwantylowa
Regresja kwantylowa umożliwia modelowanie relacji pomiędzy zmiennymi niezależnymi i kwantylami zmiennej przewidywanej. Jest przydatna, gdy chcemy zrozumieć, które cechy są istotne w przewidywaniu celu w poszczególnych kwantylach. Jej zaletą w porównaniu do zwykłej regresji liniowej jest większa odporność na wartości odstające oraz brak założeń odnośnie procesu generującego dane.
Naiwny klasyfikator Bayesa i sieć bayesowska
Jest to metoda klasyfikacji, która bazuje na teorii matematyka, Thomasa Bayesa. Głównym założeniem jest niezależność zmiennych objaśniających, co w rzeczywistych warunkach stanowi rzadko spotykaną sytuację. Niemniej, dość prosty algorytm zaskakująco często sprawdza się lepiej niż skomplikowane metody klasyfikacji danych. Z kolei sieć bayesowska wykorzystuje rachunek prawdopodobieństwa do przedstawiania zależności pomiędzy zmiennymi, takimi jak np. zdarzenia czy informacje.
Drzewa decyzyjne
Drzewo decyzyjne jest obiektem składającym się z węzłów oraz krawędzi. Węzły można utożsamiać z pytaniami dotyczącymi cech obiektu, który nas interesuje, a krawędzie grafu odpowiadają, czy dany element ma daną cechę. W ten sposób drzewo decyzyjne rozgałęzia się, a ostatni element danej gałęzi prowadzi do „liścia”, czyli węzła, który reprezentuje decyzję. Zaletą drzew decyzyjnych jest łatwa interpretacja wizualna, dlatego metoda sprawdza się w sytuacjach, kiedy musimy wytłumaczyć powody podjętej decyzji (np. o przyznaniu kredytu albo ustaleniu wysokości składki ubezpieczeniowej) bez potrzeby sięgania do zaawansowanych metod interpretowalności modeli ML.
Losowy las decyzyjny
Idea lasu losowego opiera się na stworzeniu z góry zdefiniowanej liczby drzew, które są budowane na podstawie konkretnej liczby losowych obserwacji ze zbioru treningowego, opisanych zadaną liczbą zmiennych objaśniających. Następnie stworzone w ten sposób drzewa decyzyjne "głosują", w wyniku czego powstaje uśrednione drzewo decyzyjne. Metoda losowego lasu decyzyjnego jest sposobem na uniknięcie nadmiernego dopasowania danych do zestawu treningowego — co stanowi częstą przypadłość mocno rozbudowanych pojedynczych drzew decyzyjnych.
Wzmocnienie gradientowe
Przy okazji drzew decyzyjnych, warto przyjrzeć się też wzmocnieniu gradientowemu (Gradient Boosting). Zakłada ono budowanie drzew decyzyjnych, z których każde kolejne w iteracyjnym procesie staje się doskonalsze od poprzedniego. Ostateczny model agreguje całą serię drzew.
Sieci neuronowe
Sieć neuronowa, podobnie jak drzewo decyzyjne, jest grafem skierowanym, który w zamyśle ma przypominać działaniem ludzki mózg. Węzły grafu mają dowolną liczbę wejść i wyjść oraz są pogrupowane w warstwy w taki sposób, że każdy jest połączony z każdym węzłem warstwy poprzedzającej. Wadą sieci neuronowych jest trudność w przedstawieniu dokładnej ścieżki prowadzącej do uzyskania wyniku końcowego. Sieci neuronowe wymagają również dużej mocy obliczeniowej, a ich trenowanie trwa długo.
SVM – maszyny wektorów nośnych
Innym modelem uczenia nadzorowanego jest Support Vector Machine – abstrakcyjny koncept maszyny-klasyfikatora. Umożliwia przeprowadzenie regresji, klasyfikacji oraz może posłużyć do wykrywania elementów odstających. SVM jest używany również do analizy obrazów, dzięki możliwości wyznaczenia z jego pomocą hiperpłaszczyzny oddzielającej obiekty, które należą do różnych klas.
Uczenie nadzorowane częściowo
Istnieje także podejście nazywane uczeniem maszynowym nadzorowanym częściowo. Stosuje się je, kiedy mamy do czynienia z dużą ilością informacji, których oznaczenie byłoby kosztowne i wymagało zbyt wiele czasu. Zamiast tego, etykietujemy jedynie część danych, na podstawie których powstaje model do oznaczania reszty zbioru. Takie podejście wykorzystuje się m.in. do rozpoznawania mowy, odnajdowania drogi na podstawie danych GPS, a także do klasyfikacji dużych zbiorów danych np. w internecie. Choć częściowo nadzorowane uczenie maszynowe bywa skuteczne i może ograniczyć koszty oraz czas, warto mieć na uwadze, że podanie na wejściu nieodpowiednich, np. obciążonych danych zazwyczaj doprowadzi do uzyskania nieprawidłowych wyników. Dzieje się tak wówczas, kiedy próbka, na podstawie której powstał model treningowy, nie jest wystarczająco reprezentatywna i nie zawiera wszystkich możliwych charakterystyk opisywanych elementów. W uczeniu maszynowym częściowo nadzorowanym stosuje się wcześniej wymienione algorytmy.
Uczenie nienadzorowane
Algorytmy uczenia nienadzorowanego są przydatne, kiedy chcemy dowiedzieć się więcej na temat struktur występujących w danych. W przeciwieństwie do uczenia nadzorowanego, gdzie w pewnym sensie dążymy do powielenia wyuczonego przez nasz model schematu, uczenie nienadzorowane pomaga odkryć wzorce w analizowanych obiektach. Te techniki są wykorzystywane m.in. do segmentowania grup klientów i identyfikowania ich cech, a także w diagnozowaniu chorób (m.in. nowotworowych) na wczesnym etapie rozwoju.
Analiza składowych głównych
Principal Components Analysis pomaga w niwelowaniu problemu wielowymiarowości. Metoda polega na obliczeniu nowych zmiennych, które będą kombinacją liniową zmiennych pierwotnych, a następnie na wyłonieniu zmiennych pierwotnych, które mają największe znaczenie dla tzw. składowych głównych. Jako kryterium oceny bierzemy pod uwagę analizę wariancji poszczególnych składowych głównych, odrzucając te, które mają najmniejsze wartości, przez co można je interpretować jako szum.
Analiza skupień
Reprezentantem tej klasy algorytmów jest metoda tzw. centroidów, wykorzystywana do grupowania elementów. Na początku ustalamy liczbę grup, do których przypisywane będą obiekty. W każdej z grup wybieramy punkty startowe, czyli centroidy i przypisujemy każdemu elementowi zbioru najbliższy centroid. Następnie wyliczamy średnią, bądź medianę pomiędzy punktami w poszczególnych grupach, która staje się nowym centroidem. Proces powtarzamy do momentu, kiedy obiekty przestaną zmieniać przynależność do grup. Analiza skupień niesie kilka wad: bardzo duże znaczenie ma wybór punktów startowych, a metoda jest wrażliwa na wartości odstające, przez co algorytm nie we wszystkich przypadkach będzie działał prawidłowo.
Uczenie ze wzmocnieniem
Reinforcement Learning ze wszystkich istniejących technik najbardziej przypomina to, w jaki sposób uczą się ludzie, ponieważ opiera się na metodzie prób i błędów. W algorytmach tego typu wykorzystuje się mechanizm nagrody i kary, dzięki czemu kolejne podejścia do zadania są bardziej precyzyjne. W przeciwieństwie do uczenia nadzorowanego (por. w szczególności opis wzmocnienia gradientowego) i nienadzorowanego — zadaniem uczenia ze wzmocnieniem nie jest opisywanie istniejących zbiorów gotowych elementów, ale przygotowanie środowiska, w którym będą poruszali się niezależni “agenci”. Chodzi o podprogramy skoncentrowane na zbieraniu informacji o środowisku. Na podstawie obserwacji “agent” wybiera następnie najlepszą akcję (lub sekwencję akcji), jaką może w danej chwili wykonać. Uczenie ze wzmacnianiem wykorzystuje się m.in. do trenowania autonomicznych pojazdów, przetwarzania języka naturalnego, a także w marketingu (np. w silnikach rekomendacji serwisów VOD czy e-sklepów) oraz na rynkach finansowych.
Q-Learning
Celem Q-learningu jest oszacowanie akcji, która będzie optymalna w danym stanie. Uczenie polega na sprawdzaniu działań, które przyniosą największy zysk. Z tego powodu algorytm musi wybierać pomiędzy eksplorowaniem środowiska (np. wykonywaniem losowych ruchów), a wykonywaniem optymalnych akcji. Algorytm Q-learningu jest stosowany np. w systemach sterujących autonomicznymi samochodami m.in. do przeprowadzania manewrów zmiany pasa.
Metody Monte Carlo
W uczeniu maszynowym ze wzmacnianiem do opracowania optymalnej strategii można zastosować też metody Monte Carlo, które polegają na uczeniu “agenta” poprzez próbkowanie nagród ze środowiska i wykorzystanie średnich kroczących.
Podsumowując, podejście i odpowiedni rodzaj algorytmu ML warto wybrać z uwzględnieniem typu danych, jakimi dysponujemy oraz celu, jaki ma zrealizować nasza analiza.