Metody komputerowe w inżynierii komunikacyjnej Sztuczna inteligencja * Generalnie ludzie są równi, ale jedni bardziej, drudzy mniej... główną podstawą opracowania były: - wykłady dr W. Tracza, SGGW, - http://www.ai.c-labtech.net/sn doc. dr inż. Tadeusz Zieliński r. ak. 2016/17
wprowadzenie sieci neuronowe systemy eksperckie Układ wykładu
Wprowadzenie definicje podstawy dziedziny
Wprowadzenie Definicje inteligencja: cecha umysłu warunkująca sprawność czynności poznawczych, takich jak myślenie, rozwiązywanie problemów ogólna zdolność adaptacji do nowych warunków i wykonywania nowych zadań dostrzeganie zależności, relacji sztuczna inteligencja dział nauki zajmujący się regułami rządzącymi inteligentnymi zachowaniami człowieka (np. postrzeganiem, uczeniem się) i tworzeniem modeli formalnych tych zachowań
Wprowadzenie Podstawy wyróżniki: człowiek kreatywność komputer szybkość wykonywania algorytmów czy można coś nazwać sztuczną inteligencją test Turinga możliwość rozróżnienia, czy na zadawane pytania odpowiada człowiek, czy maszyna komputer tworzący muzykę Mozarta
sieci neuronowe systemy eksperckie Wprowadzenie Dziedziny logika rozmyta uogólnienie logiki zero jedynkowej, ciągłość pomiędzy fałszem a prawdą algorytmy ewolucyjne przeszukiwanie przestrzeni rozwiązań problemu w celu wyszukania rozwiązań najlepszych; sposób działania przypomina zjawisko ewolucji lepszy szybciej się rozwija robotyka
wprowadzenie modele neuronów struktura sieci proces badawczy uczenie sieci oprogramowanie zastosowanie historia literatura Sieci neuronowe
Wprowadzenie zwane też sztuczne sieci neuronowe (SSN) zasada działania symulacja pracy uproszczonego modelu systemu nerwowego, neuronów komórek nerwowych mózgu definicja system składający się z: elementów przetwarzających informacje (neuronów) powiązań (zależności miedzy nimi) cechy charakterystyczne podział
Wprowadzenie cechy charakterystyczne zalety wady bardzo istotną cechą jest metoda uczenia sieci miary jakości sieci: liczba neuronów liczba połączeń szybkość działania
Wprowadzenie Wprowadzenie zalety możliwość rozwiązania problemu z pominięciem etapu budowy algorytmu (jednak trzeba zdefiniować strukturę sieci) równoległe wykonywanie obliczeń szybkości obliczeń inteligencja : możliwość uczenia się modyfikacja parametrów neuronów tak, by zwiększyć efektywność sieci w rozwiązywaniu zadań danego typu możliwość przetwarzania informacji niekompletnych, rozmytych, chaotycznych, sprzecznych możliwość generalizacji, interpolacji działa zawsze jako całość poprawne działanie nawet po uszkodzeniu części sieci całą swoja wiedzę może zyskiwać wyłącznie w trakcie nauki i nie musi mieć z góry zadanej, precyzyjnie określonej zasady, dopasowanej do stawianych jej zadań
Wprowadzenie Wprowadzenie wady brak możliwości śledzenia przebiegu rozwiązania (sieć neutronowa = czarna skrzynka) brak precyzji (wyniki przybliżone) sieć musi mieć wystarczający stopień złożoności, żeby w jej strukturze można było w toku uczenia wytworzyć potrzebne połączenia i zależności niemożliwość stosowania rozumowania wieloetapowego
Wprowadzenie podział według technologii: fizyczne (układy scalone) matematyczne (programy komputerowe)
pojedynczy neuron funkcja aktywacji Sieci neuronowe Modele neuronów
Modele neuronów pojedynczy neuron do wejść doprowadzane są sygnały x j dochodzące z neuronów poprzedniej warstwy każdy sygnał x j mnożony przez wagę w ij (określa udział w tworzeniu sygnały wyjściowego y i ) N s i = w ij x j j=1 S i zsumowane iloczyny sygnałów i wag = argument funkcji aktywacji neuronu F(s i ) wartość na wyjściu
Modele neuronów funkcja aktywacji skok jednostkowy funkcja progowa, wyjście: (tak-nie) liniowa nieliniowa (duże zdolności uczenia się)
Struktura sieci struktura sieci sposób połączenia neuronów i ich współdziałania typy struktury sieci: kryterium kierunku przepływu sygnału: jednokierunkowe rekurencyjne kryterium liczby warstw neuronów: jednowarstwowe wielowarstwowe złożone podsumowanie
Struktura sieci rekurencyjne występuje sprężenie zwrotne między warstwą wejściowa a wyjściową mogą być: jednowarstwowe wielowarstwowe proces dynamiczny (zmienność w czasie) nieliniowy źródło: W. Tracz Sztuczne sieci neuronowe
Struktura sieci jednowarstwowe neurony są ułożone w jednej warstwie zasilanej z węzłów wejściowych
Struktura sieci jednowarstwowe Możliwości możliwości rozwiązywanie zadań liniowo separowanych przykład: 2 wejścia (para liczb) 1 wyjście: wartość 1 = tak = wartość -1 = nie = rozwiązywalne nierozwiązywalne źródło: http://nrn.prv.pl
Struktura sieci wielowarstwowe występuje 1 3 ukrytych warstw neuronów pośredniczących między wejściem a wyjściem sygnał z wejścia nie dociera bezpośrednio do wszystkich neuronów daje zdolność generalizacji
Struktura sieci wielowarstwowe przykład: wartość 1 = tak = Możliwości sieć 2-warstwowa nieliniowa spójny, wypukły układ wyjść liczba linii ograniczających obszar zależy od liczby neuronów w sieci sieć 3-warstwowa nieliniowa dowolny układ powierzchni wyjść źródło: http://nrn.prv.pl
Struktura podsumowanie zawsze występuje warstwa wejściowa i wyjściowa liczba neuronów w tych warstwach jest określona przez model rozwiązywanego problemu liczba neuronów w warstwach ukrytych wpływa na poziom możliwości rozwiązania problemu (jakość): za mała niezdolność sieci do zgromadzenia dostatecznej wiedzy o problemie za duża zbyt dokładne zapamiętywanie danych treningowych problemy z uogólnieniami, rozwiązywaniem problemów niewyuczonych dobiera się eksperymentalnie
Proces badawczy zdefiniowanie analizowanego problemu zdefiniowanie modelu (czynniki, opisujące je dane, zmienne wejściowe i wyjściowe) budowa sieci uczenie sieci faza treningowa testowanie sieci weryfikacja jej możliwości wykorzystanie sieci reagowanie na bodźce wejściowe
Proces badawczy budowa sieci wybór struktury liczba warstw liczba neuronów w każdej warstwie postacie funkcji przejścia
Uczenie sieci uczenie sieci wymuszenie na niej określonej reakcji na zadane sygnały wejściowe (dostosowanie wag) metody uczenia: z nauczycielem pod nadzorem z krytykiem odmiana metody z nauczycielem bez nauczyciela (samoorganizujące się) problemy
Uczenie sieci z nauczycielem dane wejściowe i wyjściowe są znane zasada uczenia się dobór wag, aby sygnał wyjściowy Y był najbliższy zadanej wartości d (błąd wpływa na zmianę wagi); optymalizacja szukanie min. f. celu uczenie testowanie źródło: W. Tracz Sztuczne sieci neuronowe
Uczenie sieci z krytykiem (ze wzmocnieniem) odmiana metody z nauczycielem nie ma informacji o konkretnych wartościach pożądanych na wyjściu jest informacja czy podjęta przez sieć akcja idzie w dobrym kierunku (jest baza wiedzy) jeśli zmiana wartości wag daje na wyjściu: poprawę wartości system chwalony (następuje wzmocnienie tendencji do takiego zachowania systemu) pogorszenie wartości system karcony (osłabienie tendencji) bardziej uniwersalne trudniejsze
Uczenie sieci bez nauczyciela zasada uczenia wzmacnianie sygnału: pierwszy sygnał losowy, następnie dążenie do ich wzmocnienia: silna odpowiedź pozytywna reagują wzmocnieniem sygnału pozytywnego słaba odpowiedź reagują tłumieniem sygnału silna odpowiedź negatywna reagują wzmocnieniem sygnału negatywnego
Uczenie sieci problemy podział zbioru danych: uczący do przyjęcia odpowiednich wag testowy weryfikacja prawidłowości pracy sieci wielkość zbioru uczącego: zbiór danych powinien obejmować wartości rozrzucone po całym obszarze problemu liczba przypadków uczących powinna być kilka razy większa niż liczba połączeń w sieci początkowe wartości wag zwykle nadawane losowo czas uczenia sieci zależy od trudności problemu
Oprogramowanie najczęściej symulatory sieci neuronowych przykłady: Neuronix (AITECH) http://aitech.pl/content/view/51/39/lang,iso-8859-2/ Statistica Neural Network (StatSoft Polska) http://www.statsoft.pl/stat_nn.html SPSS Neural Connection (SPSS inc.) http://www.spss.pl/spss/spss16.html#nn
Zastosowanie kiedy warto? przykłady zastosowania: technika inne
ogólnie: Sieci neuronowe Zastosowanie kiedy warto? nie ma algorytmu lub czas rozwiązania za jego pomocą jest zbyt długi dane są nie tylko w postaci numerycznej ale i symbolicznej wiedza jest niepewna typy problemów: przewidywanie zachowania na podstawie stanu wyjściowego rozpoznawanie cech i klasyfikacja (kojarzenie) rozpoznawanie obiektów o charakterze losowym, zniekształconych, odtwarzanie obrazów z fragmentów (znaki, obrazy, mowa, fale elekromagnetyczne), filtrowanie sygnałów sterowanie, działania dostosowujące się do sytuacji (sterowanie robotami, systemy eksperckie) zagadnienia optymalizacyjne (problem komiwojażera)
Zastosowanie technika prognozowanie teoria sterowania robotyka, automatyka, sterowanie, podejmowanie decyzji kierowanie pojazdami bezzałogowymi optymalizacja rozpoznawanie ruchu diagnostyka elementów systemy eksperckie ruch lotniczy prześwietlanie bagaży drogi szynowe: prognozowanie trwałości nawierzchni wprowadzenie ograniczenia V pociągów w okresie wysokich temperatur diagnostyka kolejowa, konieczność szlifowania szyn
ekonomia: Sieci neuronowe Zastosowanie inne prognozowanie (giełda, ceny, rozwój firm, branż, regionów) wykrywanie powiązań (przyczyny niepowodzeń) optymalizacja pozostałe: rozpoznawanie znaków rozpoznawanie twarzy wykrywanie nowotworów wykrywanie fałszerstw bankowych
Zastosowanie rozpoznawanie znaków* prosty przykład 4 znaki rozpoznawanie liter więcej: http://www.ai.c-labtech.net/sn > Rozpoznawanie 26 liter *źródło: http://www.ai.c-labtech.net/sn
Zastosowanie rozpoznawanie znaków założenia: rozpoznawanie 4 znaków: X, 0, +,- znaki zapisane w matrycy 3 * 3 X = układ znaków ciąg uczący dobór parametrów sieci korzystanie z sieci źródło: http://www.ai.c-labtech.net/sn > Rozpoznawanie znaków
Zastosowanie rozpoznawanie znaków Układ znaków układ znaku liniowe rozwinięcie, wektor wejściowy źródło: http://www.ai.c-labtech.net/sn > Rozpoznawanie znaków
Zastosowanie rozpoznawanie znaków Ciąg uczący (z nauczycielem) wektor wejściowy znak wektor wyjściowy (numer znaku) 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 źródło: http://www.ai.c-labtech.net/sn > Rozpoznawanie znaków
Zastosowanie rozpoznawanie znaków Dobór parametrów sieci liczba wejść: matryca 3 * 3 rozwinięcie w wektor 9 pozycji 9 wejść liczba wyjść: rozpoznawanie 4 znaków wektor wyjściowy 4 pozycje 4 wyjścia liczba warstw ukrytych i zawartych w nich neuronów: metoda prób i błędów (są wzory sugerujące wartość początkową) kryteria: poprawność odczytu i szybkość uczenia się wynik: jedna warstwa ukryta z 5 neuronami ostateczna organizacja sieci: 9 5 4
Zastosowanie rozpoznawanie znaków Korzystanie z sieci rozpoznawanie również symboli zniekształconych zniekształcony znak wektor wejściowy rozpoznany znak źródło: http://www.ai.c-labtech.net/sn > Rozpoznawanie znaków
Zastosowanie rozpoznawanie liter założenia: rozpoznawanie 26 liter znaki zapisane w matrycy 7 * 5 A = dobór parametrów sieci korzystanie z sieci źródło: http://www.ai.c-labtech.net/sn > Rozpoznawanie znaków
Zastosowanie rozpoznawanie liter Dobór parametrów sieci liczba wejść: matryca 7 * 5 rozwinięcie w wektor 35 pozycji 35 wejść liczba wyjść: rozpoznawanie 26 liter wektor wyjściowy 26 pozycji 26 wyjść liczba i parametry neuronów w warstwie ukrytej ostateczna organizacja sieci: 35 10 26
Zastosowanie rozpoznawanie liter analiza błędów dla zmiennej liczby neuronów: 4 9 źródło: http://www.ai.c-labtech.net/sn
Zastosowanie rozpoznawanie liter modyfikacja parametrów zmiany wag źródło: http://www.ai.c-labtech.net/sn
Zastosowanie rozpoznawanie liter modyfikacja parametrów funkcji aktywacji źródło: http://www.ai.c-labtech.net/sn
Zastosowanie rozpoznawanie liter rozpoznawanie symboli zniekształconych źródło: http://www.ai.c-labtech.net/sn
rozwój głównie w USA Sieci neuronowe Historia 1943 matematyczny opis komórki nerwowej, przetwarzania danych 1949 odkrycie, że informacja może być przechowywana w strukturze połączeń miedzy neuronami metoda uczenia sieci lata 50-te budowa pierwszych sieci neuronowych 1957 percepton działająca sieć neuropodobna (układ elektromechanicznoelektroniczny); cel rozpoznawanie znaków 1960 sieć elektrochemiczna; pierwszy neurokomputer, pierwsze praktyczne wykorzystanie sieci (dziś wykorzystywana w sonarach, radarach, telekomunikacji) 1970 matematyczne wykazanie, że sieci jednowarstwowe maja bardzo ograniczone zastosowanie zahamowane rozwoju lata 70-te - sieć do rozpoznawania mowy oraz sterowania ramieniem robota lata 80-te pierwsze sieci ze sprzężeniem zwrotnym, odtwarzanie obrazów z fragmentów, zadania optymalizacyjne 1985 wykazanie bardzo dużych możliwości sieci nieliniowych wielowarstwowych; przepisy na uczenie sieci wielowarstwowych
Literatura http://www.ai.c-labtech.net/sn przykłady rozpoznawania znaków i krzywych trygonometrycznych http://nrn.prv.pl/ ogólny, przystępny wykład; liczne przykłady http://wl.sggw.waw.pl/units/geomatyka/si : W. Tracz, Sztuczne sieci neuronowe, SGGW W. Tracz, Systemy ekspertowe, SGGW http://alipe.webpark.pl/ multimedialna prezentacja J. Górska, E. Bronisławska, Sieci neuronowe, 2006, referat niepublikowany http://pl.wikipedia.org/wiki/sztuczna_inteligencja http://www.kik.pcz.czest.pl/nn/podstawy.php
Systemy eksperckie wprowadzenie budowa systemu źródła wiedzy pozyskiwanie wiedzy zapis wiedzy sposoby wnioskowania narzędzia do tworzenia systemów ocena zastosowanie podsumowanie literatura
Systemy eksperckie Wprowadzenie inaczej: ekspertowe lub system z bazą wiedzy definicja program komputerowy wspomagający korzystanie z wiedzy i ułatwiający podejmowanie decyzji; wspomaga bądź zastępuje ludzkich ekspertów w danej dziedzinie dostarcza diagnoz, rad, zaleceń (symulacja rozumowania człowieka w określonym obszarze wiedzy) cechy systemu eksperckiego: jawna reprezentacja wiedzy i oddzielenie wiedzy eksperckiej od procedur sterowania zdolność do wyjaśnień, w szczególności sposobu rozwiązania danego problemu rozwiązuje problemy nie korzystając z jawnie zapisanego algorytmu, lecz z wykorzystaniem różnych metod wnioskowania
Systemy eksperckie Budowa systemu eksperckiego źródło: http://pl.wikipedia.org/wiki/system_ekspercki#szkielety_system.c3.b3w_ekspertowych
Systemy eksperckie Budowa systemu eksperckiego inżynier wiedzy : stawia ekspertowi problemy, przekazuje dane zbiera od eksperta wiedzę, rozwiązania zapisuje w sposób sformalizowany baza wiedzy - wiedza ekspertów z danej dziedziny zapisana w sposób sformalizowany szkielet systemu: interfejs użytkownika - umożliwia zadawanie pytań, udzielanie informacji systemowi oraz odbieranie od systemu odpowiedzi i wyjaśnień edytor bazy wiedzy - pozwala na modyfikację wiedzy zawartej w systemie, umożliwia jego rozbudowę mechanizmu wnioskowania - główny składnik systemu eksperckiego wykonujący cały proces rozumowania w trakcie rozwiązywania problemu postawionego przez użytkownika mechanizm wyjaśniający - objaśnia, dlaczego system udzielił takiej, a nie innej odpowiedzi, albo dlaczego system zadał użytkownikowi dodatkowe pytanie baza danych zmiennych - pamięć robocza przechowującą pewne fakty wprowadzone w trakcie dialogu z użytkownikiem; umożliwia odtworzenie sposobu wnioskowania systemu i przedstawienie go użytkownikowi za pomocą mechanizmu wyjaśniającego
Systemy eksperckie Źródła wiedzy ekspert najczęściej literatura systemy doradcze
Systemy eksperckie Pozyskiwanie wiedzy pozyskuje inżynier wiedzy od eksperta: stawia pytania, problemy uzyskiwane odpowiedzi zapisuje w sposób sformalizowany wprowadza je do bazy wiedzy metody pozyskiwania wiedzy: bezpośrednie zapisanie wiedzy uczenie na pamięć na podstawie instrukcji na podstawie analogii na podstawie obserwacji bez nauczyciela na podstawie przykładów generalizowanie zapisu na podstawie zbioru przykładów (metoda indukcji)
Systemy eksperckie Zapis wiedzy reprezentacja proceduralna zapisanie zbioru procedur opisująca wiedzę reprezentacja deklaratywna zapisanie zbioru faktów, stwierdzeń, reguł specyficznych dla danej dziedziny
Systemy eksperckie Sposoby wnioskowania w przód (progresywne): dane, fakty wiedza cel stosuje się, gdy niewiele danych do sprawdzenia a wiele konkluzji w tył (regresywne): cel wiedza dane, fakty stosuje się, gdy wiele danych do sprawdzenia a względnie niewiele konkluzji częściej stosowana mieszane wykorzystanie heurystyki, aproksymacji, statystyki
Systemy eksperckie Narzędzia do tworzenia języki algorytmiczne (np. Pascal, C, C++) oprogramowanie specjalistyczne: języki sztucznej inteligencji (Lisp, Prolog) języki systemów eksperckich (np. CLISP, Flops, OPS 5 ) szkieletowe systemy ekspertowe (np. PC Shell, ExSys, DecisionPro, G 2 )
Systemy eksperckie Ocena porównanie z ekspertyzą naturalną wady: ekspertyza naturalna zalety: ekspertyza sztuczna utrata wartości z upływem czasu problemy z: przeniesieniem dokumentacją nieprzewidywalność koszty zalety: twórcza adaptacyjna język naturalny szeroki zakres wiedza zdrowego rozsądku stała łatwość: przeniesienie dokumentacji zgodna z bazą wiedzy dostępna wady: nieinspirująca konieczność wprowadzenia wiedzy wejścia symboliczne wąski zakres wiedza przetwarzana mechanicznie za Tracz W., na podstawie Mulawka J. Systemy ekspertowe, WNT, 1996
Systemy eksperckie Ocena - ograniczenia kruchość z uwagi na wąski zakres wiedzy brak możliwości powrotu do wiedzy ogólnej, gdy jest taka potrzeba, np. gdy brakuje informacji lub gdy informacja jest nieodpowiednia pobieranie wiedzy mimo rozwijania nowych narzędzi, ciągle stanowi poważną przeszkodę przy wdrażaniu systemów eksperckich do nowych obszarów brak samooceny rzadko kiedy posiadają wyszukaną wiedzę na temat własnych działań i stąd brak oceny własnych ograniczeń kontrola działania trudne sprawdzenie skuteczności (trudno mierzyć i porównywać poziom wiedzy można tylko porównywać z wiedzą ludzi)
Systemy eksperckie Zastosowanie lata 60-te identyfikacja struktur molekularnych związków chemicznych lata 70-te identyfikacja chorób krwi technika: wspomaganie prac geologicznych (poszukiwanie złóż) planowanie procesu produkcji w rafinerii systemy utrzymania nawierzchni (USA) usprawnianie metod stosowanych do wyznaczanie priorytetów i programowania wydatków na drogownictwo (USA) konserwacja mostów (USA) dignostyka sieci kolejowej wojsko: inne: diagnostyka uszkodzeń w systemie obrony powietrznej kształtowanie składu portfela giełdowego przydzielanie kredytu podejmowanie decyzji administracyjnych
Systemy eksperckie Podsumowanie ciągle rzadko stosowane przesłanki stosowania: brak kompletnej wiedzy zapisanej w sposób algorytmiczny przewaga wiedzy heurystycznej nad algorytmiczną duża złożoność problemów wąska i mało zmienna dziedzina przewaga wiedzy symbolicznej nad numeryczną potrzeba szybkiego podejmowania decyzji przy braku pełnych danych
Systemy eksperckie Literatura http://wl.sggw.waw.pl/units/geomatyka/si : W. Tracz, Systemy ekspertowe, SGGW M. Kryński, Systemy eksperckie, 2006, referat niepublikowany http://pl.wikipedia.org/wiki/sztuczna_inteligencja Michalik K.: Systemy ekspertowe. Aitech, Katowice http://aitech.pl/content/blogcategory/46/142/lang,iso-8859-2 Mulawka J., Systemy ekspertowe, WNT, Warszawa, 1996 Zieliński J. Inteligentne systemy w zarządzaniu. Teoria i praktyka, WNT, Warszawa 2000