Przetwarzanie informacji w klasycznych systemach komputerowych i sieciach neuronowych

From Obrona

INF2: Przetwarzanie informacji w klasycznych systemach komputerowych i sieciach neuronowych

Przetwarzanie informacji (angielskie information processing), obróbka informacji z użyciem komputerów z jednej postaci do innej, spełniającej pewien cel, np. sortowanie informacji nieuporządkowanych lub wyszukiwanie informacji spełniających określony warunek. Załóżmy na przykład, że poświęcamy każdego dnia pół godziny na oglądanie telewizji i mamy do dyspozycji 500 programów telewizyjnych. Powstają dwa problemy: a) jak udostępnić ich spisy; b) jak z nich wybierać. Komputery rozwiązują te problemy w całości. Na pytanie: “co wybrać?” musi odpowiedzieć sam użytkownik (choć może w tym wspomóc się inną bazą danych).

Neuron – komórka nerwowa [dendryty, akson, kolaterale (odgałęzienia aksonu)]. Jego główna funkcja polega na sumowaniu wagowym sygnałów wyjściowych i porównywaniu wyniku z wartością progową (klasyfikacja liniowa) Synapsa – połączenie dendrytu z aksonem innej komórki (synapsy hamujące i pobudzające) Modele neuronu – Funkcja aktywacji – Sieć neuronowa – zorganizowany zbiór neuronów i połączeń między nimi (równoległy, rozproszony system wieloprocesorowy; przetwarzanie informacji przebiega na podobieństwo procesów myślowych) Fault Tolerant Computing – przetwarzanie odporne na błędy

Klasyczny system Sieć neuronowa Umożliwia rozwiązywanie problemów, które daje się przedstawić w postaci algorytmu; musi być możliwe skonstruowanie analitycznego modelu matematycznego

Mała szybkość rozwiązywania pewnych klas problemów (np. rozpoznawanie obrazów i dźwięków)


Brak lub bardzo mała zdolność przystosowania się do nowej klasy problemu, nie przewidzianego na etapie projektu i realizacji systemu. Zwykle wymaga to ingerencji człowieka w kod programu i jego rozbudowanie.

Mała odporność na błędy danych wejściowych, błędy w algorytmach przetwarzających oraz błędy elementów składowych systemu (układów elektronicznych)

Przygotowanie systemu realizującego założone zadania wiąże się zwykle z analizą danego problemu, sformułowaniem występujących zależności, przygotowaniem algorytmów, implementacją sprzętową i programową oraz testowaniem systemu.

Pozwala rozwiązywać problemy, których nie daje się przedstawić w formie algorytmu


Duża szybkość działania sieci (pomimo niewielkiej szybkości pojedynczego neuronu, dzięki bardzo dużej ich liczbie i równoległemu przetwarzaniu.)

Możliwość poprawnego rozwiązania nowych problemów – samodzielne dostosowanie się do nowych zadań.


FTC – wyniki obliczeń nie zależą (w pewnych granicach) od występowania uszkodzeń zarówno w danych wejściowych, jak i pojedynczych neuronach

Analiza klasy problemu i wybór optymalnej konfiguracji sieci neuronowej (model neuronu, typ sieci, określenie rozmiaru sieci), a następnie uczenie sieci


Zdolność uogólniania wiedzy (generalizacji)

Modele neuronu Perceptron (model McCullocha-Pittsa) Nieciągła funkcja aktywacji (skokowa). Uczenie z nauczycielem; dobór wag w ten sposób, aby sygnał wyjściowy był najbliższy wartości zadanej. Neuron typu sigmoidalnego – j.w., ciągła funkcja aktywacji, różniczkowalna. Zwykle uczenie z nauczycielem poprzez minimalizację funkcji energetycznej Neuron ADALINE (ADAptive LInear NEuron) funkcja aktywacji typu signum, dobór wag poprzez minimalizacje błędu kwadratowego INSTAR(klasyfikator wektorowy – porównaie wektora wejściowego z wyuczonym wzorcem) i OUTSTAR(generowanie wektora pożądanego przez inne neurony z nim związane) Grossberga – wagi dostosowują się do sygnałów wejściowych lub wyjściowych WTA (Winners Take All) uczenie bez nauczyciela, neuron najlepiej dopasowany do wzorca przyjmuje stan 1 na wyjściu i modyfikuje swoje wagi, pozostałe stan 0 i brak modyfikacji wag. Zastosowanie – najczęściej klasyfikacja wektorów. Neuron Hebba – zmiana wagi Wij proporcjonalna do iloczynu sygnału wejściowego oraz wyjściowego. Uczenie z nauczycielem lub bez. Model stochastyczny – stan wyjściowy zależy zarówno od sygnałów na wejściu jak również od pewnej zmiennej losowej.


Typy sieci neuronowych sieć jednokierunkowa – przepływ sygnałów odbywa się od wejścia do wyjścia. Sieć składa się z jednej lub kilku warstw. Warstwa wejściowa zawiera liczbę neuronów równą wymiarowi wektora wejściowego X, warstwa wyjściowa – wymiar wektora zadanego d z pary wektorów uczących (X,d) sieć rekurencyjna – dowolne powiązania neuronów, dwukierunkowy przepływ danych. Powoduje to występowanie sprzężeń zwrotnych, co pociąga za sobą konieczność ustalenia wartości wyjściowych w sposób rekurencyjny sieć komórkowa – sąsiednie neurony są powiązane dwukierunkowo. Kształt i zasięg sąsiedztwa są ustalane (najczęściej sąsiedztwo kwadratowe o promieniu 1  8 sąsiadów)

Uczenie sieci neuronowej uczenie z nauczycielem – podanie jednocześnie wektora wejściowego X i wektora zadanego d ; błędne odpowiedzi sieci powodują modyfikację wag aż do uzyskania wyników poprawnych uczenie bez nauczyciela – podawany jest tylko sygnał wejściowy X (sieć samodzielnie dostosowuje się do podawanych wzorców) nauczanie z oceną (po prezentacji pewnej liczby próbek uczących X wystawiana jest „ocena”


__________________________________________________________________________________________

a)różnice i podobieństwa przetwarzania informacji w komputerze działającym wg. schematu von Neumanna i w neurokomputerze

Von Neumann wiadomo ciąg zadań (programów) przetwarzany liniowo.

Sieć neuronowa jest to równoległy rozproszony system zbudowany z neuronów wyposażonych w pamięć lokalną i mogących realizować lokalne operacje. Komórki połączone są jednokierunkowo kanałami sygnałowymi. Każdy element przetwarzający ma pojedyncze wyjście, które może się rozgałęziać. Sygnał wyjściowy może być dowolną funkcją matematyczną. Przetwarzanie informacji w komórce może być definiowane arbitralnie z tym jednym ograniczeniem, że musi być całkowicie lokalne tzn. musi zależeć od bieżących sygnałów wejściowych i wartości zapamiętanych w pamięci lokalnej. Funkcja przejściowa może być realizowana w sposób ciągły lub impulsowy (epizodyczny).

Model matematyczny komórki neuronowej:

b)metody uczenia sieci neuronowych

uczenie z nauczycielem nauczanie po każdej lekcji W skrócie po każdym wektorze wejściowym X(t) porównanie z Zt(we uczące). Jeżeli są sobie równe nie robimy nic jeżeli wektory nie są równe następuje modyfikacja wag. nauczanie po grupie lekcji Podobnie jak poprzednio tyle że porównanie następuje po grupie lekcji i ewentualnie modyfikacja

uczenie bez nauczyciela (self organization traning) Pewnemu rozkładowi sygnału we. (x) ma odpowiadać rozkład sygnału wyjściowego (y). Usiłuje się tak dobrać wagi aby rozkład sygnału na wyjściu był jak najbardziej zbliżony do rozkładu sygnału (y) przy zachowaniu podobieństwa sygnału we. do (x).

metody uczenia oparte o prawo Hebba Jeśli syg. wy. nie zgodny z wzorcem to modyfikacja wag wg. wzoru

wij new = wij old + yixj


c)przykłady zastosowań sieci neuronowych – cel, struktura, zasady uczenia.

zastosowanie – klasyfikacja – fuzzy logic – logika rozmyta.

Rodzaje sieci : 1.Static feedforward network Ten typ sieci wykorzystywany jest do generowania funkcji oraz kojarzenia wzorców.

2.Sieć z lokalnym sprzężeniem zwrotnym - Network with local feedback Zastosowanie – wzmacnianie sygnałów, normalizacja wzorców, redukcja szumów.

3.Sieci z współzawodniczącymi warstwami - Network with a competitive layer Wykorzystywane do filtracji sygnałów i kojarzenia.

4. Sieć Hpfielda (sieć dynamiczna jednowarstwowa) - Hopfield type dynamic feedback network. Sieć Hopfielda może być wykorzystana jako pamięć asocjacyjna, do rozwiązania problemu komwojażera lub rozwiązywania równań różniczkowych.

5.Sieć sekwencyjna Nic mi nie wiadomo o zastosowaniu. Zastosowanie sieci

Jakkolwiek sieci neuronowe stanowią dziedzinę wiedzy całkowicie samodzielną, w rozwiązaniach praktycznych stanowią zwykle część  sterującą procesem bądź część decyzyjną, przekazującą sygnał  wykonawczy innym elementom urządzenia, nie związanym bezpośrednio z sieciami neuronowymi. Funkcje pełnione przez sieć mogą być sklasyfikowane w kilku podstawowych grupach, a mianowicie: aproksymacji, klasyfikacji i rozpoznawania wzorców, predykcji, identyfikacji i estymacji, sterowania, asocjacji. Sieć aproksymująca pełni rolę uniwersalnego aproksymatora funkcji wielu zmiennych, realizując funkcję nieliniową o postaci y = f(x)  gdzie x jest wektorem wejściowym, a y realizowaną funkcją  wielu zmiennych. Wiele zadań modelowania, identyfikacji, przetwarzania sygnałów da się sprowadzić do zagadnienia aproksymacyjnego. Przy  klasyfikacji i rozpoznawaniu wzorców sieć uczy się podstawowych cech tych wzorców, takich jak odwzorowanie geometryczne układu składników wzorca, rozkładu składników głównych (PCA) czy innych jego cech. W uczeniu podkreślane są różnice występujące w różnych wzorcach, stanowiące podstawę podjęcia odpowiedniej decyzji klasyfikacyjnej. W dziedzinie predykcji zadaniem sieci jest określenie przyszłych zachowań systemu na podstawie ciągu wartości z przeszłości. Mając informację o wartościach zmiennej x w chwilach poprzedzających predykcję sieć podejmuje decyzję jaka będzie estymowana wartość badanego ciągu w chwili aktualnej. W zagadnieniach sterowania procesami dynamicznymi sieć neuronowa pełni zwykle kilka funkcji. Stanowi model nieliniowy tego procesu, identyfikując jego podstawowe parametry niezbędne do wypracowania odpowiedniego sygnału sterującego. Pełni funkcję układu śledzącego i nadążnego adaptując się do zmiennych warunków środowiskowych. Może również stanowić  bezpośredni neuro-regulator typu PID zastępujący klasyczne rozwiązania. Ważną rolę, zwłaszcza w sterowaniu robotów stanowi klasyfikacja i podejmowanie decyzji co do dalszego przebiegu procesu.

W zadaniach asocjacji rolą sieci neuronowej jest pamięć skojarzeniowa. Wyróżnić tu można pamięć auto-asocjacyjną, gdzie skojarzenie dotyczy tylko poszczególnych składowych  wektora wejściowego oraz pamięć hetero-asocjacyjną, w której zadaniem sieci jest skojarzenie ze sobą dwu wektorów. W przypadku podania na wejście sieci wektora zaszumionego bądź pozbawionego  pewnych fragmentów danych, sieć potrafi odtworzyć pełny wektor oryginalny, pozbawiony szumów, generując przy tym pełną postać drugiego wektora odpowiadającego mu.

Najważniejszą cechą sieci neuronowych stanowiącą o jej ogromnych zaletach i szerokich możliwościach zastosowań jest równoległe przetwarzanie informacji przez wszystkie ogniwa. Przy ogromnej, masowej skali powiązań neuronowych możliwe jest dzięki temu znaczne przyspieszenie procesu przetwarzania informacji. W wielu wypadkach jest możliwe przetwarzanie sygnałów w czasie rzeczywistym.

Ponadto przy bardzo dużej liczbie powiązań między-neuronowych sieć staje się odporna na błędy występujące w niektórych powiązaniach. Funkcję uszkodzonych wag przejmują inne i w efekcie w działaniu sieci nie dostrzega się istotnych zaburzeń.

Inną nie mniej ważną cechą sieci jest zdolność do uczenia się i generalizacji nabytej wiedzy. Sieć posiada własność sztucznej inteligencji. Wytrenowana  na wybranej grupie danych uczących potrafi skojarzyć nabytą wiedzę i wykazać dobre działanie na danych nie uczestniczących w procesie uczenia.

Istotną zaletą sieci jest możliwość jej  realizacji w technice wielkiej skali integracji. Zróżnicowanie elementów sieci jest niewielkie, a ich powtarzalność ogromna. Stwarza to  perspektywę zbudowania uniwersalnego procesora, który być może  w przyszłości zastąpi klasyczne procesory sterujące pracą komputerów (tzw. neuro-komputery).

Możliwości zastosowań sieci neuronowych w przetwarzaniu sygnałów są ciągle jeszcze nie do końca zbadane i wydaje się, że mogą one jeszcze przez wiele lat stanowić o postępie w technice informacyjnej.



Sieci neuronowe

Sieci neuronowe stanowią gałąź sztucznej inteligencji wykorzystującą w przetwarzaniu sygnałów analogie do zjawisk zachodzących w neuronach organizmów żywych. Sposoby połączenia neuronów między sobą i ich wzajemnego współdziałania spowodowały powstanie różnych typów sieci. Każdy typ sieci jest z kolei ściśle powiązany z odpowiednią metodą doboru wag (uczenia). Z wielu opracowanych rodzajów sieci do najważniejszych należą: ·Sieci  perceptronowe ·Sieci RBF ·Sieci samoorganizujące się poprzez konkurencję Sieci samoorganizujące się poprzez korelację. Sieci rekurencyjne

Sieci neuronowe

Technika ta stanowi obiecującą generację systemów przetwarzania informacji umożliwiających rozwiązywanie zadań trudnych lub niemożliwych do rozwiązania w sposób tradycyjny. Maja one szczególną właściwość doskonalenia się poprzez doświadczenie, a więc uczenia się. Skupienie zainteresowania na sieciach neuronowych wspomagane jest przeświadczeniem, że potrafią one “samodzielnie” odnajdować rozwiązania najlepsze w kolejnych fazach poznawania zjawisk stosownie do posiadanej “wiedzy”-doświadczenia. Nazwa “sieci neuronowe” wywodzi się od strukturalnego analogu konstrukcji systemu i jego funkcjonowania oraz systemu nerwowego. Sieć zbudowana jest ze zbioru węzłów przetwarzających dostarczane informacje - zwanych neuronami - połączonych między sobą dla wzajemnego oddziaływania w określonym kierunku dla stworzenia efektu wyjścia (wyniku). Suma wspólnego (łącznego) oddziaływania na określony neuron tworzy stan jego pobudzenia, który z kolei podlega przetworzeniu przy użyciu funkcji transformacji tego węzła nazywanej funkcją aktywacji. Architektura sieci, zasada tworzenia stanu pobudzenia w węzłach oraz funkcje aktywacji stanowią zasadnicze elementy funkcjonowania sieci. One decydują o sposobie przetworzenia informacji początkowej (wejściowej), a więc o wyniku jaki osiąga się na wyjściu z systemu (z sieci NN - ang. Neural Network). Zadanie może być postawione w sposób określający rezultat wymagany na wyjściu z sysyemu przy zadanych parametrach wejścia (informacji wejściowej). Będziemy wówczas zainteresowani wszystkimi elementami przetwarzania aby zadanie zrealizować. Podstawowym problemem będzie wówczas kwestia osiągalności oczekiwanego wyniku, a więc architektury sieci.  2. Struktura Organizacyjna i sieć neuronowa. Z teorii budowy struktur organizacyjnych wiemy, że przedstawiaja one architekturę systemu ukazując zbiór zależnych wobec siebie elementów, wzajemnie na siebie oddziałujących - uporządkowanych ze względu na te relacje. W tej opisowej definicji struktury organizacyjnej jest podobieństwo do sieci neuronowej. Każdy element systemu występujący w jego strukturze organizacyjnej może być interpretowany jako węzeł (neuron) sieci neuronowej. Relacje wiążące elementy systemu mogą być rozumiane jako połączenia synaptyczne sieci NN. Zatem, graf struktury organizacyjnej systemu może być zamieniony (przy dopuszczalnych modyfikacjach szczegółów) na architekturę odpowiadającej mu sieci neuronowej. Praca każdego z elementów systemu może być interpretowana jako przetwarzanie informacji dostarczanych z innych elementów struktury. Może być zatem opisana poprzez podanie tzw. funkcji aktywacji. Efektem realizacji tej funkcji jest decyzja lub tylko prosta informacja stanowiące wyjście z tego elementu (neuronu) przekazywana do dalszego przetworzenia w głębi struktury sieci. Stosownie do architektury sieci oraz zasad wprowadzania poszczególnych jej elementów do działania w systemie i wreszcie charakteru pozyskiwanych efektów na wyjściu każdego z elementów struktury otrzymujemy końcowy efekt pracy tego systemu. Istnieje więc analogia w konstrukcji formalnej i sposobie funkcjonowania struktur organizacyjnych i sieci neuronowych.  

              3. Analiza potencjału produkcyjnego.   Potencjał produkcyjny przedsiębiorstwa (systemu) o ustalonej strukturze organizacyjnej może być przedmiotem obserwacji efektów Y pozyskiwanych dla różnych stanów wejścia tzn. informacji na temat zadań mogących być przedmiotem realizacji oraz informacji o stanie przedsiębiorstwa. Funkcje aktywacji elementów struktury przy zadanym stanie systemu muszą określać rezultaty pracy każdego elementu przy dowolnym stanie pobudzenia (w tym także granice wydolności elementów struktury). Sieć neuronowa pozyskuje więc w ten sposób możliwości określenia takiego efektu pracy systemu, który stanowi maksimum funkcji wyjścia z systemu. Nie ulega on zmianie nawet wówczas gdy stan wejścia w zakresie zadań będzie dowolnie powiększany. System osiągnął granice swoich możliwości. Zmianę maksimum efektu wyjścia może wywołać zmiana grafu struktury organizacyjnej - w transformacji na sieć NN oznacza to zmianę architektury sieci , bądź też zmiana sposobu pobudzania funkcji aktywacji (parametryczna lub charakterologiczna) elementów systemu (neuronów). Poziom maksymalnego osiągalnego efektu wyjścia w ustalonym sposobie funkcjonowania systemu i ustalonym jego stanie jest potencjałem produkcyjnym przedsiębiorstwa. W analizie sieci neuronowej jest on granicą, do której zmierza stan wyjścia przy wzrastającym nieograniczenie poziomie stanów generowanych jako zewnętrzne na wejściu do systemu. 4. Zachowanie się struktury systemu. Sieci neuronowe mają zdolność przystosowywania się do wymagań stawianych w stosunku do rezultatów oczekiwanych na wyjściu z sieci. Głównym elementem adaptacji są parametry pobudzania. Pozwalają one wzmocnić przez zwiększenie lub osłabić przez zmniejszenie intensywność oddziaływania jednego neuronu na inny. Dla struktur organizacyjnych systemów charakter i rozmiary modyfikacji pobudzania można interpretować jako wskazanie potrzeby odpowiedniej modyfikacji funkcji aktywacji tak aby uzyskać wymagany wynik produkcyjny w określonym miejscu w strukturze systemu. Uczenie sieci w tym przypadku będzie zawsze zamierzone na określony wynik produkcyjny a jego efektem będzie odpowiednio modyfikowany zbiór funkcji aktywacji wszystkich elementów systemu. W wyniku odpowiednio długiego “cyklu treningowego” przystosowuje się do realizacji celu dla którego jest projektowana. 5. Wnioski. Obok tradycyjnych technik projektowania struktur organizacyjnych oraz badania zdolności produkcyjnych przedsiębiorstw pojawiła się technika sieci NN wprowadzająca zdolność autoorganizacji systemu poprzez doświadczenie. Uruchomienie procesu autoorganizacji jako formy symulacyjnej daje możliwości opanowania problemów trudnych lub niemożliwych do rozwiązania metodami dotychczas stosowanymi.

Personal tools