Pamięci skojarzeniowe
Wiodącym obszarem zastosowań modelu dyskretnego jest
konstruowanie pamięci skojarzeniowych, w których
komórki pamięci adresowane są poprzez
swoją zawartość a nie za pomocą określonego adresu.
Zadaniem pamięci skojarzeniowej jest zapamiętanie danego zbioru
wzorców binarnych w taki sposób, żeby po otrzymaniu na wejściu nieznanego
wzorca binarnego pamięć odtwarzała na wyjściu ten z zapamiętanych
wzorców, który jest najbliższy w sensie odległości Hamminga
(patrz ramka). Inaczej
formułując problem, pamięć skojarzeniowa powinna spełniać dwa warunki:
- pokazanie na jej wejściu dowolnego z zapamiętanych wektorów
(wzorców) powoduje odtworzenie na wyjściu tego samego wektora,
- pokazanie na wejściu zaburzonej (,,w rozsądnych
granicach'') wersji dowolnego z zapamiętanych wektorów powoduje
odtworzenie na wyjściu poprawnej postaci tego wektora.
Odległość Hamminga
|
dla dwóch wektorów binarnych
i (ozn.
jest równa liczbie bitów, które są różne w tych wzorcach.
Na przykład dla , , , ponieważ wzorce
i różnią sie na dwóch pozycjach (drugiej i trzeciej).
|
|
|
Metodę konstruowania pamięci skojarzeniowej podaną przez Hopfielda
można streścić następująco. Rozważmy
zbiór złożony z wzorców bipolarnych (tzn. o elementach
należących do zbioru )
o długości każdy.
Transponowanie macierzy
|
Jeżeli jest macierzą, to
przez oznacza się zwykle macierz transponowaną, której
kolejnymi wierszami są kolejne kolumny macierzy , tzn.
jeżeli przez oznaczymy element macierzy , a przez
element macierzy , to zachodzi zależność:
|
|
|
Pamięć skojarzeniowa służąca do zapamiętania wzorców ze zbioru
zbudowana jest z neuronów
.
Kwadratowa macierz połączeń o wymiarach obliczana jest za
pomocą tzw. reguły Hebba:
|
(1) |
gdzie jest wagą połączenia wyjścia neuronu z wejściem
neuronu . W zapisie macierzowym powyższa zależność ma
postać:
|
(2) |
gdzie jest macierzą jednostkową wymiaru , a składa
się z wektorów bazowych zapisanych kolumnowo -
.
Przykładowo, dla zbioru wzorców
macierz otrzymana przy
zastosowaniu reguły Hebba wygląda następująco:
Rozpoznawanie wzorców z wykorzystaniem nauczonej sieci przebiega w
następujący sposób. Nieznany wzorzec
jest
pokazywany w warstwie wejściowej sieci, a następnie wszystkie neurony
obliczają swoje potencjały wejściowe , oraz
wyjściowe , tj.
|
(3) |
Następnie, otrzymany w powyższym układzie równań wektor
potencjałów
wyjściowych neuronów
jest podawany ponownie na
wejście, liczone są potencjały wejściowe i wyjściowe neuronów, itd.
Iteracyjny proces rozpoznawania może zakończyć sie
dwojako. Po pierwsze wtedy, gdy sieć osiąga stan stabilny, tj. w dwóch
kolejnych iteracjach wygenerowany jest taki sam wektor wyjściowy. Wektor
ten jest odpowiedzią sieci na wektor wejściowy . Drugi sposób
zakończenia działania sieci ma miejsce wtedy, gdy zostanie przekroczona
zadana z góry liczba iteracji. Sytuacja taka może mieć miejsce w
przypadku, gdy sieć oscyluje pomiędzy dwoma stanami, tj.
na zmianę generuje na wyjściu dwa różne wektory i według
schematu:
|
(4) |
Wracając do naszego przykładu, można łatwo policzyć (zostawiamy to jako
ćwiczenie !), że wskazanie na wejściu dowolnego z wektorów
powoduje odtworzenie na wyjściu tego samego wektora i to
już w pierwszej iteracji. W przypadku wektora proces rozpoznawania
prowadzi do powstania oscylacji z wektorami
.
[ Początek strony ]
[ MiNIWyklady ]
Wszystkie prawa zastrzeżone © 2000 Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej