Uczenie maszynowe: Różnice pomiędzy wersjami
(Poprawa formatowania bibliografii oraz usunięcie sekcji.) |
m (cleanup bibliografii i rotten links) |
||
(Nie pokazano 37 wersji utworzonych przez 3 użytkowników) | |||
Linia 1: | Linia 1: | ||
'''Uczenie maszynowe (ang. machine learning)''' - to nauka o algorytmach komputerowych, które automatycznie doskonalą (uczą) się poprzez własne wyniki | '''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). | 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ń. | 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== | ==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). | 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). | 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). | 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== | ==Powiązania z innymi dziedzinami== | ||
W związku ze swoją złożonością, algorytmy uczenia maszynowego czerpią z wielu dziedzin techniki i informatyki. | 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). | * [[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. | * 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. | * [[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 | * [[Statystyka]] - Uczenie maszynowe bazuje na '''metodach predykcyjnyc'''h (na podstawie modeli przewiduje zachowanie/wynik), gdzie statystyka bazuje na danych historycznych. | ||
<google>n</google> | |||
==Rodzaje uczenia maszynowego== | ==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): | 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 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: | ||
* 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). | # 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. | ||
* 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ć | # '''Zgromadzenie''' zbioru wszystkich danych które posłużą jako wzór treningowy. | ||
# '''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. | |||
# 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'''. | |||
# '''Uruchomienie algorytmu''' na zebranym zbiorze treningowym (uczenie się). | |||
# '''[[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== | ==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. | 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. | 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. | '''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. | 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. | 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ść'''. | ||
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. | 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. | ||
Zazwyczaj sztuczne neurony są agregowane w warstwy. Różne warstwy mogą wykonywać różne rodzaje przekształceń na swoich wejściach. | '''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. | 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. | 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. | [[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). | 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== | ==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). | 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 | Przyczyn tego jest mnóstwo ("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) | # brak odpowiednich danych, | ||
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). | # brak dostępu do danych, | ||
Wykazano również, iż modele językowe uczone na podstawie danych zawierają uprzedzenia podobne do ludzkich (A. Caliskan, 2017). | # stronniczość danych, | ||
# problemy dotyczące prywatności, | |||
# źle dobrane zadania i algorytmy, | |||
# 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). | |||
{{infobox5|list1={{i5link|a=[[Sztuczna inteligencja]]}} — {{i5link|a=[[Data science]]}} — {{i5link|a=[[Algorytm przetwarzania]]}} — {{i5link|a=[[SQL]]}} — {{i5link|a=[[Drzewo decyzyjne]]}} — {{i5link|a=[[System ekspercki]]}} — {{i5link|a=[[Fuzzy logic]]}} — {{i5link|a=[[UML]]}} — {{i5link|a=[[Wzorce projektowe]]}} }} | |||
==Bibliografia== | ==Bibliografia== | ||
<noautolinks> | |||
* Beyerer J., Nagel M., Richter M. (2017), ''Pattern Recognition'', | * Beyerer J., Nagel M., Richter M. (2017), ''Pattern Recognition'', Karlsruhe, De Gruyter Oldenbourg | ||
* Bishop | * Bishop C. (2006), ''Pattern Recognition and Machine Learning'', Springer | ||
* Caliskan A., Bryson J., Narayanan A. (2017), ''Semantics derived automatically from language corpora contain human-like biases'', | * Bloomberg (2016), ''Why Machine Learning Models Often Fail to Learn: QuickTake Q&A'' | ||
* Duda R., Hart P. (1973), ''Pattern Recognition and Scene Analysis'' | * Caliskan A., Bryson J., Narayanan A. (2017), ''Semantics derived automatically from language corpora contain human-like biases'', Science, 356 | ||
* Floreano D., Wood | * Duda R., Hart P. (1973), ''Pattern Recognition and Scene Analysis'', Wiley Interscience | ||
* Garcia M. (2016), ''Racist in the Machine'' | * Floreano D., Wood R. (2015), ''[https://infoscience.epfl.ch/record/208757/files/nature14542.pdf Science, technology and the future of small autonomous drones]'', Nature 521 | ||
* Honglak L., Roger G., Rajesh R., | * Garcia M. (2016), ''Racist in the Machine'', World Policy Journal, 33 (4) | ||
* 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 | * Samuel A. (1959), ''Some Studies in Machine Learning Using the Game of Checkers'', IBM Journal of Research and Development, 3 (3) | ||
* Satell G. (2018), ''[https://hbr.org/2018/07/how-to-make-an-ai-project-more-likely-to-succeed How to make an AI project more likely to succeed]'', Harvard Business Review | |||
* Strona internetowa: ''[https://www.kdnuggets.com/2018/07/why-machine-learning-project-fail.html 9 Reasons why your machine learning project will fail]'', kdnuggets.com | |||
* Samuel A. (1959), ''Some Studies in Machine Learning Using the Game of Checkers'', | * Strona internetowa: ''[https://www.statnews.com/2018/07/25/ibm-watson-recommended-unsafe-incorrect-treatments/ IBM’s Watson supercomputer recommended ‘unsafe and incorrect’ cancer treatments, internal documents show]'', Statnews | ||
* Satell G. (2018), [https://hbr.org/2018/07/how-to-make-an-ai-project-more-likely-to-succeed | * Strona internetowa: ''[https://wyborcza.pl/7,75399,23162966,pierwsza-smierc-spowodowana-przez-samosterujacy-samochod-uber.html Pierwsza śmierć spowodowana przez bezzałogowy samochód. Uber zawiesza testy w USA]'' (2018), Wyborcza | ||
* [https:// | </noautolinks> | ||
[[Kategoria: | |||
[[Kategoria:Przemysł 4.0]] | |||
{{a|Wojciech Syrnicki}} | {{a|Wojciech Syrnicki}} | ||
{{#metamaster:description|Uczenie maszynowe - nauka o algorytmach komputerowych, które automatycznie uczą się na podstawie danych treningowych. Wykorzystywane m.in. w medycynie i analizie obrazów.}} |
Aktualna wersja na dzień 11:38, 16 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:
- 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.
- Zgromadzenie zbioru wszystkich danych które posłużą jako wzór treningowy.
- 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.
- 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.
- Uruchomienie algorytmu na zebranym zbiorze treningowym (uczenie się).
- 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):
- brak odpowiednich danych,
- brak dostępu do danych,
- stronniczość danych,
- problemy dotyczące prywatności,
- źle dobrane zadania i algorytmy,
- 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 maszynowe — artykuły polecane |
Sztuczna inteligencja — Data science — Algorytm przetwarzania — SQL — Drzewo decyzyjne — System ekspercki — Fuzzy logic — UML — Wzorce projektowe |
Bibliografia
- Beyerer J., Nagel M., Richter M. (2017), Pattern Recognition, Karlsruhe, De Gruyter Oldenbourg
- Bishop C. (2006), Pattern Recognition and Machine Learning, Springer
- Bloomberg (2016), Why Machine Learning Models Often Fail to Learn: QuickTake Q&A
- Caliskan A., Bryson J., Narayanan A. (2017), Semantics derived automatically from language corpora contain human-like biases, Science, 356
- Duda R., Hart P. (1973), Pattern Recognition and Scene Analysis, Wiley Interscience
- Floreano D., Wood R. (2015), Science, technology and the future of small autonomous drones, Nature 521
- Garcia M. (2016), Racist in the Machine, World Policy Journal, 33 (4)
- 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
- Samuel A. (1959), Some Studies in Machine Learning Using the Game of Checkers, IBM Journal of Research and Development, 3 (3)
- Satell G. (2018), How to make an AI project more likely to succeed, Harvard Business Review
- Strona internetowa: 9 Reasons why your machine learning project will fail, kdnuggets.com
- Strona internetowa: IBM’s Watson supercomputer recommended ‘unsafe and incorrect’ cancer treatments, internal documents show, Statnews
- Strona internetowa: Pierwsza śmierć spowodowana przez bezzałogowy samochód. Uber zawiesza testy w USA (2018), Wyborcza
Autor: Wojciech Syrnicki