1 Sztuczna Inteligencja: Wspólna dziedzina informatyki i robotyki
Transkrypt
1 Sztuczna Inteligencja: Wspólna dziedzina informatyki i robotyki
1 Sztuczna Inteligencja: Wspólna dziedzina informatyki i robotyki, jako dyscyplin naukowych, których celem badań jest konstrukcja systemów wykonujących zadania wymagające inteligencji Cecha systemów umożliwiająca im wykonywania czynności wymagających inteligencji Nauka o maszynach realizujących zadania wymagające inteligencji, gdy wykonywane są przez człowieka Dyscyplina zajmująca się badaniem właściwości myślenia z wykorzystaniem modeli komputerowych Słaba sztuczna inteligencja – komputer stanowi narzędzie do formułowania i testowania hipotez dotyczących mózgu oraz symulacji czynności umysłowych Mocna sztuczna inteligencja – odpowiednio zaprogramowany komputer jest równoważny mózgowi wraz z jego czynnościami umysłowymi Cechy systemów inteligentnych: Rozwiązywanie problemów Gromadzenie wiedzy Uczenie Komunikacja Percepcja Tworzenie Rodzaje systemów z bazą wiedzy – systemy ekspertowe, systemy maszynowego uczenia, systemy agentowe – regułowe, wnioskujące na podst. przypadków, wnioskujące na podst. modeli Architektura systemów z bazą wiedzy Architektura systemu ekspertowego Składniki systemu ekspertowego to: szkielet systemu składający się z: o interfejsu użytkownika - który umożliwia zadawanie pytań, udzielanie informacji systemowi oraz odbieranie od systemu odpowiedzi i wyjaśnień o edytora bazy wiedzy - który pozwala na modyfikację wiedzy zawartej w systemie, umożliwiając tym samym jego rozbudowę 2 o mechanizmu wnioskowania - który jest głównym składnikiem systemu ekspertowego wykonującym cały proces rozumowania w trakcie rozwiązywania problemu postawionego przez użytkownika o mechanizmu wyjaśniającego - jednego z elementów interfejsu pomiędzy systemem a użytkownikiem, który umożliwia użytkownikowi uzyskanie odpowiedzi dlaczego system udzielił takiej, a nie innej odpowiedzi, albo dlaczego system zadał użytkownikowi określone pytanie baza wiedzy - jest to deklaratywna postać wiedzy ekspertów z danej dziedziny zapisana za pomocą wybranego sposobu reprezentacji wiedzy, najczęściej reguł lub ram baza danych zmiennych - która jest pamięcią roboczą przechowującą pewne fakty wprowadzone w trakcie dialogu z użytkownikiem; baza ta umożliwia odtworzenie sposobu wnioskowania systemu i przedstawienie go użytkownikowi za pomocą mechanizmu wyjaśniającego. Ekstrakcją wiedzy od ekspertów zajmują się na ogół inżynierowie wiedzy. Jest to zwykle długi i żmudny proces, ponieważ wiedza stosowana przez ekspertów ma charakter intuicyjno-praktyczny, często trudny do zwerbalizowania. Role systemów z bazą wiedzy: - Asystentów i doradców - Krytyków - Automatycznych planerów - Projektantów Mechanizmy wnioskowania: Wnioskowanie dedukcyjne(niezawodne , od ogółu do szczegółu) – proces myślowy, polegający na tym, że na podstawie zdań uznanych za prawdziwe dochodzi się do uznania zdania nowego, wyprowadzając je na podstawie praw logiki oraz zgodnie z odpowiednimi regułami wnioskowania z owych zdań uznanych o Wnioskowanie wprzód(progresywne) – wyprowadzanie nowych faktów ze znanych faktów o Wnioskowanie wstecz(regresywne) – dowiedzenie prawdziwości postawionej hipotezy na podstawie posiadanej wiedzy Wnioskowanie indukcyjne(przybliżone, od szczegółu do ogółu) - to takie wnioskowanie, w którym na podstawie wielu przesłanek jednostkowych, stwierdzających, iż poszczególne zbadane przedmioty pewnego rodzaju mają pewną cechę, dochodzi się (przy braku przesłanek negatywnych) do wniosku ogólnego, że każdy przedmiot tego rodzaju taką cechę posiada. Jeśli wiadomo nam, że nie ma innych przedmiotów danego rodzaju oprócz tych, które zostały wymienione w przesłankach jednostkowych, mówimy o wnioskowaniu przez indukcję zupełną; jeśli brak tej dodatkowej wiadomości- mówimy o wnioskowaniu przez indukcję nie zupełną. 3 Opis otaczającego świata = fakty + procedury + relacje Fakty – stwierdzenia w danym języku Procedury – reguły, algorytmy wykorzystywane do interpretacji danych Relacje – zależności i skojarzenia między faktami Rodzaje wiedzy: -deklaratywna(pojęcia, fakty, obiekty) – Co wiemy o problemie? -proceduralna(reguły, strategie, procedury) – Jak rozwiązać problem? -heurystyczna(intuicja, reguły zdroworozsądkowe)- Jakie są doświadczenia w rozwiązywaniu problemu? -strukturalna(związki między koncepcjami, reguły) – Jaka jest struktura wiedzy -metawiedza(wiedza o typach i sposobach użycia) – Wiedza o wiedzy Wiedza ze względu na: - czas (dynamiczna, statyczna) - związki między stanami (faktograficzna, przyczynowa) - strukturę (obiekty, cechy, relacje, …) - kompletność (pełna, niepełna) - wiarygodność (pewna, niepewna) Język reprezentacji wiedzy powinien dawać możliwość: - dodawania nowych zdań (faktów, obiektów, zdarzeń, pojęć) - zadawania pytań o to co jest w bazie wiedzy (dostęp do zgromadzonej wiedzy) Wiedza: Pewna – oparta na faktach i udowodnionych prawdach Niepewna – potwierdzona tylko częściowo faktami i prawdami Rozmyta – granica między prawdą i fałszem jest niejednoznaczna, występują stany pośrednie pomiędzy 0 (fałsz) a 1 (prawda) Język reprezentacji wiedzy jest zdefiniowany przez: Syntaktykę – opisującą jak budować zdania(możliwe konfiguracje, jakie może przyjąć zdanie) Semantykę – określa w jakiej relacji pozostają zdania w stosunku do opisywanego świata(determinuje fakty, do których odnoszą się zdania) Jeżeli syntaktyka i semantyka zostały zdefiniowane precyzyjnie to język taki nazwiemy LOGIKĄ Sposoby reprezentacji wiedzy: 1) Nieformalne a) Reguły(metoda proceduralna) Reprezentacja w postaci <poprzednik, następnik>, <przesłanka,wniosek>,<warunek,akcja> Interpretacja: bodziecreakcja, przyczynaskutek, sytuacjaakcja, następstwo czasowe, definicja(opis). Reguły: proste i złożone, atomowe i ogólne 4 b) Sieci semantyczne(metoda deklaratywna) Sieć semantyczna – graf wyrażający zależność między obiektami(węzły-obiekty, łukizależności) Zastosowanie: logiczna reprezentacja wiedzy(modele danych), logika formalna(dostęp do informacji relewantnej, reprezentacja znaczenia słów i przypadków semantycznych(rozumienie języka naturalnego) + graficzna forma przemawiająca do wyobraźni, oddaje intuicję zależności pojęć i słów + brak formalnych ograniczeń w posługiwaniu się kluczowymi kategoriami: węzła i łuku + łatwość implementacji w językach programowania(LISP, Prolog) + efektywność dostępu do informacji - duża pracochłonność przy opracowywaniu złożonych problemów - ograniczone możliwości odwzorowania wiedzy niepewnej i niepełnej c) Ramy(metoda obiektowa) Rama – struktura danych dla reprezentowania typowej wiedzy o pojęciu lub obiekcie(atrybuty, wartości, procedury). Ramy tworzą hierarchię. Klasa – reprezentacja wiedzy o pewnym odróżnialnym zbiorze obiektów Egzemplarz – reprezentacja wiedzy o konkretnym obiekcie Relacja klasa-podklasa – reprezentacja powiązania IS-A pomiędzy klasą i jej podklasą(generalizacja-kind of, agregacja-part of, asocjacja-semantic) Funkcje – realizują określone zadania Komunikaty – wiadomości przesyłane od jednego obiektu/użytkownika do innego Reguły – akcja jaką może wykonać obiekt Obiekt: sloty-reprezentują własności, metody-operacje możliwe do wykonania na obiekcie Cechy obiektu: własne, dziedziczone(podklasa dziedziczy nazwy i wartości slotów, metody) Dziedziczenie – sposób w jaki obiekty uzyskują informacje od obiektów z nimi powiązanych Zastosowanie: wąska dziedzina i dobrze zdefiniowane powiązania między jej składowymi, wiedza o hierarchicznej strukturze, wymaga mieszanej techniki reprezentacji wiedzy dużym zakresie problemowym Cechy: zorientowane obiektowo, uogólnienie/specjalizacja, wnioskowanie, klasyfikacja d) Scenariusze – opisy stereotypowych ciągów zdarzeń lub działań zachodzących w określonym kontekście. Pozwalają na efektywny zapis wiedzy o złożonych zdarzeniach i ich sekwencjach e) Modele obliczeniowe - adekwatność: reprezentacji i wnioskowania, efektywność: wnioskowania i nabywania wiedzy 2) Formalne a) Rachunek zdań b) Rachunek predykatów c) Rachunek sytuacyjny 5 SIECI NEURONOWE Sieci neuronowe - perceptron Układ nerwowy człowieka od początku był naturalnym źródłem inspiracji dla badaczy sztucznej inteligencji. Stąd zainteresowanie neuronem - podstawową jednostką układu nerwowego. Działanie naturalnych neuronów polega (w znacznym uproszczeniu) na: Przekazywaniu sygnału nerwowego z "wejść" (dendrytów, czyli wypustek komórki nerwowej stykających się z innymi komórkami) do "wyjścia" (neurytu, czyli często bardzo długiej wypustki przekazującej sygnał do kolejnych neuronów). Nieliniowej obróbce sygnału: stan wyjścia nie jest prostą sumą tego, co wpłynęło na wejścia. Modyfikacji połączeń z innymi neuronami poprzez synapsy (elementy łączące), co umożliwia wzmocnienie lub osłabienie sygnału odbieranego z innego neuronu. Podobne cechy miał mieć prosty model matematyczny, tzw. perceptron, opisany niżej. Historycznie celem prac nad sieciami neuronowymi było osiągnięcie zdolności uogólniania (aproksymacji) i uczenia się, właściwej mózgowi ludzkiemu (zgodnie z jedną z definicji sztucznej inteligencji). Obecnie większość zastosowań sztucznych sieci neuronowych koncentruje się na zadaniach znacznie mniej ambitnych, ale dzięki temu realistycznych obecnie sieci neuronowe są od dłuższego czasu wykorzystywane komercyjnie w zadaniach sterowania urządzeniami, rozpoznawania obrazów czy pisma. Perceptron - prosty model naturalnego neuronu - posiada wejścia (n zmiennych wejściowych x1 ,...,xn ) przyjmujące wartości rzeczywiste lub binarne, będące odpowiednikiem dendrytów. Wejścia te albo są połączone z innymi perceptronami, albo stanowią wejścia (np. czujniki) całego układu. Wyjście w przypadku omawianego na tym wykładzie perceptronu stanowi pojedynczą wartość 0 lub 1. Parametry wewnętrzne perceptronu to n wag połączeń w1 ,...,wn (liczb rzeczywistych), symulujących wagi synaps łączących naturalne neurony. Ostatnim parametrem jest wartość odchylenia b (ang. bias) odpowiadająca za nieliniowe przekształcenie wejść w wyjście. Pozyskiwanie wiedzy w sieciach neuronowych: * Uczenie się pojęć – uczenie z nadzorem(z nauczycielem) W trybie uczenia z nauczycielem (nazywanym również uczeniem pod nadzorem) oprócz danych wejściowych posiadamy również sygnały wyjściowe, jakie chcemy uzyskać. Dobór wag musi być przeprowadzony w taki sposób, aby aktualny sygnał wyjściowy y był najbliższy wartości zadanej d. Inaczej mówiąc, celem uczenia pod nadzorem jest minimalizacja odpowiednio zdefiniowanej funkcji celu, która umożliwi dopasowanie wartości aktualnych odpowiedzi neuronów wyjściowych do wartości żądanych. 6 Reguła delta Z Regułą Delta mamy do czynienia, gdy uaktualnianie wag następuje każdorazowo po prezentacji jednej pary uczącej. Gdy uaktualnianie zachodzi po prezentacji wszystkich par uczących mamy wtedy do czynienia z tzw. skumulowaną regułą delta. Reguła Delta polega na tym, że każdy neuron po otrzymaniu na swoich wejściach określonych sygnałów (z wejść sieci albo od innych neuronów, stanowiących wcześniejsze warstwy sieci) wyznacza swój sygnał wyjściowy wykorzystując posiadaną wiedzę w postaci wcześniej ustalonych wartości wag, wartości wejść oraz (ewentualnie) progu. Wartość sygnału wyjściowego, wyznaczonego przez neuron w danym kroku procesu uczenia porównywana jest z odpowiedzią wzorcową podaną przez nauczyciela w ciągu uczącym. Jeśli występuje rozbieżność - neuron wyznacza różnicę pomiędzy swoim sygnałem wyjściowym a tą wartością sygnału, która była by - według nauczyciela prawidłowa. Ta różnica oznaczana jest zwykle symbolem greckiej litery δ (delta) i stąd nazwa opisywanej metody. Sygnał błędu (delta) wykorzystywany jest przez neuron do korygowania swoich współczynników wagowych (i ewentualnie progu), stosując następujące reguły: Reguła perceptronu ??? *Uczenie z krytykiem Uczenie z krytykiem jest odmianą uczenia pod nadzorem, w którym nie występuje informacja o wartościach pożądanych na wyjściu systemu, a jedynie informacja czy podjęta przez system akcja (zmiana wartości wag) daje wyniki pozytywne w sensie pożądanego zachowania systemu, czy negatywne. Jeśli działania podjęte przez układ uczący dają wyniki pozytywny, to następuje wzmocnienie tendencji do właściwego zachowania się systemu w podobnych sytuacjach w przyszłości. W przeciwnym wypadku, jeśli wynik jest negatywny, następuje osłabienie tendencji takiego działania systemu. * Tworzenie pojęć – uczenie bez nadzoru(be z nauczyciela) Stosujemy kiedy cel uczenia nie jest określony przez konkretne, prawidłowe przykłady. Jedyną informacją, która musi wystarczyć jest sama wewnętrzna struktura sygnałów wejściowych (przykładów, przy pomocy których można wytrenować sieć). Na podstawie wewnętrznych zależności w podanych informacjach sieć neuronowa musi stworzyć własne kategorie i będzie rozpoznawać (klasyfikować) podane sygnały wejściowe (generując odpowiednie sygnały na wyjściu). Przy uczeniu bez nadzoru nie ma dostępnej żadnej informacji (ani od nauczyciela, ani od krytyka) opisującej poprawność udzielanej przez sieć odpowiedzi. W dalszym ciągu sieć ma wejścia i wyjścia, ale nie istnieje sprzężenie zwrotne od środowiska. Jednostki i połączenia muszą zatem okazywać pewien poziom samoorganizacji. Uczenie bez nadzoru jest możliwe tylko wtedy, gdy istnieje redudancja danych wejściowych, inaczej dane były by nie do odróżnienia od przypadkowego szumu. Sieci uczone bez nadzoru mogą: 7 Uczenie bez nadzoru stosuje się też do już nauczonych sieci np. z nauczycielem w celu zwiększenia ich możliwości adaptacyjnych, lub w rozwiązaniach hybrydowych (jedna warstwa tak, druga inaczej). Algorytm ewolucyjny - algorytm wzorowany na biologicznej ewolucji, stosowane do zadań optymalizacyjnych i modelowania. Algorytmy ewolucyjne dzielą się na: Algorytmy genetyczne Programowanie genetyczne Programowanie ewolucyjne Przeszukiwanie rozproszone Strategie ewolucyjne Neuroewolucje Zastosowanie algorytmów ewolucyjnych: inżynieria finansowa, predykacja szeregów czasowych, rozpoznawania wzorców, handel elektroniczny itd. Algorytm genetyczny - rodzaj algorytmu przeszukującego przestrzeń alternatywnych rozwiązań problemu w celu wyszukania rozwiązań najlepszych. Sposób działania algorytmów genetycznych nieprzypadkowo przypomina zjawisko ewolucji biologicznej. Problem definiuje środowisko, w którym istnieje pewna populacja osobników. Każdy z osobników ma przypisany pewien zbiór informacji stanowiących jego genotyp, a będących podstawą do utworzenia fenotypu. Fenotyp to zbiór cech podlegających ocenie funkcji przystosowania modelującej środowisko. Innymi słowy - genotyp opisuje proponowane rozwiązanie problemu, a funkcja przystosowania ocenia, jak dobre jest to rozwiązanie. Genotyp – określa budowę i funkcjonowanie organizmu żywego Fenotyp – określa konkretną realizację genotypu Genotyp składa się z chromosomów, gdzie zakodowany jest fenotyp i ewentualnie pewne informacje pomocnicze dla algorytmu genetycznego. Chromosom składa się z genów. Wspólnymi cechami algorytmów ewolucyjnych, odróżniającymi je od innych, tradycyjnych metod optymalizacji, są; stosowanie operatorów genetycznych, które dostosowane są do postaci rozwiązań, przetwarzanie populacji rozwiązań, prowadzące do równoległego przeszukiwania przestrzeni rozwiązań z różnych punktów, w celu ukierunkowania procesu przeszukiwania wystarczającą informacją jest jakość aktualnych rozwiązań, celowe wprowadzenie elementów losowych. 8 Operatory przeszukiwania W każdym cyklu (każde pokolenie) poddawane są "obróbce" za pomocą operatorów ewolucyjnych. Celem tego etapu jest wygenerowanie nowego pokolenia, na podstawie poprzedniego, które być może będzie lepiej dopasowane do założonego środowiska. Operator krzyżowania ma za zadanie łączyć w różnych kombinacjach cechy pochodzące z różnych osobników populacji, zaś operator mutacji ma za zadanie zwiększać różnorodność tych osobników. O przynależności dowolnego algorytmu do klasy algorytmów genetycznych decyduje głównie zastosowanie operatora krzyżowania i praca z całymi populacjami osobników (idea łączenia w przypadkowy sposób genotypów nieprzypadkowo wybranych osobników). Równie ważny jest operator mutacji. Jeśli krzyżowanie traktować jako sposób eksploatacji przestrzeni rozwiązań, to mutacja jest sposobem na jej eksplorację. Może się jednak zdarzyć, że dla niektórych zagadnień jej zastosowanie nie jest krytyczne. Krzyżowanie polega na połączeniu niektórych (wybierane losowo) genotypów w jeden. Kojarzenie ma sprawić, że potomek dwóch osobników rodzicielskich ma zespół cech, który jest kombinacją ich cech (może się zdarzyć, że tych najlepszych). Sposób krzyżowania jest zależny od kodowania chromosomów i specyfiki problemu. Współczynnik krzyżowania powinien być wysoki ok 80-95% Mutacja wprowadza do genotypu losowe zmiany. Jej zadaniem jest wprowadzanie różnorodności w populacji, czyli zapobieganie (przynajmniej częściowe) przedwczesnej zbieżności algorytmu. Mutacja zachodzi z pewnym przyjętym prawdopodobieństwem zazwyczaj rzędu 1%. Jest ono niskie, ponieważ zbyt silna mutacja przynosi efekt odwrotny do zamierzonego: zamiast subtelnie różnicować dobre rozwiązania - niszczy je. Stąd w procesie ewolucji mutacja ma znaczenie drugorzędne, szczególnie w przypadku długich chromosomów. Współczynnik mutacji powinien być bardzo niski ok 0,5-1% Zastosowanie algorytmów genetycznych: * Rozwiązywanie problemów NP. * Projektowanie genetyczne * Projektowanie obwodów elektrycznych * Przeszukiwanie (Algorytmy genetyczne zapewniają skuteczne mechanizmy przeszukiwania dużych przestrzeni rozwiązań. Ponieważ grupowanie należy do tej kategorii zadań to oczywiste jest, że algorytmy genetyczne stosowane są w grupowaniu. Algorytmy genetyczne są bardziej niezależne od wstępnej inicjalizacji oraz mniej skłonne do znajdowania lokalnych rozwiązań w miejsce optymalnych. Przykładem może być zagadnienie grupowania w którym w miejsce klasycznych algorytmów z powodzeniem stosuje się algorytmy genetyczne.) Programowanie genetyczne – rozszerzenie algorytmu genetycznego w sensie złożoności zadań, które stawiane są za cel oraz złożoności struktur na które pracuje 9 Strategie ewolucyjne Koncepcja algorytmów w sensie behawioralnym – koncentracja na analizie podobieństw zachowań między rodzicem a potomkiem lub szerzej pomiędzy populacją rodziców i potomków Reprezentacja rozwiązań – wektory, w których reprezentacja poszczególnych elementów rozwiązania jest przedstawiona za pomocą liczb rzeczywistych. Każdy element postrzegany jest jako cecha behawioralna a nie jako gen Ewolucja chromosomów – zmiana dokonywana w trakcie procesu ewolucji losowo zmienia każdą cechę behawioralną zgodnie z rozkładem normalnym PLEIOTROPIA – właściwość genetyczna powodująca, że pojedynczy gen może wywołać wiele zachowań fenotypowych, tzn. może być odpowiedzialny za wiele cech rzeczywistych POLYGENIA – właściwość genetyczna powodująca, że pojedyncza cecha może być zdeterminowana przez wzajemne oddziaływanie wielu genów W modelu tym występuje zmiana wszystkich składników osobnika rodzicielskiego w procesie kreacji potomka. Strategie ewolucyjne: * 1+1 – 1 rodzic tworzy 1 potomka, chromosomy współzawodniczą ze sobą * µ+λ – µ chr. Rodzicielskich tworzy λ chr. potomnych, współzawodniczą ze sobą, a najlepsze wybierane zostają do nowej populacji * µ,λ – o przetrwanie rywalizuje λ chr. potomnych, które następnie zastępują chr. rodzicielskie Inne niż algorytmy genetyczne: * znaczenie przypisywane jest operatorom genetycznym * reprodukcja dokonywana jest deterministycznie * inny sposób wykorzystania mutacji(Schwefel) Zastosowania Strategii ewolucyjnych: * optymalizacja przepływu prądu w sieci elektrycznej(min. Strat energii) * optymalizacja systemu stymulatora serca * optymalizacja procesów fermentacyjnych Programowania ewolucyjne – obejmuje bardziej złożone problemy dotyczące inteligentnych zachowań rozumianych w sensie zdolności do przewidywania reakcji pomiędzy środowiskiem a działaniem ukierunkowanym na określony cel. Wykorzystaną do tego reprezentacją mogą być automaty komórkowe ze skończoną liczbą stanów. Reprezentacje używane w programowaniu ewolucyjnym są zwykle dopasowane do domeny problemu. Najczęściej wykorzystywaną reprezentacją jest utworzony z liczb rzeczywistych wektor o stałej długości. Zasadnicza różnica między programowaniem ewolucyjnym a innymi podejściami (GA, GP, ES) polega na tym, że nie zachodzi tu wymiana materiału pomiędzy poszczególnymi członkami populacji. Wykorzystywana jest jedynie mutacja.