Okazuje się, że nie zawsze człowiek musi nadzorować algorytmy uczące się 🙂 W tym wpisie zwięźle opiszę uczenie nadzorowane, nienadzorowane, półnadzorowane oraz uczenie przez wzmacnianie.
Uczenie nadzorowane (supervised learning)
Człowiek tutaj w pełni nadzoruje uczenie modelu – wszystkie przykłady dostarczane modelowi są oznaczone – posiadają etykiety (labels):
komentarz | pozytywny/negatywny (etykieta) |
---|---|
To jest świetny produkt, każdy powinien kupić co najmniej jeden egzemplarz! | pozytywny |
Nie wiem skąd te wszystkie dobre opinie, jak dla mnie to bardzo słabe rozwiązanie… | negatywny |
Świetny produkt!!! | pozytywny |
… | … |
Gdzie wykorzystywane?
Najczęściej wykorzystywane przy klasyfikacji (np. spam czy nie) oraz przy regresji (przewidywanie konkretnej wartości).
Przykładowe algorytmy
– metoda k-najbliższych sąsiadów (k-nearest neighbors)
– regresja liniowa (liniear regression)
– regresja logistyczna (logistic regression)
– maszyny wektorów nośnych (support vector machines)
– drzewa decyzyjne i losowe lasy (decision trees and random forests)
– sieci neuronowe (neural networks)
Uczenie nienadzorowane (unsupervised learning)
Tutaj człowiek nie nadzoruje nauki modelu – robi się niebezpiecznie 😉 Dane dostarczane modelowi nie są oznaczone etykietami.
komentarz | wiek użytkownika | godzina dodania |
---|---|---|
To jest świetny produkt, każdy powinien kupić co najmniej jeden egzemplarz! | 35 | 17:23 |
Nie wiem skąd te wszystkie dobre opinie, jak dla mnie to bardzo słabe rozwiązanie… | 17 | 23:10 |
Świetny produkt!!! | 28 | 18:03 |
… | … | … |
Gdzie najczęściej wykorzystywane?
Analiza skupień
Model przechodząc przez takie dane może przykładowo dokonać analizy skupień (clustering) – zauważyć przykładowo, że ludzie w wieku powyżej 25 lat wyrażają się dobrze o produkcie. Dzięki takiej wiedzy możliwe jest stworzenie odpowiedniej kampanii reklamowej nakierowanej właśnie na osoby starsze niż 25 lat.
Wizualizacja
Tutaj na pierwszy plan wychodzą mapy cieplne – dzięki nim, ludzkie oko jest w stanie zauważyć pewne wzorce.
* Nie do końca rozumiem, czemu zwykła wizualizacja jest przypisywana do technik uczenia. No ale jest jak jest 😉
Redukcja wymiarowości
Czasami dane mają bardzo dużo wymiarów. Odpowiednie techniki uczenia nienadzorowanego (jak na przykład t-SNE) mogą posłużyć do redukcji wymiarowości.
* Nie do końca rozumiem, czemu redukcja wymiarów nie jest klasyfikowana jako technika przygotowania danych. No ale… 😉
Uczenie reguł asocjacyjnych
Algorytm może wykryć powiązania pomiędzy danymi. Przykładowo, że jeśli ktoś kupuje chleb i masło to przy okazji kupuje też żółty ser 🙂
Uczenie półnadzorowane (semisupervised learning)
Jest to sytuacja, w której tylko część przykładów jest oznaczona. Najczęściej algorytm tworzy na podstawie oznaczonych danych prosty model, który następnie oznacza dane nieoznaczone. Po czym następuje nauka całego modelu.
Przykładowo dyskowi Google wystarczy, że oznaczysz osobę raz na zdjęciu – na reszcie zdjęć oznaczy tą osobę bez Twojej pomocy 🙂
Techniki używane w uczeniu nienadzorowanym są zawsze miksem technik uczenia nadzorowanego i nienadzorowanego.
Uczenie przez wzmacnianie (reinforcement learning)
Jest to technika zapożyczona z psychologii behawiorystycznej polegająca na wzmacnianiu lub też karaniu za określone zachowania (w przypadku algorytmu wzmacniania lub karania za konkretne kroki algorytmu).
Najprościej rzecz ujmując chodzi o to, że algorytm ma pełną dowolność wykonywania operacji, ale za pewne rzeczy będzie on karany a za inne nagradzany. Przykładowo załóżmy że mamy robota sprzątającego – każde zderzenie ze ścianą powinno być karane a każdy przejazd bez kolizji nagradzany (oczywiście w bardzo dużym uproszczeniu).