Podział modeli uczenia maszynowego wraz z przykładami zastosowania
Uczeniem maszynowym (ang. machine learning – ML) nazywamy dziedzinę nauki programowania komputerowego w sposób umożliwiający im uczenie się z danych. Jest to obszar sztucznej inteligencji, który w ostatnich latach zyskał dużą popularność. Żyjemy w czasach, w których co roku pojawia się ogromna ilość nowych danych. Od sposobu ich wykorzystania zależy zwiększenie dochodów firm, zachowanie konkurencyjności na rynku, optymalne dopasowanie katalogu usług do oczekiwań klientów czy nawet poprawa jakości życia społeczeństwa. Poprawne analizowanie zależności występujących w danych stało się istotnym elementem życia gospodarczego – i tutaj na scenę wchodzi uczenie maszynowe.
Istnieje wiele typów i wiele sposobów podziału modeli uczenia maszynowego, np.:
1. Uczenie nadzorowane (ang. supervised learning) – sposób uczenia, w którym zbiór danych treningowych, na których uczy się algorytm, zawiera dołączone rozwiązanie problemu, tzw. etykiety albo klasy. Dwa główne obszary wykorzystujące uczenie nadzorowane to rozwiązywanie problemu regresji (przewidywanie wartości) i problem klasyfikacji (przewidywanie klas). Jako przykład regresji można wskazać prognozowanie wartości samochodu na podstawie jego modelu, marki, roku produkcji, przebiegu, pojemności silnika, rodzaju paliwa itd. Przykładem modelu klasyfikacji jest filtr spamu, czyli problem zakwalifikowania wiadomości jako spam czy nie.
Przykłady algorytmów uczenia nadzorowanego rozwiązujący problem regresji:
- regresja liniowa
- regresja wielomianowa
- drzewo regresyjne
- sieci neuronowe
Przykłady algorytmów uczenia nadzorowanego rozwiązujący problem klasyfikacji:
- drzewa decyzyjne
- metoda k-najbliższych sąsiadów
- maszyny wektorów nośnych (SVM – support vector machine)
- naiwny klasyfikator Bayesa
- las losowy
- regresja logistyczna
- sieci neuronowe
2. Uczenie nienadzorowane (ang. unsupervised learning) – sposób uczenia modelu, w którym dane uczące są nieoznakowane tzn. nie posiadają etykiet. Mówiąc potocznie, posiadamy surowe dane które wrzucamy do modelu i zostawiamy algorytmowi całą pracę wiązaną ze znalezieniem powiązań między danymi (tzw. uczenie bez nauczyciela). Należą do nich m. in. algorytmy analizy skupień (ang. clustering) – inaczej klasteryzacja albo grupowanie. Przykładem problemu analizy skupień jest określenie grup podobnych użytkowników, robiących zakupy w sklepie internetowym albo wchodzących na serwis informacyjny. Innym przykładem algorytmu wykorzystującego uczenie nienadzorowane są różnego rodzaju algorytmy wizualizujące dane, np. posiadając mnóstwo nieoznakowanych danych możemy je wyświetlić w postaci dwu lub trzy wymiarowej w poszukiwaniu zależności między nimi. Uczenie nadzorowane i uczenie nienadzorowane są jednymi z głównych sposobów uczenia wykorzystywanych w uczeniu maszynowym.
Kilka najważniejszych algorytmów z podziałem na problemy, którymi się zajmują:
Analiza skupień:
- metoda k-średnich
- hierarchiczna analiza skupień
- DBSCAN ( density-based spatial clustering of applications with noise)
Wykrywanie anomalii i nowości:
- jednoklasowa maszyna wektorów nośnych
Wizualizacja i redukcja wymiarowości:
- analiza głównych składowych (PCA – ang. principal component analysis)
- jądrowa analiza głównych składowych
3. Uczenie przez wzmacnianie (ang. RL - reinforcement learning) – jeden z trzech głównych nurtów uczenia maszynowego, którego zadaniem jest interakcja ze środowiskiem na podstawie zebranych informacji. W przeciwieństwie do wymienionych wcześniej rodzajów, w uczeniu przez wzmacnianie nie przygotowuje się zestawu danych uczących, tylko środowisko, z którego model będzie zbierał dane automatycznie. Jego celem jest zmaksymalizowanie zwracanej przez nie nagrody. Środowisko może być zależne od celu nauki. W przypadku uczenia programu grającego w gry będzie to gra, wraz z jej zasadami, lub prawdziwy świat, w przypadku programu uczącego się sterować łazikiem.
W uczeniu przez wzmacnianie wyróżnia się 3 główne elementy:
- Środowisko – to zadanie lub symulacja, z którym algorytm (w tym kontekście nazywany również agentem albo graczem) wchodzi w interakcję. Celem uczenia przez wzmacnianie jest maksymalizacja nagrody zwracanej przez środowisko, czyli nauczenie agenta osiągania w nim najwyższego wyniku, np. wygrania największej ilości gier albo osiągniecia największej stopy zwrotu (jeśli środowisko jest symulacją giełdy).
- Agent – to element, który wchodzi w interakcję ze środowiskiem. Zadaniem agenta jest maksymalizowanie nagrody, czyli nauczenie się najkorzystniejszego oddziaływania ze środowiskiem. Za zachowanie agenta odpowiada tzw. polityka, czyli funkcja, zwracająca akcję. Jako politykę najczęściej stosuje się sieć neuronową.
- Bufor – magazyn danych przechowujący informacje zebrane przez agenta w trakcie uczenia, które są następnie wykorzystane do jego wytrenowania.
4. Uczenie półnadzorowane (ang. semisupervised learning) – algorytmy działające na częściowo oznakowanych danych. Oznaczanie danych etykietami jest zazwyczaj bardzo czasochłonne i kosztowne. Dane często składają się w większości z nieoznakowanych obserwacji i tylko niewielkiej ilości oznakowanych, dlatego powstały algorytmy radzące sobie z tym problemem. Większość algorytmów półnadzorowanych stanowi kombinację algorytmów uczenia nadzorowanego i nienadzorowanego zaimplementowanych do sieci neuronowych. Przykładem takiego algorytmu może być system przechowywania zdjęć. Załóżmy, że wysyłamy do chmury dziesiątki zdjęć rodzinnych i podpisujemy parę z nich imionami bliskich. Następnie algorytm sam rozpoznaje oznaczone osoby na pozostałych fotografiach i przypisuje im odpowiednie imiona.
5. Uczenie wsadowe i przyrostowe – jest to inne kryterium klasyfikacji systemów uczenia maszynowego, które bierze pod uwagę strumień nadsyłanych danych. W procesie uczenia przyrostowego (ang. online learning) system jest trenowany na bieżąco poprzez sekwencyjne dostarczanie danych. Mogą być one dostarczane pojedynczo albo przyjmować postać małych grup. W mechanizmie uczenia wsadowego (ang. batch learning) system nie jest w stanie trenować przyrostowo – do jego nauki muszą wystarczać wszystkie dostępne dane. System najpierw jest uczony, a następnie zostaje wdrożony w procesie produkcyjnym i nie jest już więcej trenowany. W przypadku pojawienia się danych należy wyłączyć system, ponownie wyuczyć model wykorzystując wszystkie dostępne dane i ponownie wdrożyć system na produkcji.
Autor: Sebastian Miśtak
- Ostatnia modyfikacja:
- 31.03.2023 14:31 Piotr Herman
- Pierwsza publikacja:
- 22.07.2022 11:08 Izabela Nalazek