Uczenie maszynowe: Różnice pomiędzy wersjami

Z Encyklopedia Zarządzania
mNie podano opisu zmian
m (cleanup bibliografii i rotten links)
Linia 73: Linia 73:
* Floreano D., Wood RJ. (2015), ''[https://infoscience.epfl.ch/record/208757/files/nature14542.pdf Science, technology and the future of small autonomous drones]'', Nature 521, s. 460-466
* Floreano D., Wood RJ. (2015), ''[https://infoscience.epfl.ch/record/208757/files/nature14542.pdf Science, technology and the future of small autonomous drones]'', Nature 521, s. 460-466
* Garcia M. (2016), ''Racist in the Machine''. World Policy Journal, 33 (4): s. 111-117
* Garcia M. (2016), ''Racist in the Machine''. World Policy Journal, 33 (4): s. 111-117
* Honglak L., Roger G., Rajesh R., Andrew Y. Ng (2009), ''Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations'', Proceedings of the 26th Annual International Conference on Machine Learning
* Honglak L., Roger G., Rajesh R., Ng A. (2009), ''Convolutional Deep Belief Networks for Scalable Unsupervised Learning of Hierarchical Representations'', Proceedings of the 26th Annual International Conference on Machine Learning
* Michalski R., Carbonell J., Mitchell T. (1983), ''Machine Learning: An Artificial Intelligence Approach'', Springer-Verlag
* Michalski R., Carbonell J., Mitchell T. (1983), ''Machine Learning: An Artificial Intelligence Approach'', Springer-Verlag
* Samuel A. (1959), ''Some Studies in Machine Learning Using the Game of Checkers'', IBM Journal of Research and Development, 3 (3)
* Samuel A. (1959), ''Some Studies in Machine Learning Using the Game of Checkers'', IBM Journal of Research and Development, 3 (3)

Wersja z 12:03, 7 sty 2024

Uczenie maszynowe (ang. machine learning) - to nauka o algorytmach komputerowych, które automatycznie doskonalą (uczą) się poprzez własne wyniki. 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ń.

TL;DR

Uczenie maszynowe to nauka o algorytmach komputerowych, które doskonalą się poprzez własne wyniki. Jest wykorzystywane w różnych dziedzinach, takich jak medycyna czy analiza obrazów cyfrowych. Istnieją trzy rodzaje uczenia maszynowego: nadzorowane, nienadzorowane i przez wzmocnienie. Sieci neuronowe są używane do rozwiązywania problemów i modelowania mózgu. Istnieją jednak ograniczenia i wątpliwości związane z uczeniem maszynowym, takie jak brak danych, stronniczość algorytmów i problemy z oceną.

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. Proces taki wygląda następująco:
  1. Przed podjęciem jakichkolwiek działań twórca musi zdecydować, jaki rodzaj danych ma być użyty jako zbiór treningowy. W przypadku analizy pisma odręcznego może to być na przykład pojedynczy znak pisma odręcznego, całe słowo lub zdanie.
  2. Zgromadzenie zbioru wszystkich danych które posłużą jako wzór treningowy.
  3. Określenie reprezentacji cech wejściowych dla wyuczonej funkcji. Obiekt wejściowy jest przekształcany w wektor cech, które później będą ewaluowane.
  4. Określenie struktury uczonej funkcji i odpowiadającego jej algorytmu uczenia. Na przykład, twórca może zdecydować się na użycie tzw. maszyn wektorów wspierających lub drzew decyzyjnych.
  5. Uruchomienie algorytmu na zebranym zbiorze treningowym (uczenie się).
  6. Ocena dokładności wyuczonej funkcji. Wydajność wynikowej funkcji powinna być mierzona na oddzielnym zbiorze od zbioru treningowego, dlatego aby wykluczyć zapamiętanie modelu (wyuczenie na pamięć).
  • 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). Jedną z głównych metod używanych w uczeniu nienadzorowanym jest tzw. analiza skupień. To gałęź uczenia maszynowego grupująca dane, które nie zostały opatrzone etykietami lub sklasyfikowane. Zamiast reagować na informacje zwrotne, analiza skupień identyfikuje wspólne cechy w danych i reaguje na podstawie obecności lub braku takich cech w każdym nowym fragmencie danych. Takie podejście pomaga wykryć anomalie w zbiorach danych, które nie pasują do żadnej z grup.
  • 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ć. Uczenie przez wzmocnienie różni się od uczenia nadzorowanego tym, że nie wymaga prezentowania etykietowanych par wejście/wyjście oraz wyraźnego korygowania nieoptymalnych działań. Zamiast tego kładzie nacisk na znalezienie równowagi pomiędzy eksploracją nowego środowiska, czy też bazy danych, a eksploatacją aktualnego stanu wiedzy ("poziomu wyuczenia").

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 ("9 Reasons why your machine learning project will fail", 2005):

  1. brak odpowiednich danych,
  2. brak dostępu do danych,
  3. stronniczość danych,
  4. problemy dotyczące prywatności,
  5. źle dobrane zadania i algorytmy,
  6. brak zasobów i problemy z oceną.

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).


Uczenie maszynoweartykuły polecane
Sztuczna inteligencjaData scienceAlgorytm przetwarzaniaSQLDrzewo decyzyjneSystem eksperckiFuzzy logicUMLWzorce projektowe

Bibliografia

Autor: Wojciech Syrnicki