Informatyka Systemów Autonomicznych
Transkrypt
Informatyka Systemów Autonomicznych
Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Informatyka Systemów Autonomicznych Uczenie maszynowe: uczenie z nauczycielem i bez nauczyciela. Kamil Małysz Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Spis treści I. Wstęp .........................................................................................................................................3 II. Początki uczenia maszynowego ...................................................................................................3 III. Zastosowania w praktyce.............................................................................................................4 IV. Metody maszynowego uczenia ....................................................................................................5 V. Uczenie nadzorowane i uczenie nienadzorowane ........................................................................6 VI. Podsumowanie............................................................................................................................6 Literatura ............................................................................................................................................7 ISA Strona 2 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. I. Wstęp Uczenie maszynowe (uczenie się maszyn, systemy uczące się) to stosunkowo młoda i szybko rozwijająca się dziedzina wchodząca w skład nauk zajmujących się problematyką sztucznej inteligencji. Jest to nauka interdyscyplinarna ze szczególnym uwzględnieniem takich dziedzin jak informatyka, robotyka i statystyka. Głównym celem jest praktyczne zastosowanie dokonań w dziedzinie sztucznej inteligencji do stworzenia automatycznego systemu potrafiącego doskonalić się przy pomocy zgromadzonego doświadczenia (czyli danych) i nabywania na tej podstawie nowej wiedzy. Uczenie maszynowe jest konsekwencją rozwoju idei sztucznej inteligencji i metod jej wdrażania praktycznego. Dotyczy rozwoju oprogramowania stosowanego zwłaszcza w innowacyjnych technologiach i przemyśle. Odpowiednie algorytmy 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ór parametrów, nazywanych wiedzą lub umiejętnością. Służy do tego wiele typów metod pozyskiwania wiedzy oraz sposobów reprezentowania wiedzy. II. Początki uczenia maszynowego Pierwszym przykładem maszynowego uczenia się, może być projekt Arthura Samuela z firmy IBM, 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 eksperckiego Dendral na Uniwersytecie 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ły opublikowane w prasie specjalistycznej. W 1977 powstaje program AM (Automated Mathematician) napisany w języku programowania Lisp, którego autorem był Doug Lenat. Służył do zautomatyzowanego poszukiwania nowych praw matematycznych korzystając z algorytmów heurystycznych. Następcą AM został, również stworzony przez Lenata, program Eurisko. Badania nad uczeniem maszynowym nabierają tempa od początku lat 90., kiedy Gerald Tesauro stworzył program TD-Gammon, potrafiący konkurować w grze Backgammon 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 w neuronauce. W 1997 Garri Kasparow, mistrz świata w szachach, został pokonany walkowerem przez komputer Deep Blue w ostatniej z sześciu rozgrywek, w której został znacznie unowocześniony przez firmę IBM. Kasparow zarzucił firmie IBM oszustwo, która 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. ISA Strona 3 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Koniec lat 90. obfituje w powszechne zastosowanie algorytmów uczenia maszynowego w rozwoju sieci internet i działania wyszukiwarek internetowych (Google, Yahoo, MSN). W 2006 ogólnodostępny program szachowy Fritz 10 pokonał mistrza świata Władimira Kramnika, jednego z szachowych arcymistrzów. III. Zastosowania w praktyce Stosowanie systemów uczących się jest wskazane przy rozwiązywaniu problemów dotyczących zjawisk świata rzeczywistego, charakteryzujących się dużym stopniem nie determinizmu oraz zbyt dużą złożonością, aby mogły być one zadowalająco reprezentowane przez inne formalne modele. Metody uczenia się bez nadzoru mogą znaleźć zastosowania w dziedzinie ekonomii, głównie do problemów wymagających analizy pewnych danych (dotyczących np. sytuacji ekonomicznej przedsiębiorstw, sytuacji na rynku określonych wyrobów, sytuacji na giełdzie papierów wartościowych lub sytuacji gospodarczej w skali makroekonomicznej) i wykrywania między nimi podobieństw oraz łączenia ich w klasy. Szczególnie zasadne wydaje się wykorzystanie modułów uczących się bez nadzoru jako komponentów bardziej złożonych systemów inteligentnych. Na przykład, w systemach wspomagania decyzji może zostać za pomocą takiego komponentu odkryte podobieństwo aktualnej sytuacji do pewnych sytuacji z przeszłości, które może być następnie podstawą do wykorzystania przy podejmowaniu aktualnej decyzji na podstawie wiedzy i doświadczeń z tych przeszłych sytuacji. Podstawowy obszar zastosowań metod uczenia się z nadzorem wydaje się zbliżony do obszaru zastosowań tradycyjnych systemów doradczych, obejmującego różne zagadnienia wspomagania decyzji, np. w zarządzaniu Uczenie maszynowe wciąż się rozwija i znajduje nowe praktyczne zastosowania. Ilość 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ę. Przykłady zastosowania uczenia maszynowego: • • • ISA oprogramowanie do rozpoznawania mowy: o automatyczne tłumaczenie o rozpoznawanie mowy ludzkiej o dyktowanie komputerowi o interfejsy użytkownika sterowane głosem o automatyzacja głosem czynności domowych o interaktywne biura obsługi o rozwój robotów automatyczna nawigacja i sterowanie: o kierowanie pojazdem (ALVINN) o odnajdywanie drogi w nieznanym środowisku o kierowanie statkiem kosmicznym (NASA Remote Agent) o automatyzacja systemów produkcji i wydobycia (przemysł, górnictwo) analiza i klasyfikacja danych: o systematyka obiektów astronomicznych (NASA Sky Survey) o rozpoznawanie chorób na podstawie symptomów o modelowanie i rozwijanie terapii lekowych Strona 4 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. o o o o o IV. rozpoznawania pisma na podstawie przykładów klasyfikowanie danych do grup tematycznych wg kryteriów aproksymacja nieznanej funkcji na podstawie próbek ustalanie zależności funkcyjnych w danych przewidywanie trendów na rynkach finansowych na podstawie danych mikro i makro ekonomicznych Metody maszynowego uczenia 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ęć. Metody uczenia: • • • • • • • ISA wnioskowanie wartości funkcji logicznej z przykładów uczenie drzew decyzyjnych (ang. Decision Tree Learning) - drzewo decyzyjne to graficzna metoda wspomagania procesu decyzyjnego, stosowana w teorii 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 matematyka Thomasa Bayesa odgrywają znaczną i ostatnio rosnącą rolę w dziedzinie sztucznej 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 wnioskowania probabilistycznego. 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 w np. języku Prolog analityczne uczenie (ang. Analytical Learning) - metody uczenia indukcyjnego (wykorzystują sieci neuronowe, drzewa decyzyjne), wymagają pewnej liczby przykładów aby osiągnąć pewien poziom uogólnienia. Analityczne uczenie stosuje wiedzę aprioryczną i wnioskowanie dedukcyjne 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ólne hipotezy poprzez znalezienie empirycznych 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 Strona 5 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. • V. aprioryczna oraz szukanie zależności w obserwowanych danych uczących do wypracowania szybkiej wiedzy apriorycznej. wzmocnione uczenie (ang. Reinforcement Learning) - wzmocnione uczenie odnosi się do pytania, jak autonomiczny agent, który odbiera bodźce i działa w swoim środowisku może się uczyć wybierać najlepszą akcję aby osiągnąć cel działania. Ten ogólny problem obejmuje takie zadania jak uczenie optymalizacji w fabrykach i uczenie się poprzez aktywny udział w grach. Uczenie nadzorowane i uczenie nienadzorowane Na podstawie kryterium rozróżniającego metody uczenia się na podstawie rodzaju informacji dostarczonej w zbiorze przykładów wyróżnia się: uczenie nadzorowane i uczenie nienadzorowane. Uczenie nadzorowane znane jest również pod pojęciem uczenia z nadzorem lub z nauczycielem. Polega ona na dostarczeniu systemowi uczącemu się przykładów z których każdy składa się z dwóch elementów : informacji wejściowych do systemu i odpowiadających im informacji, które otrzymujemy na wyjściu. Innymi słowy mówiąc, mamy wektor x, którego elementy zwierają informacje dotyczące danego przykładu , które podajemy systemowi na wejście i wektor y który zawiera informacje pożądane na wyjściu. Zadanie systemu polega na nauczeniu się na podstawie informacji zawartych w wektorze x generowania zawartości wektora y. System powinien nauczyć się pewnej funkcji odwzorowującej wektor x na wektor y. Uczenie nienadzorowane znane również jako uczenie bez nadzoru lub bez nauczyciela polega na dostarczenia do systemu zbioru przykładów opisanych jedynie za pomocą wektorów wejściowych x bez podania pożądanych odpowiedzi , czyli bez wektora y. Celem jest zazwyczaj przekształcenie dostarczanej do systemu uczącego się informacji wejściowej w pewne inne formy, lepiej dostosowane do dalszego przetwarzania. Zasada, zgodnie z którą jest dokonywane to przekształcenie, jest ustalona dla danej klasy zadań uczenia się bez nadzoru i wbudowana do struktury systemu. Można więc powiedzieć, że system uczący się bez nadzoru ma na stałe wbudowane źródło informacji trenującej. Typowym przykładem zadania uczenia się bez nadzoru jest zadanie wykrywania pewnych regularności w danych wejściowych i grupowanie ich na tej podstawie w pewne kategorie. Jest to tzw. grupowanie (klasteryzacja) oraz jej "bardziej symboliczna" forma, grupowanie pojęciowe (conceptual clustering). Algorytmy uczenia się bez nadzoru stanowią ważną grupę algorytmów uczenia sieci neuronowych. VI. Podsumowanie Uczenie maszynowe obecnie odgrywa niemałą rolę w tworzeniu systemów (programów komputerowych) i można spodziewać się iż jego wpływ na tą dziedzinę będzie coraz większy z biegiem czasu i rozwojem nauki. Maszynowe uczenie wpływa na zwiększenie poprawności działania systemów przez analizę doświadczenia reprezentowanego przez zbiór przykładów uczących. ISA Strona 6 Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. Literatura „Uczenie maszynowe i sieci neuronowe”, Krzysztof Krawiec, Jerzy Stefanowski Artykuły i materiały zamieszczone w internecie ISA Strona 7