Typy uczenia maszynowego – musisz je znać!

typy_uczenia_zajawka
Machine learning Strefa studenta
2022-04-23

Słowem wstępu spróbujmy sobie wytłumaczyć, czym jest uczenie maszynowe. Jest to obszar sztucznej inteligencji, gdzie algorytmy mają za zadanie szukać w danych pewnych wzorców i następnie  uczyć się je rozpoznawać. 

Główna różnica pomiędzy zwykłymi algorytmami a algorytmami uczenia maszynowego jest taka, że w zwykłych algorytmach mamy określone rozumowanie (zasady), które doprowadzi nas do wyniku. Natomiast w uczeniu maszynowym na początku mamy dane i wynik (odpowiedzi), które chcemy uzyskać. Zadaniem algorytmu jest wskazać zasady, dzięki którym uda się osiągnąć pożądane wyniki. Różnicę tę doskonale przedstawia rysunek.

Podział uczenia maszynowego

Jedne z najważniejszych pojęć jakie spotkasz przy uczeniu się dziedziny Data Science, to podział algorytmów. Główny podział zawiera trzy typy uczenia maszynowego

  • Uczenie nadzorowane
  • Uczenie nienadzororwane 
  • Uczenie przez wzmacnianie

Więcej na temat tych typów dowiemy się z dalszej części 👇👇👌👌

Uczenie nadzorowane

Uczenie nadzorowane charakteryzuje się tym, że model ucząc się wie do czego ma dążyć, “zna poprawne odpowiedzi” już na etapie uczenia się. Dostarczając dane do modelu nadzorowanego musimy mu podać zarówno dane wejściowe (czyli wszystkie dane na podstawie których będzie się uczył) oraz dane, które on ma przewidzieć (zmienna celu lub zmienne celu – gdy przewidujemy więcej niż jedną zmienną).

Jeżeli model ma przewidywać cenę używanego samochodu, to dostanie informacje o marce, przebiegu itd. oraz cenę za ile samochód został sprzedany. Uczy się na podstawie wszystkich dostarczonych mu informacji (za wyjątkiem samej ceny). W trakcie uczenia model “szuka” zależności pomiędzy danymi wejściowymi (przebieg, marka, rok produkcji itd.) a ceną, za ile został sprzedany. Jego zadaniem jest znaleźć uniwersalny zbiór reguł (wag), dzięki którym będzie w stanie  skutecznie przewidywać cenę również dla samochodów, których wcześniej nie “widział”.

Regresja służy do przewidywania zmiennych ciągłych, czyli takich, które mogą przyjmować wiele różnych wartości liczbowych – będzie to np. przewidywanie wzrostu dziecka na podstawie wzrostu rodziców, przewidywanie cen mieszkań na podstawie metrów kwadratowych, liczby pokoi, okolicy itp. 

Z kolei klasyfikacja służy do przewidywania zmiennych, które są dyskretne, czyli przyjmują ograniczoną liczbę wartości – będzie to np. przewidywanie płci na podstawie zdjęcia, przewidywanie czy osoba cierpi na jakąś chorobę w oparciu o syndromy albo przewidywanie typu irysa (Versicolor, Setosa, Virginica) na podstawie odpowiednich jego parametrów.

UWAGA!

Wyróżnia się dwa typy klasyfikacji – binarna (gdy rozważamy tylko dwie możliwe klasy – jak na obrazku powyżej) i wieloklasowa (gdzie tych klas może być wiele – jak np. klasyfikowanie irysa, gdzie możliwe klasy to wspomniane wcześniej Versicolor, Setosa, Virginica).

Uczenie nienadzorowane

Drugim typem jest uczenie nienadzorowane. Charakteryzuje się ono tym, że ucząc model nie znamy wartości do których dążymy. W tym przypadku model musi sam przypisać podział np. na podstawie podobieństwa, które zauważy. Klasycznym przykładem uczenia nienadzorowanego jest klasteryzacja, którą doskonale opisuje poniższy przykład:

Po lewej mamy wszystkie dane wymieszane ze sobą (buźki, słońca i chmury). Takie wymieszane dane wchodzą do modelu, który szuka podobieństw. Nie zna poprawnych grup do jakich należy każdy obiekt przypisać, ale widzi, że wszystkie buźki są podobne, tak samo jak chmury czy słońca, więc wszystko co podobne przypisuje do jednej grupy.

Klasteryzacja to jednak nie jedyny (choć najbardziej popularny) typ algorytmu uczenia nienadzorowanego. W tej grupie znajduje się również wykrywanie obserwacji odstających (nadzwyczajnych), analiza głównych składowych (PCA) czy system rekomendacji.

Gdzie się przydają metody uczenia nienadzorowanego?

Tak właściwie to wszędzie 😂😂😂 

Kto nie kocha kart lojalnościowych w sklepach? Wszyscy je kochamy! A te karty kochają dane, które im przekazujemy – przede wszystkim co i jak często kupujemy. Dzięki takim informacjom sklep ma o nas pewną wizję i jesteśmy dla nich taką chmurką. Wtedy aplikacja będzie nam polecała to samo co kupiły inne osoby zakwalifikowane jako “chmurka” zwiększając w ten sposób prawdopodobieństwo, że dany produkt postanowimy kupić.

 Z kolei wykrywanie obserwacji odstających to nic innego jak oddzielanie sytuacji, które są w normie od tych, które się w jakiś sposób wyróżniają. A po co? 

To oczywiście zależy od “działki”, w której algorytm jest stosowany. Netflix czy YouTube wykorzystuje takie algorytmy, aby umilać nam życie poprzez wcześniejsze wykrycie potencjalnych problemów (anomalii) i zapobieganie im. Z kolei w finansach takie algorytmy pomagają zapobiegać praniu brudnych pieniędzy. Czasami również chronią nas przed straceniem oszczędności. Jeżeli bank wykryje na naszym koncie podejrzaną transakcję (np. płatność w dziwnym miejscu lub transakcje w odległych miejscach w zbyt krótkim odstępie czasu) to zadzwoni do nas potwierdzić, że karta nie została skradziona. Oczywiście jest to nic innego jak wykrycie obserwacji odstającej.

Uczenie przez wzmacnianie

Ostatnim typem uczenia maszynowego jest uczenie przez wzmacnianie. W takich algorytmach mamy “agenta”, który podejmuje decyzje (akcje). Podjęte akcje mają swoje skutki na “środowisko” – prowadzą środowisko do określonego stanu. Skutki te mogą być pozytywne lub negatywne. Za skutki pozytywne jest nagradzany, a za negatywne – karany. Celem agenta jest nauczyć się podejmować takie akcje, aby osiągnąć pożądany cel i jednocześnie otrzymać maksymalną nagrodę.

Zwizualizujmy sobie to: 

Mamy samochód, którego celem jest dojechać jak najszybciej z punktu A do punktu B. Samochód może znajdować się w trzech stanach – silnik może być zimny, ciepły lub przegrzany. Czyli samochód jest tu “środowiskiem”. Kierowca (agent) musi tak podejmować decyzje, aby jak najszybciej dojechać do celu i jednocześnie nie doprowadzić do przegrzania samochodu. W uczeniu przez wzmacnianie taki agent “uczy” się metodą prób i błędów poprzez kolejne iteracje modelu. Jeżeli raz spróbuje jechać za szybko i samochód się przegrzeje, w kolejnej “rundzie” będzie już wiedział, że musi inaczej manewrować prędkością.

Na koniec

Podsumowując – mamy trzy główne rodzaje algorytmów uczenia maszynowego. Rozróżniamy uczenie nadzorowane – gdzie model uczy się znając na wejściu również to co ma przewidzieć, uczenie nienadzorowane – gdzie model nie wie co jest poprawne. Sam musi znaleźć podobieństwa w danych oraz uczenie przez wzmacnianie – gdzie mamy agenta, który metodą prób i błędów uczy się jakie ma podejmować decyzję, aby osiągnąć zamierzony cel.

Dziękuję, że tu jesteś! Zostaw po sobie ślad (komentarz) 😉

Daj znać co myślisz i czy wpis jest dla Ciebie przydatny!

Subskrybuj
Powiadom o
guest
2 komentarzy
Najnowsze
Najstarsze Najczęściej oceniane
Zobacz wszystkie komentarze
Mikołaj
Gość
Mikołaj
1 rok temu

Bardzo zrozumiale wytłumaczone, super się czyta!

Pawel
Gość
Pawel
1 rok temu

Bardzo fajny wpis o rodzajach algorytmów. Ciekawy blog, oby tak dalej 🙂