Algorytmy, czyli z czym to się je?
Algorytmy: Podstawa uczenia maszynowego
Ogólna definicja zakłada, że algorytmem są określone czynności, które mają doprowadzić do rozwiązania określonego problemu.
W dobie rozwoju sztucznej inteligencji dane, którymi karmimy system, stają się jego pożywieniem. Algorytmy w takiej sytuacji są instrukcją pracy dla jego procesów „trawiennych” - w jaki sposób wykorzystać dane, co z nich powinno być wchłonięte i wykorzystane na przyszłość -. Można więc powiedzieć, że algorytm w jest rzeczywiście pewnego rodzaju instrukcją.
Algorytmy w uczeniu maszynowym
Muhammad ibn Musa al-Khwarizmi był perskim matematykiem, który po raz pierwszy wprowadził koncepcję algorytmu (latynizacja jego nazwiska) w 800 r. Algorytm jest skończoną sekwencją dobrze zdefiniowanych instrukcji, które można wdrożyć za pomocą komputera, zwykle w celu rozwiązania klasy problemów lub wykonania obliczeń (źródłowa Wikipedia). Algorytm może być tak prosty jak przepis na ugotowanie jajka lub tak skomplikowany jak program komputerowy do obliczenia liczby pierwszej. Oba te procesy mają wspólną cechę deterministyczną, to znaczy, że w zależności od danych, stanu początkowego i różnych działań zawsze można przewidzieć wynik końcowy, który jest z góry określony przez programistę. Algorytmy ML „uczą się” na podstawie doświadczenia i zapewniają wyniki, które są określone nie tylko na podstawie bieżących danych, ale także na podstawie poprzednich obliczeń, dzięki czemu „uczą się” i szkolą, aby osiągnąć jak najdokładniejszy wynik.
Rodzaje algorytmów uczenia maszynowego
W uczeniu maszynowym jeden algorytm jednak nie wystarczy. Jeśli chcemy, aby ML odbywało się wielowymiarowo, to niezbędnych jest wiele różnych algorytmów. Wszystko zależy od danych, jakimi będziemy karmić model i jakie efekty chcemy osiągnąć na koniec procesu uczenia. Potrzebujemy tutaj algorytmów uczących określających przebieg uczenia się, jak i aktualizujących cały proces i oprogramowanie.
Na bazie odpowiednio dobranych algorytmów i danych, model ML będzie w stanie nie tylko analizować w odpowiedni sposób informacje, ale również będzie uczyć się na doświadczeniu. Jeśli znów powrócimy do kuchennych klimatów, to tutaj model może być odpowiednikiem początkującego kucharza. Ma on do dyspozycji składniki (dane) i przepisy (algorytmy). Podczas całego procesu uczy się jak mieszać składniki, z czym je łączyć, a z czym nie, ile potrzeba danego składnika, by osiągnąć jak najlepszy rezultat i przedstawi swoje „spostrzeżenia”. W efekcie otrzymamy coś więcej niż tylko „ciasto” - sumę składników.
Wyróżniamy ich wiele rodzajów, ale można je podzielić na kilka grup, m.in.:
- Algorytmy regresyjne, np. regresji liniowej — pokazuje jaki wpływ mają na siebie 2 zmienne (np. czas spędzony w piekarni do kwoty wydanej na zakupy)
- Algorytmy klasteryzujące — grupujące dane na podstawie ich podobieństwa
- Algorytm drzewa decyzyjnego — stosuje się go do uzyskania wiedzy na podstawie przykładów
- Algorytm głębokiego uczenia — jest już bardziej zaawansowany; pozwala rozpoznawać i naśladować mowę czy kontrolować zachowanie robota.
Znaczenie algorytmów w uczeniu maszynowym
To zaledwie garstka przykładów, ale dzisiaj chcieliśmy Wam pokazać, czym są owe algorytmy i dlaczego są tak ważne w uczeniu maszynowym.
Paweł Cyrta — specjalista ds. dźwięku, głosu, muzyki i multimediów. Doświadczony badacz i twórca oprogramowania specjalizujący się w analizie i przetwarzaniu sygnałów muzycznych, głosowych i dźwiękowych. Posiada obszerną wiedzę na temat systemów informatycznych, implementacji oprogramowania Open Source, Data Science, Data mining, Web mining, Text mining, NLP, Big Data, Machine Learning (HMM, GMM, SVM, ..., BDN, Deep Learning, ...). Dysponuje głęboką wiedzą z dziedziny dźwięku i rozwiązań audio, systemów emisji, przetwarzania, kompresowania i kodowania dźwięku. Są mu bliskie psychoakustyka, akustyka pomieszczeń, modelowanie 3D, programowanie i inżynieria dźwięku.