Przetwarzanie danych i rozwiązywanie problemów Jak to robi komputer? 1. pobierz instrukcję z pamięci 2. pobierz z pamięci konieczne dane 3. wykonaj instrukcję 4. zapamiętaj wynik 5. Przejdź do 1. Instrukcje i dane CPU Pamięć Dane Wiele problemów daje się w ten sposób rozwiązać np: układ równań, przeszukanie bazy danych itp. Oczywiście są i tu pewne ograniczenia: Musimy mieć dokładny algorytm. Dane muszą być w ściśle określonym formacie. Komputer jest bardzo nieodporny na uszkodzenia. Sieci neuropodobne, I 2 Z czym komputery mają problemy Zasadniczy problem stanowią bardziej codzienne zadania, które my wykonujemy bez problemów, a znalezienie dla nich algorytmów jest niezwykle trudne np. rozpoznawanie ręcznie pisanych liter, rozpoznawanie twarzy... Jeśli my sobie z tym radzimy, a klasyczny komputer nie, to zróbmy maszynę bardziej podobną do nas.
Krótka historia sieci nuropodobnych McCulloch i Pitts (1943) - pierwszy matematyczny opis działania neuronu i przetwarzania przez niego danych. Proste neurony, które mogły modelować funkcje logiczne takie jak OR lub AND Von Neumann: The computer and the brain (1958). - historyczna praca teoretyczna. uczenie zamiast programowania Perceptron Rosenblatta (1958) - rozpoznawanie znaków alfanumerycznych. Był wrażliwy na transformacje znaków Działał poprawnie (w zakresie swoich możliwości) nawet po uszkodzeniu kilku jednostek ADALINE (ADAptive LInear Element) stworzony w 1960 przez Widrowa i Hoffa (ze Stanford University). ADALINE był analogowym urządzeniem elektronicznym. Okres frustracji i zniechęcenia. W 1969 Minsky i Papert w swojej książce dowodzili ograniczenia jednowarstwowych sieci neuronowych typu perceptronu i uogólnili je na sieci wielowarstwowe:...our intuitive judgment that the extension (to multilayer systems) is sterile. Efekt: obcięcie funduszy na badania sieci neuropodobnych Sieci neuropodobne, I 4 Lata 70-te były okresem zahamowania funduszy, ale wymyślono w tym czasie kilka ciekawych rozwiązań: Anderson i Kohonen niezależnie opracowali koncepcję sieci asocjacyjnych. Werbos (1974) po raz pierwszy opracował i użył metody wstecznej propagacji błędu do uczenia sieci neuronowej, ale musiało minąć kilka lat zanim pomysł ten się rozpowszechnił. Fukushima (F. Kunihiko) w 1975 zbudował Cognitron a w 1978 rozbudowana wersja Neocognitron potrafiła rozpoznawać nawet bardzo skomplikowane znaki (pismo chińskie) i była odporna na zniekształcenia, przeskalowania, przesunięcia i obroty znaków. ART Steve Grossberg i Gail Carpenter w 1988 wymyślili, w oparciu o analogie biologiczne, sieci ART (Adaptive Resonance Theory). Od końca lat 80-tych, na skutek nagromadzenia pozytywnych przykładów i rozwoju komputerów pozwalających na symulacje sieci neuronowych, nastąpił gwałtowny rozwój badań nad sieciami neuropodobymi.
Ogólne spojrzenie na sieci neuronowe Wspólne dla większości sieci źródło inspiracji: mózg ludzki Trochę danych o naszych mózgach: funkcje intelektualne kora: grubość ok. 3mm 5 6 warstw komórek nerwowych neuronów, liczbę neuronów szacuje się na 10 10, z których każda posiada 10 4 wejść synaps i jedno rozgałąziające się wyjście akson. Komórki nerwowe komunikują się ze sobą za pomocą impulsów elektrycznych generowanych w ciele neuronu. Impulsy te docierają do zakończeń aksonu, które łączą się z synapsami następnego neuronu. Wejścia z synaps sumują się wytwarzając pobudzenie neuronu. Jeśli przekroczy ono określoną wartość progową to neuron odpala potencjał czynnościowy. Sieci neuropodobne, I 6 Ogólne cechy sieci neuronowych: Typy sieci neuropodobnych odporność na zniekształcenia bodźców odporność na uszkodzenia fragmentów sieci zdolność do generalizacji zdobytej wiedzy uczenie przykładami zamiast programowania algorytmicznego równoległe przetwarzanie danych To w jaki sposób modeluje się sieć neuronową zależy w dużej mierze od tego, do jakiego celu ma służyć dany model. W ostatnich latach szczególnie wyraźnie zarysował się podział na: biologicznie realistyczne sieci neuropodobne modelowanie i testowanie hipotez dotyczących biologicznych sieci neuronowych sztuczne sieci neuropodobne do zastosowań technicznych i praktycznych
Sieci w technice W kontekście zastosowań technicznych ogólnie możemy powiedzieć, że: Sieć neuronowa, to zbiór połączonych prostych jednostek przetwarzających, których działanie jest luźno inspirowane biologicznymi neuronami. Wiedza i możliwości sieci przechowywane są w postaci architektury sieci i siły (wagi) połączeń pomiędzy jednostkami. Wagi ustalane są w procesie zwanym uczeniem. y(t + 1) = f( n j=1 w jx j (t) θ) x 1 x 2. x n w 1 w 2. w n f(e) y Sieci neuropodobne, I 8 Kierunki badań i zastosowań sieci neuronowych rozpoznawanie kontekstowe i inwariantne obrazów : kompresja, segmentacja, odtwarzanie, rozumienie diagnostyka medyczna sterowanie i optymalizacja sztuczna inteligencja ekonomia szczególnie przydatne zastosowanie, gdy nie ma dobrej teorii. predykcja: ocena zdolności kredytowej, prognozy zmian rynku, wspomaganie inwestycji giełdowych kwalifikacja i rozpoznawanie podmiotów gospodarczych: np.: czy dane przedsiębiorstwo należy do zwyżkujących, w stanie stagnacji czy też jest w regresji kojarzenie i analiza danych data mining optymalizacja decyzji gospodarczych
Podstawowe pytania praktyczne Jaką wybrać architekturę sieci? Warstwowa feedforeward, ze sprzężeniami zwrotnymi, a może każdy z każdym? Ile elementów sieci potrzeba? Jakie powinny być funkcje aktywacji? Aktualizacja synchroniczna czy asynchroniczna, deterministyczna czy losowa? Jak nauczyć sieć? Jeśli może nauczyć się na przykładach, to ilu przykładów potrzeba? Ile potrzeba cykli uczenia? Czy przykłady muszą zawierać porządane odpowiedzi (uczenie z nadzorem i bez)? Czy może sieć uczyć się w czasie rzeczywistym, czy uczenie musi być oddzielone od korzystania z sieci? Co potrafią zrobić różne typy sieci? Czy potrafią uogólniać generalizować na podstawie poznanych przykładów? Jak zrealizować sieci? Sprzętowo czy symulując na komputerach? Sieci neuropodobne, I 10 Przykładowe możliwości realizacji sprzętowych Nestor Ni1000 Recognition Accelerator 27 10 9 synaptic connections/second 10 4 pattern recognition classifications/second, 512 parallel processors. (RBF) NeuroLution PCI Board Plugged in to a PC the NeuroLution PCI board works like a neural coprocessor. Peak performance of the board is 8 10 8 connections/second. NNP The NNP has 8,000 neurons that can be fully interconnected. Each processor is capable of 1, 4 10 8 connections/second. SAND neurochip is a neural processor based upon the principle of a systolic array. Four parallel processor elements form the heart of this array. With a maximum clock frequency of 50 MHz SAND achieves a performance of 2 10 8 connections/second. ZISC36 (Zero Instruction Set Computer) chip allows the equivalent of 2.2 10 9 instruction/second per chip. Its unique architecture allows 2.5 microsecond learning and/or recognition time. Typically 100 ZISC36 connected allow to retrieve one pattern (64 bytes) among 3,600 others in 2.5 microseconds. (RBF)
Literatura: Sieci Neuronowe R. Tadeusiewicz (1991) Wstęp do teorii obliczeń neuronowych J.Hertz, A. Krogh, R. Palmer (1995) Sieci neuronowe w ujęciu algorytmicznym S. Osowski (1996) Sieci neuronowe w zastosowaniach wojskowych Z. Świątnicki R. Wantoch-Rekowski (1998) Sztuczne sieci neuronowe - podstawy i zastosowania J. Korbicz, A. Obuchowicz, D. Uciński (1994) Sieci neuronowe, algorytmy genetyczne i systemy rozmyte D. Rutkowska, M. Piliński, L. Rytkowski (1999) Sztuczna inteligencja - Metody konstrukcji i analizy systemów eksperckich J. Chromiec, E. Strzemieczna (1995) Systemy ekspertowe J.J. Mulawka (1997) bardzo dużo materiałów w WWW w tym: Strona o naszym wykładzie: http://brain.fuw.edu.pl/ jarek/sieci.html