Co to jest uczenie maszynowe?
Stawiając pierwsze kroki w analizie danych oraz data science, prędzej czy później młody adept natrafia na pojęcie uczenie maszynowe, znane także jako ML (z ang. machine learning). Co należy przez to rozumieć? Jakie zastosowanie ma to w tradingu? Na te pytania postaram się odpowiedzieć w tym artykule.
Jeśli jesteś w podobnym wieku, jak ja, czyli masz powyżej 30 lat, to pewnie nie raz słyszałeś futurystyczną opowieść o inteligentnych robotach, które zdobywają władzę nad światem kosztem ludzi. W miarę upowszechnienia digitalizacji, coraz bardziej ta wizja staje się rzeczywista. Czy wizja inteligentnych maszyn musi napawać strachem i wiązać się ze zniewoleniem ludzkości? A może rodzi to nadzieję?
Uczenie maszynowe definicja
Uczenie maszynowe to obszar szeroko rozumianego AI (z ang. artificial intelligence – sztuczna inteligencja), który bierze pod uwagę samouczenie się maszyn. Jaka jest pierwsza myśl, która może pojawić się czytając tę enigmatyczną nazwę? Czy maszyny, które są z natury programowane prze człowieka, są zdolne do nauki? No cóż… ciężko oczekiwać, że pewnego dnia Twoja mikrofalówka zacznie czytać „Pana Tadeusza”, albo uczyć się hiszpańskiego. Natomiast stworzenie algorytmu wewnątrz programu, który zakłada ulepszanie swoich działań jest całkowicie możliwe. Współcześnie – nawet oczywiste. Także machine learning, należy traktować, jako obszar, w którym maszyny na podstawie stale aktualizowanych danych szukają najefektywniejszych rozwiązań.
Możliwe, że nie zdajesz sobie z tego sprawę ale samouczące się systemy działają na wielu obszarach. Podstawowe systemy uczenia maszynowego wykorzystywane są w serwisach streamingowych, jak np. Netflix, Spotify, czy Tidal. Facebook podpowiada CI znajomych, a YouTube prezentuje filmiki, które mogą Cię zainteresować. W jaki sposób je segreguje? Wybiera te najpopularniejsze, najchętniej oglądane? Tak, ale nie robi tego ślepą statystyką, wrzucając wszystkich do jednego worka. Nie miałoby to większego sensu. Zgodzisz się pewnie ze mną, że inne preferencje ma nastolatek interesujący się piłką nożną i muzyką techno, a inne emeryt, pasjonujący się historią oraz słuchający muzyki klasycznej. Dlatego potrzebne jest stworzenie odpowiedniego modelu ML, który te różnice będzie wynajdywał.
Modele uczenia maszynowego
Machine learning posiada cały szereg różnego rodzaju modeli, które tworzy w określonym celu. W jakim? To zależy, co chcesz osiągnąć. YouTube chce jak najlepiej dopasować nam filmy, Facebook znajomych i treści. Czemu? Odpowiedź jest oczywista – dla pieniędzy. Lepsze dopasowanie reklam, pod daną grupę odbiorców. Im lepiej kogoś znasz, tym łatwiej mu coś sprzedasz. A jeśli nic mu nie sprzedaż, to sprzedaż informacje o nim.
Oczywiście w XXI wieku, ponad 3 lata po wprowadzeniu RODO, nikt nie sprzedaje informacji na temat Twojego imienia, nazwiska, nr telefonu, czy adresu. Sprzedaje coś dużo bardziej wartościowego – zanonimizowane dane dot. Twoich preferencji. Co Cię interesuje? W jakie reklamy częściej klikasz? Na jakie treści poświęcasz więcej czasu? Pewnie słyszałeś o filmie The Great Hack (polski tytuł „Hakowanie świata”) dot. afery Cambridge Analytica? Jeśli tak, to wiesz o co chodzi.
Podstawowy rozdział pomiędzy modelami w uczeniu maszynowym określa, czy model powstał o z wykorzystaniem nadzorowanego uczenia się, czy może z nienadzorowanego? Kto jest nadzorującym? Oczywiście człowiek. Pomimo zadania, które w oczywisty sposób spada na maszyny, to człowiek wskazuje, na co model ma zwracać uwagę. W przypadku braku takiego nadzoru, to maszyna ma za zadanie odnaleźć dany wzorzec. Kiedy, co ma sens?
Nadzorowany machine learning
Uczenie nadzorowane jest definiowane przez wykorzystanie etykietowanych zbiorów danych (czyli takich, którym człowiek nadaje znaczenie). Takie zbiory są przeznaczone do trenowania algorytmów, by te dokładnie przewidywały wyniki. Używając oznaczonych danych wejściowych i wyjściowych, model może mierzyć swoją dokładność i uczyć się w miarę upływu czasu. Ich zadaniem jest rozwiązywanie dwóch typów zadań: klasyfikacji i regresji.
W przypadku klasyfikacji, to algorytm przypisuje dane testowe do wskazanej kategorii. Wykorzystywany jest chociażby do określenia czy dana wiadomość mailowa jest spamem. Liniowe klasyfikatory, maszyny wektorów nośnych (SVM), drzewa decyzyjne oraz las losowy – to popularne rodzaje algorytmów klasyfikacji.
Regresja zaś wykorzystuje algorytm do zrozumienia związku, który występuje między zmiennymi zależnymi i niezależnymi. Modele regresji przydają się szczególnie w przewidywaniu wartości liczbowych na podstawie różnych danych – np. prognozy przychodów ze sprzedaży. Wśród popularnych algorytmów regresji pojawia się: regresja liniowa, logistyczna oraz wielomianowa.
Nienadzorowane uczenie maszynowe
Jak już zostało przeze mnie wspomniane wcześniej, uczenie nienadzorowane wykorzystuje algorytm uczenia do analizy oraz grupowania nieoznakowanych zbiorów danych. Takie algorytmy maja za zadanie odkrywać wzorce w danych, bez potrzeby nadzorowania ze strony człowieka. Stąd wzięła się ta nazwa. Modele takie wykorzystywane są głównie do: grupowania danych (nazywane także klasteryzacją), analizy koszykowej (asocjacji) oraz redukcji wymiarowości.
Grupowanie danych – zwane także analiza skupień – to technika eksploracji danych, która ma na celu grupowanie nieoznakowanych danych poprzez ich podobieństwa, bądź różnice. Przykładowym ich zastosowaniem są algorytmy centroidów (k-średnich, z ang. k-means), które przypisują podobne punkty danych do grup, gdzie wartość k reprezentuje wielkość grupowania oraz ziarnistość. Jest to pomocne przy segmentacji rynku, kompresowaniu obrazów, etc.
Analiza koszykowa wykorzystuje różne reguły do znalezienia zależności pomiędzy zmiennymi w określonym zbiorze danych. Metoda ta jest Ci zapewne znana, jeśli posiadasz konto w jakimś serwisie streamingowym. Działa ona według zasady „Jeśli podobał Ci się film X, powinien Ci się spodobać film Y„. Ta metoda segreguje klientów na bazie danego produktu, rekomendując kolejny.
Redukcja wymiarowości, to technika, która znajduje uznanie wówczas, gdy liczba cech, czy wymiarów, w danym zbiorze jest zwyczajnie zbyt duża. Ma to na celu zredukować liczbę danych wejściowych do możliwego do opanowania rozmiaru, przy jednoczesnym zachowaniu integralności danych. Wystarczy wyobrazić sobie ile byśmy mieli YB (jottabajtów) danych, gdybyśmy chcieli zebrać wszystkie posty ludzi na FB, do stworzenia algorytmu imitującego ludzki przepływ myśli. Jak wiele tych wpisów niosło by ze sobą jakąkolwiek wartość, a jak wiele z nich byłoby kompletnie o niczym? Poza taką abstrakcyjną sytuacją, samo narzędzie wykorzystywane jest w autoenkoderach (ang. autoencoder), które np. usuwają szum z danych wizualnych, aby poprawić jakość obrazu.
Machine learning w tradingu
ML ma szerokie zastosowanie w wielu aspektach naszego życia. Ma także zastosowanie w spekulacji na rynkach kapitałowych. Rynek kapitałowy, rynek walutowy, czy szeroko rozumiana gospodarka to obszary, które opisane są za pomocą danych. Te dane można opisać i wykorzystać do predykcji np. wskaźnika ekonomicznego, ceny akcji. Ze wspomnianych metod, jedną z najczęściej przewijających się będzie regresja, która jest elementem nadzorowanego uczenia maszynowego.
Popularne jest uczenie maszynowe z użyciem scikit learn i tensorflow. Scikit learn to darmowa biblioteka języka Python. Dzięki niej możemy wykorzystać szereg dostępnych narzędzi do uczenia maszynowego, jak chociażby wspomniana wcześniej regresja, czy SVM. Korzystanie z niej jest banalnie proste. Możemy wykorzystać ją np. w Jupyter Notebook, który jest dostępna m.in w Anaconda (najpopularniejsze oprogramowanie do pracy Data Science). Wprowadzenie do scikit możesz znaleźć w języku angielskim na tej stronie. Z kolei tensorflow to biblioteka typu open source stworzona z myślą o ML, której twórcą jest Google.
Dzięki tym narzędziom, możesz stawiać swoje pierwsze kroki w tej fascynującej przygodzie, bez konieczności inwestowania w zaawansowane środowisko pracy. Wystarczy komputer z dostępem do internetu. Oczywiście w zależności od ilości zgromadzonych danych oraz oczekiwania szybkości działań, może Ci się przydać lepszy sprzęt. Pamiętaj natomiast, że tu gdzie jesteś masz wystarczająco wiele, by postawić pierwszy krok.