Uczenie maszynowe

Z Encyklopedia Zarządzania
Wersja z dnia 08:07, 27 kwi 2021 autorstwa 216915 (dyskusja | edycje) (Poprawa kusywy w linkach.)

Uczenie maszynowe (ang. machine learning) - to nauka o algorytmach komputerowych, które automatycznie doskonalą (uczą) się poprzez własne wyniki (T. Mitchell, 1997). Jest ona postrzegana jako część sztucznej inteligencji. Algorytmy uczenia maszynowego budują model w oparciu o przykładowe dane, znane jako "dane treningowe" (ang. training data), w celu dokonywania przewidywań lub podejmowania decyzji bez wyraźnego zaprogramowania do tego (ang. "hard coding") (A. Samuel, 1959). Algorytmy uczenia maszynowego są wykorzystywane w wielu różnych zastosowaniach, takich jak np. medycyna czy analiza obrazów cyfrowych, gdzie niewykonalne jest opracowanie standardowych algorytmów do wykonywania potrzebnych zadań.

Historia rozwoju

Pojęcia "Uczenie Maszynowe" jako pierwszy użył Arthur Samuel w 1959 roku w swojej pracy dotyczącej modeli sztucznej inteligencji w grach komputerowych (w tym wypadku Warcabów) (A. Samuel, 1959). Przez kolejne lata była ona rozwijana i kolejnym krokiem milowym była praca Richarda Duda'y i Petera Harta dotycząca rozpoznawania wzorów (ang. "pattern recognition"). Stworzyli oni model potrafiący rozpoznać 40 różnych znaków (26 liter, 10 cyfr oraz 4 symbole specjalne) (R. Duda, P. Hart, 1973). Współcześnie uczenie maszynowe ma dwa cele, jednym z nich jest klasyfikowanie danych na podstawie opracowanych modeli, drugim z nich jest przewidywanie przyszłych wyników na podstawie tych modeli ("Introduction to AI" , 2020).

Powiązania z innymi dziedzinami

W związku ze swoją złożonością, algorytmy uczenia maszynowego czerpią z wielu dziedzin techniki i informatyki.

  • Sztuczna inteligencja (ang. AI - Artificial Intelligence) - proces podejmowania abstrakcyjnych decyzji na podstawie nauczonego wzorca (modelu).
  • Pozyskiwanie danych (ang. Data mining) - proces poszukiwania wzorów w grupach danych.
  • Optymalizacja - podczas tworzenia modelu, minimalizuję się tzw. funkcję strat (ang. loss function), by stworzony wzorzec był jak najbardziej korzystny i optymalny.
  • Statystyka - Uczenie maszynowe bazuje na metodach predykcyjnych (na podstawie modeli przewiduje zachowanie/wynik), gdzie statystyka bazuje na danych historycznych.

Rodzaje uczenia maszynowego

Podejścia do uczenia maszynowego dzieli się na trzy rozbudowane kategorie, w zależności od charakteru dostarczanych informacji lub oczekiwanej informacji zwrotnej dostępnej dla systemu uczącego się (M. Bishop, 2006):

  • Uczenie nadzorowane (ang. Supervised learning) - Komputerowi przedstawiane są przykładowe "wejścia" i ich pożądane "wyjścia", a celem jest stworzenie ogólnej reguły, która odwzorowuje te zależności.
  • Uczenie nienadzorowane (ang. Unsupervised learning) - Algorytmowi uczącemu nie podaje się żadnych zdefiniowanych wskazówek (etykiet), pozostawiając go samemu sobie w celu znalezienia struktury w danych wejściowych. Uczenie nienadzorowane może być celem samym w sobie (odkrywanie ukrytych wzorców w danych) lub środkiem do celu (tzw. uczenie cech).
  • Uczenie przez wzmocnienie (ang. Reinforcement learning) - Program komputerowy wchodzi w interakcję ze zdefiniowanym środowiskiem (np. grą komputerową lub symulatorem), w którym musi wykonać pewien cel (taki jak prowadzenie pojazdu lub gra przeciwko przeciwnikowi). Poruszając się w przestrzeni problemowej, program otrzymuje informacje zwrotne analogiczne do nagród, które stara się maksymalizować (M. Bishop, 2006).

Sieci neuronowe (ang. neural networks) i modele wynikowe

Sztuczne sieci neuronowe (ang. ANN, Artificial Neural Networks) są systemami obliczeniowymi inspirowanymi biologicznymi sieciami neuronowymi, które tworzą mózgi zwierząt i człowieka. Takie systemy "uczą się" wykonywać zadania poprzez rozważanie przykładów, zazwyczaj bez programowania jakichkolwiek reguł specyficznych dla danego zadania. ANN to model oparty na zbiorze połączonych jednostek lub węzłów zwanych "sztucznymi neuronami", które modelują neurony w biologicznym mózgu. Każde połączenie, podobnie jak synapsy w mózgu biologicznym, może przekazywać informacje, "sygnał", z jednego sztucznego neuronu do drugiego. Sztuczny neuron, który otrzymuje sygnał, może go przetworzyć, a następnie wysłać sygnał do innych sztucznych neuronów z nim połączonych. W powszechnych implementacjach ANN, sygnał na połączeniu między sztucznymi neuronami jest liczbą rzeczywistą, a wyjście każdego sztucznego neuronu jest obliczane przez pewną nieliniową funkcję sumy jego wejść. Połączenia pomiędzy sztucznymi neuronami nazywane są "krawędziami" (ang. edges). Sztuczne neurony i krawędzie mają zazwyczaj wagę, która dostosowuje się w miarę postępu uczenia. Waga zwiększa lub zmniejsza siłę sygnału na danym połączeniu. Sztuczne neurony mogą mieć próg, dzięki któremu sygnał jest wysyłany tylko wtedy, gdy łączny sygnał przekroczy ten próg. Zazwyczaj sztuczne neurony są agregowane w warstwy. Różne warstwy mogą wykonywać różne rodzaje przekształceń na swoich wejściach. Sygnały wędrują od pierwszej warstwy (warstwa wejściowa) do ostatniej (warstwa wyjściowa), będąca równocześnie wynikiem predykcji.

Pierwotnym celem podejścia ANN było rozwiązywanie problemów w taki sam sposób, w jaki robiłby to ludzki mózg. Jednak z czasem uwaga przesunęła się na wykonywanie konkretnych zadań, co doprowadziło do odstępstw od biologii. W naturze nie występuję mózg wyspecjalizowany do rozpoznawania obrazów, lecz jest to część bardziej złożonego i szerzej wykształconego organu. Sztuczne sieci neuronowe zostały wykorzystane do różnych zadań, w tym widzenia komputerowego, rozpoznawania mowy, tłumaczenia maszynowego, filtrowania sieci społecznościowych, grania w gry planszowe i wideo oraz diagnostyki medycznej. Ważnym pojęciem jest tzw. Głębokie uczenie (ang. Deep learning), które polega na zastosowaniu wielu ukrytych warstw w sztucznej sieci neuronowej. Podejście to modeluje sposób, w jaki na przykład ludzki mózg przetwarza światło i dźwięk. Niektóre udane zastosowania głębokiego uczenia się to wizja komputerowa i rozpoznawanie mowy (L. Honglak, 2009).

Ograniczenia i wątpliwości

Chociaż uczenie maszynowe miało ogromne znaczenie w niektórych dziedzinach, programy często nie przynoszą oczekiwanych rezultatów (Bloomberg, 2006). Przyczyn tego jest mnóstwo: brak (odpowiednich) danych, brak dostępu do danych, stronniczość danych, problemy dot. prywatności, źle dobrane zadania i algorytmy, brak zasobów i problemy z oceną ("9 Reasons why your machine learning project will fail" , 2005). Przykładami tego może być wypadek w 2018 r. gdy autonomiczny samochód firmy Uber nie wykrył pieszego, który zginął po kolizji (Wyborcza, 2018). oraz próby wykorzystania uczenia maszynowego w opiece zdrowotnej z systemem IBM Watson nie przyniosły rezultatów nawet po latach i miliardach zainwestowanych dolarów ("IBM’s Watson supercomputer recommended ‘unsafe and incorrect’ cancer treatments (...)", 2018). Kolejnym problemem jest tzw. stronniczość algorytmów (ang. Bias). W przypadku szkolenia na danych stworzonych przez człowieka, uczenie maszynowe prawdopodobnie przejmie konstytucyjne i nieświadome uprzedzenia już obecne w społeczeństwie (M. Garcia, 2016). Wykazano również, iż modele językowe uczone na podstawie danych zawierają uprzedzenia podobne do ludzkich (A. Caliskan, 2017).

Bibliografia

Autor: Wojciech Syrnicki