Systemy wspomagania decyzji

Slides:



Advertisements
Podobne prezentacje
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Advertisements

Sieć jednokierunkowa wielowarstwowa
SIECI NEURONOWE Sztuczne sieci neuronowe są to układy elektroniczne lub optyczne, złożone z jednostek przetwarzających, zwanych neuronami, połączonych.
SZTUCZNA INTELIGENCJA ARTIFICIAL INTELLIGENCE
Inteligencja Obliczeniowa Sieci dynamiczne cd.
Katedra Informatyki Stosowanej UMK
Katedra Informatyki Stosowanej UMK
Uczenie konkurencyjne.
Inteligencja Obliczeniowa Sieci dynamiczne.
Inteligencja Obliczeniowa Perceptrony o dużym marginesie błędu
Inteligencja Obliczeniowa Perceptrony
Dobór optymalnej architektury
Sztuczne sieci neuronowe
Sprzężenie zwrotne Patryk Sobczyk.
Macierze Maria Guzik.
Algorytm Rochio’a.
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz,
Czy potrafimy obliczyć wartość wyjścia sieci znając wartości jej wejść? Tak, przy założeniu, że znamy aktualne wartości wag i progów dla poszczególnych.
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania.
Sieci Hopfielda.
Sieci neuronowe jednokierunkowe wielowarstwowe
Metody matematyczne w Inżynierii Chemicznej
Sztuczne sieci neuronowe (SSN)
Metody numeryczne Wykład no 2.
Matematyka.
formalnie: Budowa i zasada funkcjonowania sztucznych sieci neuronowych
Opis matematyczny elementów i układów liniowych
O relacjach i algorytmach
Systemy wspomagania decyzji
Podstawy układów logicznych
Sztuczne Sieci Neuronowe
Systemy Wspomagania Decyzji
Komputerowe Wspomaganie w Inżynierii Materiałowej
Metody numeryczne SOWIG Wydział Inżynierii Środowiska III rok
Obserwatory zredukowane
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
formalnie: Uczenie nienadzorowane
Wspomaganie decyzji nie zwalnia od decyzji...
Systemy Wspomagania Decyzji
Uczenie w Sieciach Rekurencyjnych
Elementy Rachunku Prawdopodobieństwa i Statystyki
Zadanie programowania liniowego PL dla ograniczeń mniejszościowych
Zakładamy a priori istnienie rozwiązania α układu równań.
Systemy wspomagania decyzji
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
Modelowanie i identyfikacja 2010/2011Optymalizacja miary efektywności działania sztucznych sieci neuronowych Dr hab. inż. Kazimierz Duzinkiewicz, Katedra.
II. Matematyczne podstawy MK
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Systemy wspomagania decyzji
Systemy Wspomagania Decyzji
Metody numeryczne szukanie pierwiastka metodą bisekcji
Grafika i komunikacja człowieka z komputerem
Grafika Komputerowa i wizualizacja
Grafika i komunikacja człowieka z komputerem
Grafika i komunikacja człowieka z komputerem
Trochę algebry liniowej.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Metody sztucznej inteligencji – technologie rozmyte i neuronoweReguła propagacji wstecznej  Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów.
Sieci rekurencyjne.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania Modelowanie i podstawy identyfikacji 2015/2016 Modele neuronowe – podstawy,
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Systemy rozmyte – wnioskowanie Mamdani’ego II © Kazimierz Duzinkiewicz, dr hab.
Inteligencja Obliczeniowa Perceptrony o dużym marginesie błędu
Systemy neuronowo – rozmyte
3. Siła i ruch 3.1. Pierwsza zasada dynamiki Newtona
Kognitywne właściwości sieci neuronowych
Perceptrony o dużym marginesie błędu
Jednorównaniowy model regresji liniowej
Perceptrony o dużym marginesie błędu
Systemy Ekspertowe i Sztuczna Inteligencja trudne pytania
Inteligencja Obliczeniowa Perceptrony
Zapis prezentacji:

Systemy wspomagania decyzji Model neuronu Hebba Sieć WTA Wprowadzenie do sieci rekurencyjnych – sieć Hopfielda

Obserwacje działania komórek nerwowych doprowadziły D Obserwacje działania komórek nerwowych doprowadziły D. Hebba do wniosku, że połączenie synaptyczne dwóch komórek jest wzmacniane, gdy obie są pobudzane jednocześnie. W języku sieci neuronowych można to wyrazić tak: jeśli j-ta komórka generująca sygnał yj jest połączona z i-tą komórka generująca sygnał yi, to modyfikacja wagi wij tego połączenia jest zależna od sygnałów yj oraz yi. Klasyczna formuła Hebba, które modeluje tą sytuację jest następująca Reguła Hebba charakteryzuje się tym, że wagi mają tendencją do nieograniczonego wzrostu. Jedną z metod poprawy procesu uczenia jest zmniejszenie wpływu wag z poprzedniego etapu na aktualizowaną wartość poprzez wprowadzenie tzw. współczynnika zapominania g ≥ 0.

S S Model neuronu Hebba x0=1 w0 x1 w1 x2 w2 y xn wn w(t+1)=w(t)+hyx(t) d lub y (z nauczycielem lub bez) w(t+1)=w(t)+hyx(t)

Budowa neuronu Hebba jest podobna jak w przypadku adaline’a czy sigmoidalnego, ale charakteryzuje się specyficzną metoda uczenia, znaną jako reguła Hebba. Reguła ta występuje w wersji z nauczycielem i bez nauczyciela. Hebb badając działanie komórek nerwowych zauważył, że powiązanie dwóch komórek jest wzmacniane, jeśli obie są pobudzane w tym samym czasie. Zgodnie z regułą Hebba zmiana wagi Dwi jest proporcjonalna do iloczynu sygnału wejściowego oraz wyjściowego: Tak więc podstawowy krok procedury uczenia ma postać

Przykład 1 Przykład dotyczy uczenia neuronu z wykorzystaniem reguły Hebba z nauczycielem. Zadanie polega na modyfikacji wag, aby rozpoznawać cyfry 1 i 4. Białym pikselom przypisujemy -1, a czarnym +1.

Otrzymujemy następujące dwa wektory ciągu uczącego: Jako funkcję aktywacji użyjemy funkcji typu signum współczynnik uczenia h=0,2, a wagi początkowe zerowe (w1=w2=0).

Przykład 2 Przykład dotyczy reguły Hebba bez nauczyciela. Dysponujemy tylko wektorami wejściowymi – nie są znane wartości na wyjściu. Współczynnik uczenia h=1. Wykonać trening dla dwóch przypadków funkcji aktywacji: funkcja signum oraz funkcja sigmoidalna (przyjąć b=1).

Przykład 3 W przykładzie zaprezentujemy uczenie bez nauczyciela z zapominaniem, zastosowane do sieci złożonej z czterech neuronów o nieliniowości typu skok jednostkowy. Każdy neuron jest połączony z wszystkimi składowymi wektora wejściowego x. Zakładamy, że wagi polaryzacji są stałe i równe -0,5: Początkowe wartości wag mają wartości: Ciąg uczący składa się z następujących wektorów: Każdy wiersz odpowiada wagom odpowiedniego neuronu. Przyjmujemy stałą uczenia h=0,1 i współczynnik zapominania g=h/3. Funkcja aktywacji:

Ilustracja połączeń neuronów do Przykładu 3. 1 2 3 4

Po kilkunastu cyklach uczących otrzymujemy następująca macierz wag: Oznacza to, że wagi między neuronem 2 i wejściem 4 oraz między wejściem 4 i neuronem 2 zostały wzmocnione. Sieć nauczyła się rozpoznawać samoczynnie pewne związki między wejściem 2 i neuronem 4 oraz między wejściem 4 i neuronem 2.

Sieć typu WTA n = liczba sygnałów wejściowych do sieci Sieć WTA jest siecią jednowarstwową należącą do grupy sieci samoorganizujących się z konkurencją. Ciąg uczący się składa się jedynie z wektorów wejściowych wejściowych (sieć bez nauczyciela). Istotą działania sieci jest współzawodnictwo neuronów ze sobą – jeden z nich wygrywa przy prezentacji pojedynczego wektora – stąd akronim WTA (ang. Winner Takes All – „zwycięzca bierze wszystko”). Reguła „wygrywający bierze wszystko” przyznaje więc prawo do korekcji wag tylko temu neuronowi, który jest najbardziej wrażliwy na aktualny wektor wejściowy. W efekcie współzawodnictwa następuje samoorganizacja procesu uczenia. Neurony dopasowują swoje wagi w taki sposób, że dla grupy wektorów bliskich sobie (wg pewnej miary odległości – szczegóły dalej) zwycięża zawsze ten sam neuron. Zatem układy tego typu mogą być stosowane do klasyfikacji wektorów. Dalej będziemy stosować oznaczenia: n = liczba sygnałów wejściowych do sieci m = liczba konkurujących neuronów w warstwie sieci

Sieć samoorganizująca się typu WTA Po podaniu na wyjście wektora uczącego x=(x1, x2, x3) mechanizm konkurencji wybierze tylko jeden z czterech pokazanych neuronów (zwycięzcę). Tylko jego wagi będą modyfikowane (w tym cyklu, gdyż dla następnego wektora zwycięzca może być inny).

Mechanizm wyboru zwycięskiego neuronu w sieci WTA Można stosować kilka sposobów mierzenia odległości pomiędzy wektorem wejściowym x a wektorem wag wi prowadzącym do danego neuronu i. Jeżeli wi=[wi,1,…,wi,n] oznacza wektor wag połączeń do neuronu o numerze i, to odległość euklidesowa jest określona wzorem „odległość” wg iloczynu skalarnego jest określona wzorem gdzie iloczyn skalarny jest dany wzorem

Mechanizm wyboru zwycięskiego neuronu w sieci WTA (c.d.) Jeżeli stosujemy odległość euklidesową (która faktycznie jest metryką w przestrzeni n–wymiarowych wektorów), to bliskie są te wektory dla których ta odległość jest mała. Zatem kryterium wyboru zwycięzcy i0 będzie następujące Jeżeli stosujemy miarę bliskości jako iloczyn skalarny, to bliskie są te wektory dla których kąt (między wektorami) jest mały. Dla małych kątów cos() zbliża się do swojej maksymalnej wartości (równej 1), więc kryterium na bliskość jest, aby iloczyn skalarny był największy. Zatem kryterium wyboru zwycięzcy i0 będzie następujące Ponieważ iloczyn skalarny xwi=|x||wi|cos(i) jest równy zero, gdy wektory są prostopadłe, więc powyższe kryterium interpretujemy tak, że podobne (bliskie) są takie wektory, które są prawie równoległe, a niepodobne te które są prawie prostopadłe (także antyrównoległe).

Mechanizm wyboru zwycięskiego neuronu w sieci WTA (c.d.) W praktyce, gdy używamy iloczynu skalarnego do wyłaniania zwycięzcy w sieci WTA, stosujemy jeszcze tzw. normalizację wektorów. Polega ona na tym, że przekształcamy je tak, aby ich długość euklidesowa była równa 1. Dzięki temu mamy spójny podział przestrzeni danych. Normalizację możemy otrzymać dzieląc współrzędne przez normę euklidesową Tak przekształcony wektor ma normę (długość) równą 1: |x|=1. Podobnie możemy normalizować wektory wag (czyli uporządkowane ciągi wag prowadzące do wybranego neuronu, wi=[wi 1,…,wi n] dla i=1,…,m). Gdy używmy danych znormalizowanych, to iloczyn skalarny jest wyrażony tylko poprzez kąt pomiędzy wektorami Iloczyn skalarny wyrażony poprzez kąt jest wygodny do interpretacji, natomiast do obliczeń iloczynu skalarnego zawsze używamy wzoru z sumą

Normalizacja Wektor wejściowy i wektory wag: przed i po normalizacji x x w1 w1 Wektor wejściowy i wektory wag: przed i po normalizacji Wektory znormalizowane mają takie same kierunki jak wektory przed normalizacją. Po normalizacji widać, że x jest bliższy wektorowi wagowemu w2 niż w1. Natomiast patrząc na wektory nieznormalizowane możemy odnieść wrażenie iż x jest bliższy wektorowi w1.

Modyfikacja wag zwycięskiego neuronu w sieci WTA W danym cyklu uczenia, gdy już wybraliśmy neuron zwyciężający, załóżmy że ma on numer i, przypisujemy mu wartość na wyjściu 1 (pozostałym 0) i aktualizujemy jego wagi wij zgodnie z regułą Kohonena gdzie x jest wektorem uczącym, który był podany na wejście sieci, a h ≥ 0 stałą uczenia przyjmowana zwykle w przedziale 0 ≤ h ≤ 1. [Zauważmy, że skrajna wartość h=0 oznacza braku uczenia się, a wartość h=1 oznacza nadanie wektorowi wag wi wartości x już po pierwszej iteracji]. Rozpisując powyższą regułę na poszczególne składowe mamy

Modyfikacja wag zwycięskiego neuronu w sieci WTA (c.d.) Uczenie zwycięskiego neuronu o numerze i (wagi pozostałych neuronów nie są modyfikowane w danym cyklu) wg reguły ma dość prostą interpretację geometryczną: x-wi x wi h(x-wi) wi+h(x-wi) Ponadto czasami wprowadzamy modyfikację stałej uczenia h, tak aby malała w kolejnych etapach uczenia

Inicjalizacja wag w sieci WTA Najczęściej stosujemy dwa proste podejścia: (1) losowe wagi, (2) kombinacja wypukła. Losowe wagi Jak pamiętamy wektory wagowe powinny być normowane, |wi|=1, tzn. geometrycznie leżą one na n-wymiarowej sferze. Losowy wybór oznacza, że powinny być statystycznie równomiernie rozłożone na tej sferze. Kombinacja wypukła Zaczynamy od stałych wartości Teraz rozpoczynamy uczenie wg prezentowanej metody z bardzo małym h>0 gdzie i0 to zwycięzca w danym cyklu. Po kilku cyklach możemy spróbować zwiększyć stałą uczenia h>0.

Przykład Ciekawą ilustracją działania algorytmu WTA jest rozpoznawanie okręgu oraz kwadratu (można wybrać też inne krzywe). Definiujemy na płaszczyźnie okrąg. Ustawiamy wartości początkowe wag neuronów w środku okręgu. Ciąg uczący generujemy tak, aby jego elementy odpowiadały pewnym punktom leżącym na okręgu. Wykonujemy epoki algorytmu WTA i obserwujemy przemieszczanie się wag (powinny zbliżać się do wybranych punktów z okręgu). Poniżej jest ilustracja dla m=6 neuronów. Każdy ma dwa wejścia (bo są to punkty na płaszczyźnie, n=2). Przemieszczanie się wag poszczególnych neuronów w trakcie uczenia sieci. Na początku wszystkie wagi były w środku koła.

Problem martwych neuronów Przy losowym wyborze początkowych wag w sieci WTA może się zdarzyć, że niektóre neurony podczas rywalizacji nigdy nie będą wygrywały. Jednostki takie nazywamy neuronami martwymi. Prowadzi to do sytuacji, gdzie dane wejściowe są reprezentowane przez mniejszą liczbę neuronów niż jest ich w sieci. Należy opracować jakiś dodatkowy mechanizm dodatkowo aktywizujący neurony, które mogłyby stać się martwe. Często stosowaną metodą jest wprowadzenie tzw. potencjału pi dla każdego neuronu. Jest to dodatkowa liczba przypisana do każdego neuronu, która jest modyfikowana odpowiednio w każdym cyklu uczenia. Wygląda to następująco: po prezentacji wzorca wejściowego x i wyłonieniu zwycięzcy o numerze i0 dokonujemy zmian potencjału Jeżeli wartość potencjału spadnie poniżej pmin dla jakiegoś neuronu, to nie bierze on udziału we współzawodnictwie. Inaczej mówiąc zwycięzcy zawsze poszukujemy wśród neuronów spełniających warunek W praktyce często przyjmuje się pmin 0,75.

Sieci rekurencyjne

Sieci rekurencyjne W dotychczas omawianych sieciach nie rozważaliśmy przypadku, w którym sygnał otrzymany na wyjściu trafiał powtórnie na wejścia sieci. Taki obieg sygnału nazywamy sprzężeniem zwrotnym, a sieci w których to występuje nazywamy sieciami rekurencyjnymi. Najbardziej znane sieci rekurencyjne to: sieć Hopfielda siec Hamminga sieć RTRN (ang. Real Time Recurrent Network) sieć Elmana sieć BAM (ang. Bidirectional Associative Memory)

Przykład sieci rekurencyjnej S, f w11 w12 w13 w21 w22 w23 w31 w32 w33 y1 y2 y3 Na rysunku widać jednowarstwową sieć ze sprzężeniem zwrotnym. Widać, że wyjścia z poszczególnych neuronów mogą być także kierowane na wejścia (tych samych jak i innych neuronów). Na rysunku nie zaznaczono sygnałów wejściowych, x1, x2, x3, gdyż są one wprowadzane do sieci tylko raz.

Model sieci Hopfielda (n=3) w12 w13 w21 w23 w31 w32 y1 y2 y3 -1 1 Klasyczna sieć Hopfielda nie posiada sprzężenia neuronu z samym sobą, tzn. waga takiego połączenia jest równa zero, wii=0. Dlatego często na rysunkach z tymi sieciami nie jest w ogóle rysowane połączenie i—i.

Klasyczna sieć Hopfielda jest siecią jednowarstwową składającą się z neuronów połączonych każdy z każdym z wyjątkiem sprzężenia neuronu samego ze sobą. Dlatego zakładamy, że odpowiednie wagi są zerowe: dla Ponadto zakładamy, że wagi tej sieci są symetryczne Zatem waga łącząca neuron j-ty z i-tym jest taka sama, jak waga łącząca i-ty z j-tym. Funkcja aktywacji w klasycznej sieci Hopfielda jest dwustanowa (np. bipolarna {-1, +1} lub unipolarna {0,+1}).

Sposób funkcjonowania sieci Hopfielda jest odmienny od dotychczas poznanych modeli sieci jednokierunkowych. Po pierwsze w trybie uczenia (czyli dobóru wag) jednorazowo przypisuje się odpowiednie wartości (nie stosujemy procedur iteracyjnych jak np. wsteczna propagacja). W trybie odtworzeniowym (po nadaniu wag) sygnał wejściowy inicjuje pobudzenie sieci, która dzięki mechanizmowi sprzężenia zwrotnego wielokrotnie przyjmuje na swoje wejście zmodyfikowany sygnał pierwotny, aż do ustabilizowania odpowiedzi. Ta ustabilizowana wartość jest traktowana jako wynik działania sieci. W trybie odtworzeniowym sygnał wielokrotnie przechodzi przez sieć aż do ustabilizowania się odpowiedzi, tzn. do momentu w którym sygnał nie ulega już dalszej zmianie. Ta ustabilizowana odpowiedź jest przyjmowana jako wynik działania sieci.

Dobieranie wag w sieci Hopfielda Jedną z metod uczenia sieci Hopfielda jest uogólniona metoda Hebba. Zgodnie z tą regułą wagi definiowane są następująco gdzie jest ciągiem wektorów uczących, a n jest liczbą neuronów w sieci. Taki tryb uczenia sprawia, że wagi przyjmują wartości wynikające z uśrednienia wielu próbek uczących. Niestety ta prosta reguła nie daje zbyt dobrych rezultatów, gdyż pojemność sieci przy takim sposobie uczenia stanowi tylko 13,8% liczby neuronów. Ponadto prowadzi do licznych przekłamań. Dlatego częściej stosuje się metodę pseudoinwersji.

Dobieranie wag w sieci Hopfielda (c.d.) W zapisie macierzowym wzory na wagi wg uogólnionej reguły Hebba można zapisać następująco gdzie I jest macierzą jednostkową (jedynki na przekątnej, poza nią zera), X jest macierzą której kolumnami są wektory ciągu uczącego, XT oznacza transponowanie macierzy X, stała T jest liczbą wektorów uczących). Jak już wiemy funkcje aktywacji w sieci Hopfielda są dwustanowe. W praktyce używa się funkcji bipolarnej {-1, 1} lub unipolarnej {0, 1}. Podobnie jest z wektorami sygnałów: składają się z współrzędnych bipolarnych lub unipolarnych. Jeżeli stosujemy wektory unipolarne, to uogólniona reguła Hebba (formuła powyżej lub poprzedni slajd) przyjmie postać

(regułą Hebba dla sieci Hopfielda) Przykład (regułą Hebba dla sieci Hopfielda) Dany jest zbiór wektorów (wzorców) kodowanych bipolarnie ({-1,+1}) Stosując omawiane już wzory na macierz wag gdzie T=3, n=5 otrzymujemy Podkreślmy, że uzyskana macierz wag została zbudowana wg uogólnionej reguły Hebba. Dalej pokażemy inny sposób nadawania wag dla sieci Hopfileda.

Metoda pseudoinwersji dla sieci Hopfielda Punktem wyjścia w tej metodzie jest założenie, że przy właściwie dobranych wagach wij każdy wzorzec x(t) z ciągu uczącego podany na wejście generuje na wyjściu samego siebie, prowadząc zatem do natychmiastowego stanu ustalonego. Mamy więc warunek Wx(t)=x(t) co można zapisać tak: Jeżeli wprowadzimy pomocniczą macierz X, której kolumnami są kolejne wektory uczące to warunki Wx(t)=x(t) można zapisać w postaci następującego równania macierzowego gdzie W jest macierzą wag o wymiarach n x n, a X jest macierzą prostokątną o wymiarach n x T.

Rozwiązanie takiego układu (pamiętajmy, że macierz X jest dana a szukana jest macierz W) jest następującej postaci gdzie X+ oznacza tzw. pseudoinwersję (pseudoodwrotność) macierzy X. Jeżeli wektory uczące są liniowo niezależne, to macierz W może być wyrażona przy pomocy zwykłej odwrotności (nie musimy używać pseudoinwersji):

Przykład Użyjemy sieci Hopfielda do rozpoznawania trzech cyfr: 1, 4 i 7. Cyfry będą definiowane na matrycy 3x4 Ciąg uczący tworzymy wg kodowania: biały piksel = -1; czarny piksel = +1.

Wektory kodujące cyfry 1, 4, 7 Wektory zapisane kolumnowo i macierz X zawierająca te wektory jako kolejne kolumny

Mnożymy macierz transponowaną XT przez macierz X i otrzymujemy macierz kwadratową (wymiaru takiego, jakiego była liczba wektorów uczących – w tym przypadku 3). Teraz macierz XTX musimy odwrócić (jest to możliwe, gdyż wektory x(1), x(2), x(3) są liniowo niezależne).

Po wykonaniu mnożeń macierzy uzyskamy ostatecznie macierz wag W=X(XTX)-1XT dla przykładowej sieci. Jest to macierz kwadratowa wymiaru 12x12 (liczba wejść do sieci – w przykładzie jest to związane z liczbą pikseli matrycy).

0,404762 0,190476 0,02381 -0,02381 0,619048 -0,04762 -0,38095 0,047619 0,119048 -0,11905

Opis działania sieci Hopfielda w trybie odtworzeniowym Część liniowa i-tego neuronu w iteracji k+1: Oczywiście wyjście z części sumacyjnej jest jak zwykle poddawane działaniu funkcji aktywacji f, więc ostatecznie sygnał wyjściowy jest następujący Zakładamy, że wszystkie neurony mają taką samą funkcję aktywacji.

Wprowadzając jak zwykle pomocniczy sygnał polaryzacji y0(k)=1, możemy zapisać powyższe wzory w sposób bardziej zwarty następująco gdzie sumowanie zaczyna się od zera, a k=0,1,… (kolejne iteracje pętli pobudzenia). Ponadto należy jeszcze wprowadzić sygnał wejściowy początkowy, który pobudza sieć, tak więc mamy przy czym x0=1.

Sieć jest ustabilizowana, jeżeli zachodzi warunek dla każdego neuronu, i=1,…,n. Oczywiście zachodzi podstawowe pytanie: czy powyższy warunek stabilizacji zostanie osiągnięty? W ogólnym przypadku warunek stabilizacji może oznaczać, że wartości sygnałów yi(k) dążą (w sensie granicy matematycznej) do jakiejś wartości co sugerowałoby słabszy warunek zakończenia obliczeń, a mianowicie

Okazuje się, że w ogólności taka stabilność nie musi zachodzić Okazuje się, że w ogólności taka stabilność nie musi zachodzić. Wszystko zależy od wartości wag wij oraz od postaci funkcji aktywacji. Także wybór wektorów sygnałów początkowych może mieć wpływ na końcową stabilność. W każdym razie dalej zajmiemy się takimi przypadkami, które dają odpowiedzi stabilne. Klaysczna sieć Hopfielda ma funkcję aktywacji typu signum (nieciągła bipolarna) oraz symetryczną macierz wag z zerami na przekątnej: Przy tych założeniach sieć jest stabilna.

Przykład (c.d.) Teraz zaszumimy (ang. noise) trzy cyfry: 1, 4 i 7, aby sprawdzić jaka będzie odpowiedź sieci. Obrazy kodujemy wg schematu: biały piksel = -1; czarny piksel = +1.

Po kilku iteracjach sieć prawidłowo rozpoznaje cyfrę 1 i cyfrę 4 Po kilku iteracjach sieć prawidłowo rozpoznaje cyfrę 1 i cyfrę 4. Natomiast pojawiają się problemy z rozpoznawaniem zaburzonej cyfry 7. W tym przypadku wektor kodujący zaburzoną cyfrę, czyli podany na wejście sieci generuje na wyjściu samego siebie. Możemy to zinterpretować tak, że sieć nie rozpoznała zaburzonej cyfry 7. Jest to punkt stały sieci. Oczywiście przykład jest bardzo prosty, gdyż użyliśmy małej matrycy, 3x4. W praktyce musimy stosować większą liczbę pikseli.

Przykład Wykorzystamy sieć Hopfielda do zapamiętania i rozpoznawania cyfr 0-9. Wzorcowe cyfry są zdefiniowane na matrycy o wymiarach 7x7 pikseli. Przedstawione są poniżej – zostały ona użyte do uczenia sieci metodą pseudoinwersji. Liczba neuronów sieci jest równa liczbie pikseli matrycy: 7·7=49. W kodowaniu użyto schematu:  → (-1),  → (+1).

Pierwszy wiersz – wzorce. Drugi wiersz – przykładowe zaburzone cyfry poprawnie rozpoznane. Trzeci wiersz – przykładowe obrazy, które nie zostały zakwalifikowane do kategorii z pierwszego wiersza. W przypadku cyfry 2 wydaje się to poprawne (mimo, że zaburzenie jest minimalne, ale dla cyfry 4 raczej uznalibyśmy to z błąd sieci.   ` Cyfry wzorcowe Wzorce Rozpoznane Wzorce klasyfikowane do innych kategorii