Z nauczycielem czy bez? Uczenie maszynowe - część 1 #5
Uczenie się nowych rzeczy, generalizacja zdobytej przez nas wiedzy jest jednym z filarów naszej inteligencji i tego, co powoduje, że jako gatunek jesteśmy wyjątkowi.
Zdobywać wiedzę można na różne sposoby. Ktoś lubi czytać, ktoś lubi patrzeć, ktoś lubi słuchać. Ktoś świetnie sobie radzi samodzielnie, inny natomiast potrzebuje nauczyciela i ciągłego wsparcia. Jednocześnie nie jest tak, że jedna metoda jest zdecydowanie lepsza, niż inna. Zazwyczaj różne metody się uzupełniają i prowadzą do tego, że coś w końcu wiemy.
Jeżeli chodzi o sztuczną inteligencję, to już z poprzedniego artykułu wiemy, że AI zdobywa wiedzę za pośrednictwem uczenia maszynowego. Uczenie maszynowe polega na uczeniu się z wzorców z danych, bez podawania reguł przez człowieka.
Uczenie maszynowe nie jest jednolitą dziedziną, tylko dzieli się na dwa typy: uczenie nadzorowane i uczenie nienadzorowane (ang. Supervised & Unsupervised). W uczeniu maszynowy te dwa typy się uzupełniają, ponieważ każdy z nich ma swoje mocne strony i przypadki użycia.
W tym artykule skupimy się na uczeniu nadzorowanym.
Nadzorowane uczenie maszynowe można porównać do nauki z nauczycielem - zawsze jest ktoś, kto nam powie, jak powinno być. A jeżeli popełnimy błąd, to powie nam, jak duży jest nasz błąd i będziemy wiedzieć, w którym kierunku zmierzać, żeby uzyskać lepsze wyniki.
Czym jest ten nauczyciel w przypadku uczenie maszynowego? Jak się domyślacie, nauczycielem są … dane. W przypadku uczenia nadzorowanego dane muszą być otagowane i służą źródłem prawdy czy wartością referencyjną (ang. ground truth). Poniżej przedstawię kilka przykładów, które lepiej zilustrują tę koncepcję.
Nadzorowane uczenie maszynowe z kolei dzieli się na klasyfikację i regresję. Może to brzmieć nieco zbyt matematycznie, ale tak naprawdę jest bardzo proste.
Klasyfikacja polega na tym, że funkcja matematyczna, która powstaje (czyli nasz model), jako wynik działania zwraca nam jakąś kategorię, czyli jakąś jedną wartość z kilku możliwych.
Regresja natomiast polega na powstaniu funkcji matematycznej (czyli modelu), którego wynikiem działania jest jakaś dowolna liczba.
Popatrzmy na przykład klasyfikacji:
Instytucja bankowa udziela pożyczek. Udzieliła ich do tej pory 200 tys. Każdy pożyczkobiorca miał jakieś cechy - gdzie mieszka, stan cywilny, wykształcenie, zarobki itd. Jak się po latach okazało, ok. 30% z nich bankowi pożyczki nie zwróciło, a pozostałe 70% zwróciło. Ta kolumna w naszych danych, która pokazuje, czy konkretny klient zwrócił pożyczkę, jest właśnie źródłem prawdy czy wartością referencyjną (ang. ground truth).
Uczenie maszynowe w tym przypadku polegałoby na wytrenowaniu modelu na podstawie istniejących danych, czyli ustaleniu zależności matematycznej pomiędzy cechami pożyczkobiorców oraz statusem pożyczki. Możliwe są dwa statusy: klient zwróci kasę lub nie. Zatem jest to klasyfikacja, ponieważ oczekiwany wynik funkcji ogranicza się tylko do dwóch możliwych wartości.
Warto podkreślić, że powstała funkcja ma działać w taki sposób, że jeżeli podamy dane jakiegoś klienta z naszych danych, to funkcja zwróci taki status, jaki faktycznie był. Innymi słowy, funkcja powinna działać bezbłędnie. W rzeczywistości jednak jest to niemal niemożliwe - nie istnieją modele, które nigdy się nie mylą. Kluczowe jest jednak, aby stworzony model popełniał jak najmniej błędów.
Jak się domyślacie, modele się tworzy nie po to, żeby dobrze odgadywały statusy pożyczek, które i tak znamy, tylko dla nowych klientów. Jak przyjdzie do nas nowy klient o określonych cechach, to te cechy przekażemy do modelu klasyfikacyjnego, a on nam zwróci wynik, czy ten pożyczkobiorca w przyszłości potencjalnie nam ją odda.
Popatrzmy teraz na przykład regresji:
Agencja nieruchomości tworzy platformę, która pomoże potencjalnym klientom wyceniać, ile ich nieruchomość kosztuje. Agencja posiada dane o 100 tys. mieszkań z danego miasta. Te dane zawierają informację o cechach nieruchomości (powierzchnia, liczba pokoi, stan, dzielnica itd) oraz cenach zakupu tej nieruchomości.
Uczenie maszynowe polegałoby na wytrenowaniu modelu w oparciu o istniejące dane firmy i ustaleniu zależności matematycznej pomiędzy cechami nieruchomości oraz jej ceną. Kolumna z ceną w naszych danych byłaby czymś, co chcemy przewidywać.
Jak możemy sobie wyobrazić, liczba możliwych cen nieruchomości jest nieskończona, bo mieszkanie może kosztować na przykład 100 000 zł, 101523.67 zł, 513234.98 zł itd. Oczekiwany wynik nie ogranicza się jakimś zestawem możliwych wartości, tylko może być dowolną liczbą (no prawie dowolną, chyba ciężko sobie wyobrazić mieszkanie z ceną ujemną :D).
Warto też podkreślić, że funkcja, która powstaje, ma działać w taki sposób, że jeżeli przekażemy cechy jakiegoś losowego mieszkania z naszych danych, to funkcja zwróci taką cenę, ile mieszkanie faktycznie kosztowało. Jak już wiecie, doskonałe modele nie istnieją, a więc ma powstać taki model, który myli się jak najmniej (czyli jak cena mieszkania faktycznie jest 500 tys, to dobrze, jak model powie 499.5 tys, ale źle jak powie 200 tys.)
Podsumowując:
- Uczenie maszynowe dzieli się na nadzorowane i nienadzorowane w zależności, czy mamy “nauczyciela” w postaci wartości referencyjnych.
- Uczenie nadzorowane dzieli się na klasyfikację oraz regresję w zależności, czy wynikiem działania modelu jest kategoria czy liczba
- Jak mawiał brytyjski statystyk John Box: “Wszystkie modele są błędne, ale niektóre są pożyteczne”. Zatem celem uczenia nadzorowanego jest stworzenie takiego modelu, który popełnia jak najmniej błędów.
W kolejnym wpisie omówimy uczenie nienadzorowane oraz jego potencjalne zastosowania.
Ros Apostol

Komentarze