Uczenie maszynowe,samouczenie się maszyn albosystemy uczące się (ang. machine learning) – obszarsztucznej inteligencji poświęconyalgorytmom, które poprawiają się automatycznie poprzez doświadczenie[1], czyli ekspozycję na dane. Algorytmy uczenia maszynowego budująmodel matematyczny na podstawie przykładowych danych, zwanychzbiorem uczącym, w celuprognozowania lubpodejmowania decyzji bez bycia zaprogramowanymexplicite przez człowieka do tego celu. Algorytmy uczenia maszynowego są wykorzystywane w wielu różnych zastosowaniach, takich jakochrona przed spamem (filtrowaniewiadomości internetowych pod kątemniechcianej korespondencji), czyrozpoznawanie obrazów, w których opracowanie konwencjonalnych algorytmów do wykonywania potrzebnych zadań jest trudne lub niewykonalne.
Uczenie maszynowe jest konsekwencją rozwoju idei sztucznej inteligencji i metod jej wdrażania praktycznego. Dotyczy rozwojuoprogramowania stosowanego zwłaszcza w innowacyjnych technologiach i przemyśle. Odpowiedniealgorytmy mają pozwolić oprogramowaniu na zautomatyzowanie procesu pozyskiwania i analizy danych do ulepszania i rozwoju własnego systemu.
Uczenie się może być rozpatrywane jako konkretyzacja algorytmu, czyli dobórparametrów, nazywanych wiedzą lub umiejętnością. Służy do tego wiele typów metod pozyskiwania wiedzy oraz sposobów reprezentowania wiedzy.
Ma to zapewnić zwiększanie:
Pierwszym przykładem maszynowego uczenia się może być projekt Arthura Samuela z firmyIBM, który w latach 1952–1962 rozwijał program do szkolenia zawodników szachowych.
Przełomem w dziedzinie sztucznej inteligencji i maszynowego uczenia się było powstanie systemu eksperckiegoDendral naUniwersytecie Stanforda w 1965. System ten powstał w celu zautomatyzowania analizy i identyfikacji molekuł związków organicznych, które dotychczas nie były znane chemikom. Wyniki badań otrzymane dzięki systemowi Dendral były pierwszym w historii odkryciem dokonanym przez komputer, które zostało opublikowane w prasie specjalistycznej.
W 1977 powstaje program AM (Automated Mathematician) napisany w języku programowaniaLisp, którego autorem był Doug Lenat. Służył do zautomatyzowanego poszukiwania nowych praw matematycznych, korzystając z algorytmówheurystycznych. Następcą AM został, również stworzony przez Lenata, programEurisko.
Badania nad uczeniem maszynowym nabierają tempa od początku lat 90., kiedy Gerald Tesauro stworzył programTD-Gammon, potrafiący konkurować w grzeBackgammon z mistrzami świata. Aby dojść do takiej perfekcji, program ten uczył się swojej strategii, grając jako przeciwnik w ponad milionie gier.Algorytm zaimplementowany w programie znalazł później zastosowanie wneuronauce.
W 1997Garri Kasparow, mistrz świata w szachach, został pokonany w tzw.miniaturze (partia trwała jedynie 19 posunięć) przez komputerDeep Blue w ostatniej z sześciu rozgrywek, w której został znacznie unowocześniony przez firmę IBM. Kasparow zarzucił firmie IBM oszustwo, kiedy odmówiła mu dostępu do historii wcześniejszych gier Deep Blue. W ten sposób Kasparow nie był w stanie analizować strategii przeciwnika, podczas gdy twórcy Deep Blue niezwykle dokładnie analizowali i opracowywali wszystkie wcześniejsze rozgrywki Kasparowa, tworząc odpowiednie algorytmy programu. Pozostało mu jedynie studiowanie sposobów gry ogólnodostępnych programów szachowych. Rosyjski szachista domagał się rewanżu, ale firma IBM nie zgodziła się i Deep Blue przeszedł na „emeryturę”. Krytycy wielokrotnie zarzucali firmie IBM, że zamiast sprawiedliwej rywalizacji szachowej mieli na celu wypromowanie swych rozwiązań technologicznych i marki.
Koniec lat 90. obfituje w powszechne zastosowanie algorytmów uczenia maszynowego w rozwoju sieci internet i działania wyszukiwarek internetowych (Google,Yahoo,Bing).
W 2006 ogólnodostępny program szachowyFritz 10 pokonał mistrza świataWładimira Kramnika.
W 2011 rokusuperkomputer Watson, stworzony przezIBM, wygrał w teleturniejuJeopardy!, pokonując dwóch najlepszych graczy w historii[2].
Uczenie się w kontekście sztucznej inteligencji oraz automatyki rozumiane jest inaczej niżtradycyjnie. Proces uczenia się systemu ma za zadanie osiągnięcie rezultatów opartych na wiedzy fragmentarycznej, umożliwiać doskonalenie się, tworzyć nowe pojęcia oraz wnioskowaćindukcyjnie.
- Herbert Simon (1983)
- „Uczenie się oznacza zmiany w systemie, które mają charakter adaptacyjny w tym sensie, że pozwalają systemowi wykonać za następnym razem takie samo zadanie lub zadania podobne bardziej efektywnie.”
- Ryszard Michalski (1986)
- „Uczenie się to konstruowanie i zmiana reprezentacji doświadczanych faktów. W ocenie konstruowania reprezentacji bierze się pod uwagę:wiarygodność – określa stopień, w jakim reprezentacja odpowiada rzeczywistości,efektywność – charakteryzuje przydatność reprezentacji do osiągania danego celu,poziom abstrakcji – odpowiada zakresowi szczegółowości i precyzji pojęć używanych w reprezentacji; określa on tzw. moc opisową reprezentacji. Reprezentacja jest rozumiana jako np. opisy symboliczne, algorytmy, modele symulacyjne, plany, obrazy.”
- Donald Michie (1991)
- „System uczący się wykorzystuje zewnętrzne dane empiryczne w celu tworzenia i aktualizacji podstaw dla udoskonalonego działania na podobnych danych w przyszłości oraz wyrażania tych podstaw w zrozumiałej i symbolicznej postaci”.
Uczenie maszynowe w teorii ma prowadzić do określonych celów m.in.:
- tworzenia nowychpojęć,
- wykrywania nieznanychprawidłowości w danych,
- formułowania reguł decyzyjnych,
- przyswajania nowych pojęć i struktur przy pomocyuogólnienia ianalogii,
- modyfikowania, uogólniania i precyzowania danych,
- zdobywania wiedzy poprzezinterakcję z otoczeniem,
- formułowania wiedzy zrozumiałej dla człowieka.
Ogólne zastosowanie maszynowego uczenia się to m.in.:
- analiza i użytkowanie olbrzymich baz danych, w przypadku których rozmiary, złożoność oraz wymóg ciągłej aktualizacji uniemożliwiają niezautomatyzowaną analizę (np. w takich dziedzinach jakekonomia,medycyna,chemia)
- dostosowywanie się systemu do środowiska poprzez dynamiczną modyfikację, pozwalającą na poprawne działanie w zmiennych warunkach (robotyka, systemy sterowania, produkcji, analizy danych)
- poszukiwanie i analiza zależności w dużych bazach danych w celu syntetycznego przedstawiania informacji według podanych kryteriów (systemy eksperckie,wyszukiwarki internetowe)
- analiza, badanie i opracowywanie bardzo złożonych problemów, trudnych do opisu i często nie posiadających wystarczających modeli teoretycznych, których uzyskanie jest kosztowne, czasochłonne lub mało wiarygodne (fizyka,matematyka)
Uczenie maszynowe wciąż się rozwija i znajduje nowe praktyczne zastosowania. Liczba możliwych zastosowań jest niezwykle ogromna i pozwala przewidzieć, że w przyszłości każdy aspekt techniki będzie zawierać jakąśimplementację algorytmów maszynowego uczenia się.
Są to na przykład:
- oprogramowanie do rozpoznawania mowy:
- automatyczna nawigacja i sterowanie:
- kierowanie pojazdem (ALVINN)
- odnajdywanie drogi w nieznanym środowisku
- kierowanie statkiem kosmicznym (NASA Remote Agent)
- automatyzacja systemów produkcji i wydobycia (przemysł, górnictwo)
- analiza i klasyfikacja danych:
- systematyka obiektów astronomicznych (NASA Sky Survey)
- rozpoznawanie chorób na podstawie symptomów
- modelowanie i rozwijanie terapii lekowych
- rozpoznawania pisma na podstawie przykładów
- klasyfikowanie danych do grup tematycznych według kryteriów
- aproksymacja nieznanej funkcji na podstawie próbek
- ustalanie zależności funkcyjnych w danych
- przewidywanie trendów na rynkach finansowych na podstawie danychmikro- imakroekonomicznych
- wykrywanie prania pieniędzy[3]
- wykrywanie i liczenie kolonii bakteryjnych na szalce Petriego[4]
- rekonstrukcja obrazów tomograficznych[5]
- generowanie obrazów i filmów
Uczenie maszynowe i jego powodzenie zależy od wyboru odpowiedniej metody formułującej problem, zbioru uczącego (czyli doświadczeń) oraz sposobu uczenia się nowych pojęć.
- wnioskowanie wartości funkcji logicznej z przykładów
- uczenie drzew decyzyjnych (ang. Decision Tree Learning) –drzewo decyzyjne to graficzna metoda wspomaganiaprocesu decyzyjnego, stosowana wteorii decyzji. Algorytm drzew decyzyjnych jest również stosowany w uczeniu maszynowym do pozyskiwania wiedzy na podstawie przykładów. Jest to schemat o strukturze drzewa decyzji i ich możliwych konsekwencji. Zadaniem drzew decyzyjnych może być zarówno stworzenie planu, jak i rozwiązanie problemu decyzyjnego. Metoda drzew decyzyjnych jest szczególnie przydatna w problemach decyzyjnych z licznymi, rozgałęziającymi się wariantami
- uczenie Bayesowskie (ang.Bayesian Learning) – metody oparte na twierdzeniu sformułowanym przez XVIII-wiecznego matematykaThomasa Bayesa odgrywają znaczną i ostatnio rosnącą rolę w dziedziniesztucznej inteligencji, zwłaszcza w uczeniu się maszyn. Można ogólnie powiedzieć, że wzór Bayesa stał się podstawą do rozwoju teorii i algorytmów różnych form wnioskowaniaprobabilistycznego.
- uczenie z przykładów (ang.Instance-based Learning) – w odróżnieniu od metod uczenia, które konstruują ogólny, tzw. jawny opis funkcji docelowej, kiedy dostarczane są dane uczące, uczenie tego typu po prostu zapamiętuje przykłady. Uogólnianie nad tymi przykładami jest odwlekane do czasu, aż nowy przykład (zadanie) ma być klasyfikowane. Za każdym razem, kiedy przychodzi nowe zapytanie (przykład), badane są jego powiązania z zapamiętanymi przykładami, aby ustalić wartość docelowej funkcji nowego przykładu.
- uczenie się zbioru reguł (ang.Learning Sets of Rules) – zbiór reguł w postaci klauzul Hornowskich może być interpretowany jako program np. w językuProlog
- analityczne uczenie (ang.Analytical Learning) – metody uczeniaindukcyjnego (wykorzystująsieci neuronowe, drzewa decyzyjne), wymagają pewnej liczby przykładów, aby osiągnąć pewien poziom uogólnienia.Analityczne uczenie stosuje wiedzęaprioryczną i wnioskowaniededukcyjne do powiększania informacji dostarczanej przez przykłady uczące.
- połączenie indukcyjnego i analitycznego uczenia (ang.Combining Inductive and Analytical Learning) – czyste indukcyjne uczenie formułuje ogólnehipotezy poprzez znalezienieempirycznych regularności w przykładach uczących. Natomiast czyste analityczne uczenie stosuje aprioryczną wiedzę do otrzymania ogólnych hipotez dedukcyjnie. Połączenie obu podejść daje korzyści: lepszą poprawność i trafność uogólniania, gdy dostępna jest wiedza aprioryczna oraz szukanie zależności w obserwowanych danych uczących do wypracowania szybkiej wiedzy apriorycznej.
- uczenie przez wzmacnianie (ang.Reinforcement Learning) – uczenie przez wzmacnianie to metoda wyznaczania optymalnej polityki sterowania przezagenta w nieznanym mu środowisku, na podstawie interakcji z tym środowiskiem. Jedyną informacją, na której agent się opiera, jest sygnałwzmocnienia (poprzez wzorowanie się na pojęciuwzmocnienia z nauk behawioralnych wpsychologii), który osiąga wysoką wartość (nagrodę), gdy agent podejmuje poprawne decyzje lub niską, (karę) gdy podejmuje decyzje błędnie[6].
Wiedza wygenerowana wyżej wymienionymi metodami może mieć postać m.in.:
Pomimo szybkiego rozwoju w dziedzinie uczenia maszynowego, systemy nadal pozostają w jakimś stopniu zależne od człowieka. Sam proces projektowania systemu wymaga od człowieka określenia sposobów zdobywania wiedzy oraz jej reprezentacji.
Poza etapem tworzenia systemu powstają następujące problemy:
- zbyt mała lub zbyt duża zależność systemu od środowiska, w którym się znajduje, co może prowadzić do niepełnej analizy danych lub błędnej interpretacji,
- wiarygodność i poprawność generowanych wniosków, wedługPoppera „wiedza zdobyta w wyniku obserwacji ma charakter jedynie domyślny”, a rozumowanie indukcyjne nie może być w pełni udowodnione, a jedyniesfalsyfikowane,
- niekompletne lub częściowo sprzeczne dane,
- niezdefiniowanie ograniczeń dziedzinowych, może prowadzić do zbyt daleko idących uogólnień i błędnych wniosków.
W związku z powyższymi problemami przyjęto[potrzebny przypis] następującepostulaty, które wiedza generowana przez systemy powinna spełniać:
- wiedza generowana przez system powinnapodlegać kontroli i ocenie człowieka, według podanych przez niego kryteriów,
- system powinien być zdolny doudzielenia wyjaśnienia w przypadku problemu,
- wiedza powinna byćzrozumiała dla człowieka, czyli wyrażalna w opisie i modelu myślowym przez niego przyjętym.
- ↑Machine Learning textbook [online], www.cs.cmu.edu .
- ↑IBM Watson Wins Jeopardy, Humans Rally Back.
- ↑Global Banking and Finance Review, 2018, Tomasz Czech.
- ↑Object detection and counting for microbiology [online], NeuroSYS [dostęp 2021-05-04] (ang.).
- ↑D.D. Wanta D.D. i inni,Image reconstruction using machine-learned pseudoinverse in electrical capacitance tomography, „Engineering Applications of Artificial Intelligence”, 142, Elsevier,DOI: 10.1016/j.engappai.2024.109888 [dostęp 2024-12-28] (ang.).
- ↑Sutton i Barto 1998 ↓, s. 3,4,7,52.
- PawełP. Cichosz PawełP.,Systemy uczące się, Warszawa: WNT, 2000,ISBN 83-204-2544-1,OCLC 749595834 . Brak numerów stron w książce
- Mitchell T.,Machine learning, McGraw-Hill Companies, Inc., 1997
- Bolc L., Zaremba P.,Wprowadzenie do uczenia się maszyn, Akademicka Oficyna Wydawnicza, 1993
- Richard S. Sutton, Andrew G. Barto: Reinforcement Learning. The MIT Press, 1998.ISBN 0-262-19398-1. (ang.).