1 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Sztuczna inteligencja „Inteligencja to zdolność uczenia się i rozwiązywania problemów ” Główne działy sztucznej inteligencji: 1. Wnioskowanie : • Wykorzystanie logiki formalnej (np. rachunku zdań, rachunku predykatów pierwszego rzędu) do uzyskania efektywnych algorytmów dedukcji. • Mechaniczne wyprowadzanie logicznych konsekwencji bazy wiedzy za pomocą reguł wnioskowania. • Metody automatycznego wnioskowania znalazły zastosowanie w systemach eksperckich i systemach dowodzenia twierdzeń. 2. Przeszukiwanie : • Problem jest opisywany przez przestrzeń możliwych stanów z wyróżnionymi stanami końcowymi odpowiadającymi dopuszczalnym rozwiązaniom oraz przez zestaw operatorów, umożliwiających poruszanie się w przestrzeni stanów. • Znalezienie rozwiązania optymalnego sprowadza się do znalezienia najlepszej (według określonego kryterium) sekwencji operatorów przeprowadzających stan początkowy w jeden ze stanów końcowych. c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 2 3. Planowanie : • Znalezienie planu rozwiązania problemu w sposób bardziej efektywny niż przeszukiwanie przestrzeni stanów, na podstawie dostarczonej systemowi planowania wiedzy o efektach działania poszczególnych operatorów. • Wiedza ta opisuje zmiany w stanie problemu, jakie powoduje zastosowanie każdego operatora. 4. Uczenie się : • Autonomiczna zmiana w postrzeganiu (percepcji) i reakcji systemu zachodząca w wyniku jego doświadczeń, zazwyczaj na podstawie określonej motywacji, która prowadzi do poprawy jakości jego działania. • Uczenie się jest jednym z podstawowych atrybutów naturalnej lub sztucznej inteligencji, z którym związana jest adaptacyjność i autonomiczność działania. 3 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Sztuczna inteligencja w robotyce Cechy „inteligentnego” robota: • Percepcja otoczenia – automatyczne rozpoznawanie i interpretacja sygnałów, w szczególności rozpoznawanie i przetwarzanie obrazów. • Wyższe zdolności poznawcze: – Reprezentacja wiedzy – jak robot powinien opisywać siebie, swoje środowisko oraz zadanie (symboliczna reprezentacja świata: kategorie, jednostki, relacje, kojarzenie symboli z fizycznymi obiektami). – Wnioskowanie – generowanie odpowiedzi, gdy dostępna jest niepełna informacja (wnioskowanie o stanie, warunkach, wynikach działania). – Przeszukiwanie – przeszukiwanie bazy wiedzy, poszukiwanie obiektów w środowisku, itp. – Planowanie i rozwiązywanie problemów – planowanie misji, zadania, ścieżki. – Komunikacja z otoczeniem – rozpoznawanie i synteza mowy, rozumienie naturalnego języka, konwersacja z człowiekiem. – Uczenie się i adaptacja – nabywanie nowej wiedzy, doświadczeń i umiejętności. Powyższe cechy zapewniają autonomię robota czyli zdolność do samodzielnego działania w środowisku. 4 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Uczenie się Definicja: Uczenie się jest to każda autonomiczna zmiana w percepcji i reakcji systemu (organizmu) zachodząca w wyniku jego doświadczeń, zwykle na podstawie jakiejś motywacji, która prowadzi do poprawy jakości jego działania. Powyższa definicja jest niezbyt precyzyjna: • Warunki określające zmianę można stosunkowo łatwo zdefiniować i obiektywnie zweryfikować. • Dla określenia poprawy jakości działania należy wprowadzić odpowiednie kryterium/kryteria oceny oraz jakich aspektów działania systemu ocena ma dotyczyć. • Ocena autonomiczności zmian oraz to czy zachodzą one na podstawie doświadczeń jest, w ogólnym przypadku, problematyczna. Inna definicja uczenia się: Uczenie się to zdobywanie wiedzy lub poprawianie umiejętności na podstawie doświadczeń, obserwacji lub nauczania. 5 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Składniki systemu uczącego się: • element uczący się – odpowiada za poprawę jakości (decyduje w jaki sposób powinien być modyfikowany element wykonawczy aby uzyskać w poprawę w przyszłości) • element wykonawczy – odpowiada za wybór akcji (wykorzystuje obserwacje i decyduje o działaniach) • generator działań – proponuje działania, które prowadzą do uzyskania nowych doświadczeń • krytyk – odpowiada za ocenę działania elementu uczącego (wykorzystuje ustalony standard wykonania określany jako definiowanie zbioru wybranych obserwacji, które będą traktowane jako realizacja bezpośredniego sprzężenia od jakości zachowania agenta) Standard wykonania Czujniki Element ucz¹cy siê Element wykonawczy Generator dzia³añ Efektory Œrodowisko Krytyk Agent/robot Rys. 1: Ogólny schemat uczenia się agenta 6 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Uczenie się a adaptacja Adaptacja jest to dostosowanie się do funkcjonowania w środowisku przez „dostrojenie” parametrów i/lub struktury na podstawie bieżącej informacji. + Uk³ad Sterowania Uchyb Obiekt Algorytm Adaptacji Rys. 2: Ogólna architektura sterowania adaptacyjnego 7 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Kryteria klasyfikacji rodzajów uczenia się Wybrane kryteria klasyfikacji rodzajów uczenia się (systemów uczących się): • Metoda reprezentacji wiedzy lub umiejętności – drzewa decyzyjne, reguły, formuły logiki predykatów, rozkłady prawdopodobieństw, automaty skończone. • Sposób wykorzystania wiedzy lub umiejętności – zazwyczaj sposób użycia wiedzy określony jest przez metodę reprezentacji wiedzy oraz cel, najczęściej jest to klasyfikacja, aproksymacja i modelowanie środowiska. • Źródło i postać informacji trenującej: – uczenie się z nadzorem – źródłem informacji jest nauczyciel, – bez nadzoru – brak informacji trenującej; • Mechanizm nabywania i doskonalenia wiedzy lub umiejętności: – indukcja – podejście do wnioskowania polegające na uogólnieniu jednostkowej informacji trenującej w celu uzyskania ogólnej wiedzy, – przypisanie zasługi – występujące przy uczeniu się ze wzmocnieniem i polegające na określeniu wpływu poszczególnych akcji na otrzymane nagrody. 8 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Klasyfikacje uczenia się • Sposoby uczenia się – uczenie się z nadzorem (supervised learning), – uczenie się ze wzmocnieniem (reinforcement learning), – bez nadzoru (unsupervised learning) • Reprezentacje: numeryczne lub symboliczne – operowanie funkcjami numerycznymi – operowanie reprezentacjami symbolicznymi • Indukcyjne lub dedukcyjne – indukcyjne: uogólnianie na podstawie przykładów – dedukcyjne: wykorzystanie wiedzy ogólnej do wyciągania konkretnych wniosków 9 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Tworzenie systemu uczenia się Projektowanie elementu uczącego zależy od następujących czynników: • Które składniki elementu wykonawczego są poprawiane? • Jaką reprezentację wykorzystano do opisu tych składników? • Jakie jest dostępne sprzężenie zwrotne? • Jaka wiedza jest wcześniej dostępna? Składniki wykorzystywane do budowy elementu wykonawczego: 1. Bezpośrednie odwzorowanie bieżącego stanu na akcje. 2. Sposób określania odpowiednich własności środowiska na podstawie ciągu obserwacji. 3. Informacja o tym jak zmienia się środowisko. 4. Informacja o wynikach akcji, które może wykonać agent. 5. Informacja użyteczności wskazująca pożądaność stanów środowiska. 6. Informacja wartości akcji wskazująca pożądaność pewnych akcji w poszczególnych stanach. 7. Cele opisujące klasy stanów, których osiągnięcie maksymalizuje użyteczność agenta. 10 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Każdy z powyższych składników może być opisany za pomocą funkcji i nauczony, przy założenie, że jest dane odpowiednie sprzężenie zwrotne. Często uczenie się może być traktowane jako uczenie się opisu odwzorowania (funkcji). Wejœcia Odwzorowanie ? Wyjœcia Rys. 3: Uczenie się odwzorowania Odwzorowania mogą być reprezentowane przez zdania logiczne, wielomiany z wagami, sztuczne sieci neuronowe, i in. 11 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Co umożliwia uczenie się? • Wprowadzenie nowej wiedzy (fakty, zachowania, reguły) do systemu • Uogólnienie pojęć • Specjalizację pojęć • Tworzenie lub odkrywanie nowych pojęć • Reorganizację informacji • Tworzenie wyjaśnień • Wykorzystywanie wcześniejszych doświadczeń Stosowana terminologia: • nagroda/kara – dodatnie/ujemne „sprzężenie” • funkcja kosztu (miara jakości) – wskaźnik jakości uczenia się • indukcja – generacja funkcji (hipotezy) aproksymującej przykłady • nauczyciel/krytyk – element zapewniający sprzężenie • obiekt/model – system (agent, robot), który uczy się 12 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Uczenie się indukcyjne Uczenie się indukcyjne polega na uogólnieniu obserwacji, przykładów, jednostkowej informacji trenującej w celu przewidywania nowych obserwacji, uzyskania ogólnej wiedzy. Wyróżniamy trzy rodzaje uczenia się indukcyjnego: • uczenie się pojęć (klasyfikacja przykładów) – pojęcie to jedna z postaci wiedzy o świecie, używana do interpretowania zmysłowych obserwacji oraz abstrakcyjnych idei, pojęcia służą do klasyfikowania pewnych obiektów na grupy, zwane kategoriami; • tworzenie pojęć (grupowanie przykładów) – grupowanie pojęciowe: podział przykładów trenujących na grupy i nauczenie się odpowiadających tym grupom pojęć, • uczenie się aproksymacji funkcji – uczenie się nieznanej funkcji na podstawie par: argument, wartość funkcji. Praktyczne algorytmy uczenia się: indukcja drzew decyzyjnych, sieci bayesowskie. 13 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Tryby uczenia się indukcyjnego: • tryb inkrementacyjny (uczenie się ciągłe, na bieżąco) – przykłady trenujące dostarczane są na bieżąco, po przetworzeniu przykładu uczeń poprawia swą hipotezę, można w każdej chwili przerwać proces uczenia; • tryb wsadowy (uczenie się jednorazowe) – uczeń otrzymuje cały zbiór trenujący i przetwarza go, nie ma żadnych interakcji z nauczycielem lub otoczeniem; • tryb epokowy (hybrydowy tryb łączący cechy trybów wsadowego i inkrementacyjnego – proces uczenia jest zorganizowany w cykle zwane epokami); • tryb korekcyjny (szczególna odmiana trybu inkrementacyjnego) – ma zastosowanie tylko w przypadku uczenia się z nadzorem (tj. uczenia się pojęć i aproksymacji funkcji). Uczeń otrzymuje najpierw przykład nieetykietowany, dla którego ma wyznaczyć za pomocą swojej aktualnej hipotezy kategorię albo wartość funkcji docelowej. Odpowiedź ucznia jest porównywana z etykietą przykładu, po czym przekazuje się mu informację korekcyjną. 14 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Uczenie się ze wzmocnieniem Uczenie się ze wzmocnieniem (reinforcement learning) jest to: Uczenie się celowego zachowania przez inteligentnego agenta na podstawie dynamicznych oddziaływań ze środowiskiem, na ogół nieznanym mu wcześniej, często niedeterministycznym, a także niestacjonarnym. Źródłem informacji o charakterze wartościującym jakość działania agenta jest krytyk (nie uczy lecz tylko ocenia agenta). Modelem matematycznym zadania uczenia się ze wzmocnieniem jest problem decyzyjny Markowa. Jest to problem znalezienia optymalnej strategii decyzyjnej dla środowiska, którego modelem z kolei jest proces stochastyczny Markowa. Proces decyzyjny Markowa jest definiowany jako czwórka (S, A, ρ, δ), gdzie: • S jest skończonym zbiorem stanów; • A jest skończonym zbiorem akcji; • ρ : S × A → R jest funkcją wzmocnienia, której wartość jest zmienną losową o wartościach rzeczywistych, oznaczającą nagrodę otrzymywaną po wykonaniu akcji a ∈ A w stanie s ∈ S; • δ : S × A → Π(S) jest funkcją stanu przejść, gdzie element Π(S) jest rozkładem prawdopodobieństwa na zbiorze S (następny stan po wykonaniu a ∈ A w stanie s ∈ S). Oznacza się jako δ(s, a, s′) prawdopodobieństwo przejścia ze stanu s do stanu s′ przy użyciu akcji a. Własność Markowa: Wartości funkcji wzmocnienia ρ i funkcji przejść δ nie zależą od historii, ponieważ ich argumentami są bieżący stan i akcja. 15 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Nagroda/kara Œrodowisko Stan Agent Akcja Rys. 4: Schemat uczenia się ze wzmocnieniem Ogólny schemat algorytmu uczenia się ze wzmocnieniem: 1. Dla ∀t, t = 0, . . . , T wykonaj kroki 2–6 2. obserwuj aktualny stan st, 3. wybierz akcję at do wykonania w stanie st, 4. wykonaj akcję at 5. obserwuj wzmocnienie rt i następny stan st+1, 6. ucz się na podstawie doświadczenia {st, at, rt, st+1} 7. Stop 16 c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 Zasady działania algorytmu: • Zadanie agenta polega na wybieraniu akcji, które prowadzą do maksymalizacji wskaźnika jakości zdefiniowanego za pomocą otrzymywanych przez niego nagród (wzmocnienia). • Rodzaj wskaźnika decyduje o typie uczenia się ze wzmocnieniem. • Najczęściej rozważa się problem uczenia się z opóźnionym wzmocnieniem, w którym wymagane jest uwzględnienie przez agenta opóźnionych skutków wykonywanych przez niego akcji. • W odróżnieniu zaś uczenie się z natychmiastowym wzmocnieniem polega tym, że system uczący się maksymalizuje nagrody otrzymywane bezpośrednio po wykonanych akcjach i pomija opóźnione skutki tych akcji. • Najczęściej jako wskaźnik jakości przyjmuje się wartość oczekiwaną zdyskontowanej sumy otrzymanych nagród: V ∗(s) = max Eπ π ∞ Ø t=0 γ t rt (1) gdzie π jest strategią (π : S Ô→ A), zaś γ ∈ [0, 1] jest współczynnikiem dyskontowania, który określa względną wagę krótkoterminowych i długoterminowych nagród. Celem robota/ucznia jest znalezienie strategii optymalnej π ∗. • Często ocenia się nie tylko stany, ale także pary stan-akcja i wówczas wskaźnik jakości ma postać: ∗ ρ(s, a) + V (s) = max a Ø s′ ∈S ′ ∗ ′ δ(s, a, s )V (s ) , ∀s ∈ S (2) c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 17 Funkcja wartości akcji ze względu na strategię przyporządkowuje każdej parze akcja-stan oczekiwaną wartość zdyskontowanej sumy przyszłych nagród. • Środowisko uczenia się jest niepewne i nieznane uczniowi i nie jest przez niego kontrolowane. Specyfika uczenia się ze wzmocnieniem: • Informacja trenująca ma charakter wartościujący. • Informacja trenująca określa cel zadania, a nie sposób jego realizacji. • Uczenie się następuje na podstawie prób i błędów. • Uczenie się wykonywania zadanie i jego faktyczne wykonywanie odbywa się łącznie. Nie na rozdziału fazy uczenia się od fazy stosowania uzyskanej wiedzy lub umiejętności. c Wstęp do Robotyki – ¥W. Szynkiewicz, 2009 18 Inne metody uczenia się: • uczenie się automatów • uczenie sieci (sztuczne sieci neuronowe, sieci bayesowskie)– dobór wag sieci na podstawie przykładów trenujących. • uczenie się ewolucyjne – przeszukiwanie przestrzeni populacji osobników (hipotez) w celu znalezienia maksimum funkcji dopasowania. Potencjalne rozwiązania problemu zakodowane z wykorzystaniem specyficznych struktur danych, które są przetwarzane algorytmami ewolucyjnymi.W skład algorytmu wchodzi strategia selekcja (zazwyczaj losowa) osobników oraz reprodukcja, która jest realizowana przez krzyżowanie i mutację. • uczenie się na podstawie eksperymentów • uczenie się oparte na wielu strategiach