Matematyczne wprowadzenie do machine learning

W ostatnich latach okazało się, że matematyka może być na topie. Przez bardzo długi czas sądzono (a niektórzy myślą tak do tej pory), że abstrakcyjne twierdzenia chociażby z dziedziny zwanej algebrą liniową nie znajdą zastosowania w świecie codziennym… o biznesie nawet nie wspominając. I wtedy na horyzoncie pojawiły się dwa słowa: MACHINE i LEARNING.

Dzisiejszy artykuł oraz kilka publikowanych w przyszłości będą w dużej mierze inspirowane opublikowaną w marcu 2020 książką “Mathematics for Machine Learning” autorstwa Marca Deisenrotha, Aldo Faisala oraz Cheng Soon Onga. Miejscami będę nawet wprost cytować wspomnianą książkę tłumacząc ją jedynie na język polski, ponieważ uważam, że jest ona napisana w bardzo konkretny matematyczny sposób. Publikacja zawiera wiedzę potrzebną, aby dobrze orientować się w świecie uczenia maszynowego. Świetne w tej książce jest również to, że możesz ją mieć zupełnie za darmo w wersji elektronicznej. Link do aktualnej wersji ebooka znajdziesz na końcu artykułu.

A już teraz możesz zapisać się na moją listę mailową i odebrać ebooka pt. “15 wskazówek jak z matematyka stać się analitykiem”. Zapisz się podając swój adres mailowy poniżej.

Machine learning – a co to?

Machine learning (pol. uczenie maszynowe) to dziedzina wiedzy polegająca na projektowaniu algorytmów i reguł pozwalających na automatyczne pozyskiwanie wartościowych informacji z posiadanych danych. Jednym z głównych założeń ML jest praca na wysokim poziomie ogólności. Stąd zaproponowane rozwiązanie może być z łatwością zastosowane w wielu różnorodnych zbiorach danych związanych z rozważanym problemem.

Podstawowe fundamentalne pojęcia machine learning to: dane, modele oraz uczenie.
Dane są bazą do badań i źródłem informacji. Modele opisują i odwzorowują proces generowania wyników i pozwalają przewidywać ich nieznane wartości. Mówimy, że modele “uczą się” na podstawie danych, gdy wraz ze wzrostem ilości “przerobionych” danych wejściowych, w taki sposób optymalizują swoje parametry, że są w stanie lepiej przewidywać wyniki opisywanego eksperymentu.

Machine Learning GIF | Gfycat

Miejsce dla matematyka

Wiele osób zajmujących się machine learning przykłada dużą rolę do warstwy programistycznej zapominając o matematycznych podstawach zagadnienia. Skupiają się zatem na samej implementacji wymyślonych wcześniej algorytmów bez większego zrozumienia działań matematycznych stojących za tymi regułami. Często szczególnie osoby początkujące zapominają, że rozumienie matematyki stojącej za uczeniem maszynowym pozwala na budowę nowych systemów, algorytmów, usuwanie błędów z istniejących rozwiązań oraz daje świadomość ograniczeń metodologii, z którą pracujemy.

Dodatkowo matematyka zdecydowanie ułatwia pracę nad danymi. Pomimo, że nie wszystkie dane mają formę numeryczną, dobrze jest rozważać dane jednak w formacie liczbowym i wyobrażać je sobie jako wektory oraz macierze.

Istota machine learning

Załóżmy, że mamy pewien zestaw danych wejściowych, które w wyniku eksperymentu dają określone wyniki. Budujemy w oparciu o wejście i wyniki model pozwalający na odwzorowanie nieznanego procesu generowania wyników na podstawie danych wejściowych. Następnie „trenujemy” model dostosowując jego parametry w taki sposób, żeby zmaksymalizować miarę opisującą jego użyteczność do prognozowania.

W praktyce skupiamy się nie tyle na tym, żeby mieć modele odwzorowujące znane nam już dane, ale żeby wyniki generowane dla nieznanych danych wejściowych były bliskie tym, które będziemy obserwować w rzeczywistości.

Bardzo trafnie i zwięźle ujął to Gilbert Strang będący gościem podcastu Lexa Fridmana Artificial Intelligence:

“We are looking for a rule that will take this training input to the known output and then we’re going to use this rule on a new input that we don’t known the output and see what comes.”

Nie należy oczywiście zbyt optymistycznie podchodzić do modeli dobrze odwzorowujących znane dane, ponieważ nie zawsze będą one mieć wysoką wartość prognostyczną.

GIF this is a problem i havent faced before - animated GIF on ...

Matematyczne filary Machine Learning

Cztery główne filary machine learning to:

  1. Regresja (Regression)
  2. Dimensionality Reduction (Redukcja wymiaru danych)
  3. Density Estimation (Estymacja gęstości rozkładu)
  4. Classification (Klasyfikacja)

Dokładne zrozumienie powyższych czterech filarów machine learning wymagają solidnych podstaw zbudowanych na wiedzy matematycznej.

Po pierwsze ciągi danych liczbowych możemy interpretować jako n-elementowe wektory. Od ilości danych (n) zależy długość wektora. “Tablica” złożona z kilku wektorów to nic innego jak macierz. Działem matematyki, który zajmuje się badaniem wektorów i macierzy jest algebra liniowa.

Opisując rzeczywiste obiekty już za pomocą odpowiednich wektorów, chcemy wyciągać wnioski dotyczące ich skali podobieństwa. Jedną z idei przyświecających algorytmom wykorzystywanym dla uczenia maszynowego jest to, aby „podobne” wektory wejściowe w wyniku działania algorytmu dawały „podobne” rezultaty. Potrzebny jest zatem formalny opis koncepcji podobieństwa pomiędzy wektorami. Musimy wprowadzić takie działania, które bazując na wejściu w postaci dwóch wektorów, dają wynik w postaci liczby opisującej ich skalę podobieństwa. Opis podobieństwa, odległości i miar jest centralnym punktem zainteresowań geometrii analitycznej.

Nie sposób sprawnie poruszać się w tematach uczenia maszynowego bez znajomości podstaw dekompozycji macierzy. Niektóre operacje na macierzach są wyjątkowo przydatne w machine learning i pozwalają na intuicyjną interpretację danych i bardziej efektywne uczenie modeli.

Najczęściej postrzegamy dane jako obserwacje pewnego prawdziwego zjawiska zaburzone różnorodnymi czynnikami. Liczymy, że zastosowanie zasad uczenia maszynowego pozwoli oddzielić prawdziwy sygnał od szumu. Koniecznym jest więc aby posiadać język do opisu, czym jest wspomniany szum. Przydatne są także narzędzia do wyrażenia poziomu niepewności danych. Innymi słowy, chcemy móc opisać poziom zaufania co do wartości uzyskanych za pomocą algorytmów dla konkretnego zestawu danych testowych. Opisem takich zagadnień zajmuje się teoria prawdopodobieństwa.

Aby trenować algorytmy uczenia maszynowego zwykle stosuje się parametry, które pozwalają maksymalizować określone miary efektywności. Wiele technik optymalizacyjnych wymaga zastosowania koncepcji gradientu, która wskazuje nam kierunek szukania pożądanego rozwiązania. Rachunek wektorowy i szczegóły koncepcji gradientu pozwalają na poszukiwania ekstremów funkcyjnych.

Leonardo DiCaprio Victory Reaction Gif
Czysta matematyka !!!

Zakończenie

Muszę przyznać że ostatnio bardzo mocno zaciekawiła mnie tematyka machine learningu. Będzie to miało odzwierciedlenie na tym blogu ponieważ w tym temacie będzie pojawiać się coraz więcej wpisów. Co ciekawe cały materiał opisywany jako matematyczne podstawy machine learning przerabiałem podczas studiów i… wydawał mi się on całkowicie bezużyteczny… Stąd ja jestem bardzo pozytywnie zaskoczony. Oczywiście jeszcze daleka droga abym mógł zostać ekspertem uczenia maszynowego, ale jeśli będę podążał tą ścieżką rozwoju, to opiszę to na blogu.

Zapraszam na kolejny wpis, w którym opowiem więcej o macierzach czyli podstawowym pojęciu algebry liniowej.

LINKI

== Książka Mathematics for Machine Learning ==

== Lex Fridman (Artifical Intelligence Podcast) i Gilbert Strang ==

== Polski blog o uczeniu maszynowym – świetna sprawa ==

Polub nas na:
error

2 komentarze

  1. Hmm … czytajac ten wpis odnioslem wrazenie ze juz jestes ekspertem w ML, Krzyśku. Bardzo ladnie to wszystko wylozyles. O wiele klarowniej niz na jednym blogu o ML ktory od czasu do czasu czytam.

    Fajnie ze napisales o czym jest algebra liniowa. Nigdy nie studiowalem (kiedys zaczne ) wiec nie wiedzialem o tym.

    Bede wyczekiwal nastepnych twoich wpisow o ML.

    Pozdrawiam .

    1. Author

      Mateusz, dzięki za miłe słowa, ale ekspertem od ML zdecydowanie nie jestem. Dopiero zaczynam zgłębiać temat i planuję uczyć się i jednocześnie utrwalać wiedzę dzieląc się nią na blogu. Pewnie dla prawdziwych ekspertów tematu moje sformułowania z wpisu będą niepełne lub nieprecyzyjne, ale napisałem to tak, jak ja to rozumiem, tak jakbym miał to komuś wytłumaczyć 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *