Wiemy już, że maszyna liczy, kiedy wykonuje jakieś zadanie. Podobnie jest, gdy się uczy – także liczy. Podstawą uczenia maszynowego jest statystyka.
Statystyka to wydobywanie wiedzy z danych, które maszyna ma lub które jej dajemy. Najpierw przedstawimy na czym polegają różne rodzaje uczenia maszynowego, a potem przejdziemy do statystyki.
Uczenie nadzorowane
Odbywa się pod kontrolą człowieka. Wyjaśnimy to na przykładzie wspomnianego już sklepu odzieżowego.
Chcemy nauczyć maszynę, żeby rozpoznawała koszulki, bo nie chce nam się za każdym razem przypisywać produktu do kategorii. Zaczynamy od treningu. Pokazujemy jej bardzo dużo zdjęć różnych koszulek, które nazywa się danymi wejściowymi. Każde zdjęcie ma etykietkę „koszulka”. Maszyna „ogląda” coraz więcej zdjęć i tworzy sobie zbiór cech charakterystycznych dla koszulek (np. krótki rękaw, dekolt, dół koszulki).
Po treningu przychodzi czas na test. Aby sprawdzić, czy maszyna już „wie” jak wygląda koszulka, pokażemy jej obrazy różnej odzieży, w tym koszulek. Wszystkie zdjęcia ubrań są bez etykietek i inne, niż te, które daliśmy maszynie do nauki. Zadaniem maszyny jest wskazać koszulkę. Komputer porównuje obrazy, które widzi z tym, czego nauczył się podczas treningu. Im więcej cech podobnych znajdzie, tym pewniej określa, że coś jest koszulką. Jeśli za każdym razem dobrze rozpoznaje koszulkę, możemy powiedzieć, że uczenie maszyny było udane.
Uczenie nienadzorowane
Różni się od uczenia nadzorowanego tym, że:
- przebiega bez udziału człowieka
- nie dajemy maszynie etykiet podczas treningu.
Żeby wyjaśnić ten typ uczenia, znów użyjemy przykładu ze sklepem odzieżowym. Załóżmy, że mamy na sprzedaż 1000 sztuk różnej odzieży, którą w hurtowni kupiliśmy „w ciemno”, w bardzo korzystnej cenie. Nie wiemy właściwie co tam jest, musielibyśmy każde ubranie przejrzeć, ale nie mamy na to czasu. Dostaliśmy jednak zdjęcia tych ubrań. Wykorzystamy je do nauki maszyny.
Maszyna „przegląda” zdjęcia i szuka na nich cech charakterystycznych. Następnie tworzy grupy ubrań wyglądających do siebie podobnie. Nie potrafi nazwać tych grup, czyli nie nada im etykiet typu „spodnie”, „koszule”, czy „spódnice”. Jedyne, co potrafi zrobić, to je pogrupować w zbiory, np. tak:
W uczeniu nienadzorowanym maszyna nie dostaje informacji, czy wykonała dobrze zadanie, bo często człowiek sam tego nie wie. Tutaj wytłumaczyliśmy to na bardzo prostym przykładzie, chcąc pokazać różnicę między uczeniem maszynowym z nauczycielem i bez. Uczenia nienadzorowanego używa się raczej do sytuacji, których człowiek nie umie przewidzieć. Np. maszyna w uczeniu nienadzorowanym może przewidywać cenę mieszkań w Warszawie, albo akcji na giełdzie.
Uczenie ze wzmacnianiem czyli metoda kija i marchewki
Jest to najtrudniejszy, ale i najbardziej obiecujący dział uczenia maszynowego. Dąży do uczenia się w taki sam sposób, w jaki robi to człowiek. Maszyna dostaje gotowy zestaw reguł i stwierdzeń, według których ma działać. Rozwiązuje problem i obserwuje skutki swojego działania. Jeśli rozwiąże problem prawidłowo, dostaje „nagrodę”, np. punkt. Jeśli źle – „karę”, czyli 0 punktów. Komputer rozwiązuje problemy, za każdym razem dostając nagrodę za prawidłowe rozwiązanie i karę za złe.
Można to porównać do nauki gry w koszykówkę. Znamy zasady gry, wiemy, co jest jej celem. To, w jaki sposób zdobędziemy punkt, zależy od decyzji drużyny. Możemy rzucać do kosza sami, albo podać piłkę koledze. Decyzje podejmujecie na bieżąco. Po skończonej grze można przeanalizować swoje błędy i mocne strony, ale przez całą grę celem jest zdobycie jak największej liczby punktów. Tak samo maszyna uczy się ze wzmocnieniem.
Ciekawostka
Do uczenia maszynowego często wykorzystuje się dane MNIST. Jest to baza zdjęć pokazywanych maszynie podczas uczenia. Są w niej np. zdjęcia pisma odręcznego (każdy człowiek pisze tę samą cyfrę czy literę całkiem inaczej!).
Są nawet… zdjęcia odzieży wykorzystywane właśnie do nauki programów obsługujących sklepy internetowe.
Zdjęcia pochodzą z bazy MNIST: http://yann.lecun.com/exdb/mnist/