sprawozdanie cw 3


Narzędzia sztucznej inteligencji - laboratorium

Adam Czech

Gabriel Kachel

rok III INF I st., gr. L6

środa, godz. 14:40

Ćwiczenie 3: Rekurencyjna sieć Hopfielda jako pamięć skojarzeniowa - rekonstrukcja wzorców znakowych

Ćwiczenie wykonano w dniach: 28.05, 04.06.2014

Sprawozdanie oddano dnia:

10.06.2014

ocena:

1. Cel i zakres ćwiczenia.

Ćwiczenia ma na celu zastosowanie rekurencyjnej sieci Hopfielda do usuwania zakłóceń z map bitowych, zawierających obraz liter „E”, „F”, „G”, „H”. Działanie sieci umożliwia rekonstrukcję zniekształconego obrazu, poprzez skojarzenie go z oryginalnym wzorcem, pełniącym rolę tzw. Atraktora, czyli punktu stabilnego sieci.

2. Wstęp teoretyczny

Jednym z najpopularniejszych typów sieci rekurencyjnych jest sieć Hopfielda. Podstawowe cechy tej sieci:

- struktura jednowarstwowa, ze sprzężeniem zwrotnym,

- nieliniowa funkcja aktywacji neuronów,

- brak wejść zewnętrznych,

- do wejść neuronów podawane są sygnały wyjściowe wszystkich pozostałych neuronów, opóźnione o jedną chwilę czasową.

0x01 graphic

Rys. 1. Struktura sieci rekurencyjnej Hopfielda [1]

Parametry sieci Hopfielda:

macierz współczynników wagowych W o wymiarach N x N (N - liczba neuronów)

0x01 graphic

niekiedy uwzględnia się również N-elementowy wektor współczynników progowych b:

0x01 graphic

potencjał i-tego neuronu w k-tym kroku działania sieci:

0x01 graphic

funkcja aktywacji - najczęściej progowa , progowa symetryczna lub liniowa z nasyceniem :

0x01 graphic

0x01 graphic

0x01 graphic

Z siecią Hopfielda związana jest ponadto tzw. funkcja energetyczna, przyjmująca w kolejnym, k-tym kroku działania sieci następującą wartość: [1]

0x01 graphic

gdzie y(k) jest wektorem wartości sygnałów wyjściowych sieci w k-tym kroku: [1]

0x01 graphic

3. Przygotowanie danych i utworzenie sieci Hopfielda

Na samym początku ćwiczenia zdefiniowaliśmy cztery macierze o wymiarach 6x8, reprezentujące mapy bitowe naszych liter. Macierze wypełnialiśmy „1” dla zapalonego piksela lub „-1” dla zgaszonego.

A=[-1,-1,-1,-1,-1,-1,

-1,1,1,1,1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1,

-1,1,1,1,1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1,

-1,1,1,1,1,-1]

B=[-1,-1,-1,-1,-1,-1,

-1,1,1,1,1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1,

-1,1,1,1,1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1]

C=[-1,-1,-1,-1,-1,-1,

-1,-1,1,1,1,1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,1,1,1,

-1,1,-1,-1,-1,1,

-1,1,-1,-1,-1,1,

-1,-1,1,1,1,1]

D=[-1,-1,-1,-1,-1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,1,1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1]

Kolejnym krokiem była wizualizacja naszych liter, by to przeprowadzić użyliśmy funkcję subplot oraz hintonw, by móc wyświetlić wszystkie litery w jednym oknie graficzny

figure(1)

subplot(2,2,1)

hintonw(A);

subplot(2,2,2)

hintonw(B);

subplot(2,2,3)

hintonw(C);

subplot(2,2,4)

hintonw(D);

Otrzymaliśmy następujące obrazy:

0x01 graphic

Rys. 2. Wizualizacja znaków wzorcowych.

Kolejnym etapem ćwiczenia było utworzenie macierzy atraktorów T. By to wykonać musieliśmy przekształcić macierze wejściowe obrazów na macierz o rozmiarze 48x1, zrobiliśmy to za pomocą funkcji reshape. Nowo powstała macierz T ma rozmiar 48x4, gdyż w kolejnych kolumnach znajdują się poszczególne atraktory.

A1=reshape(A,48,1);

B1=reshape(B,48,1);

C1=reshape(C,48,1);

D1=reshape(D,48,1);

T=[A1,B1,C1,D1]

Po sprawdzeniu poprawności macierzy T, wykorzystując funkcję newhop utworzyliśmy sieć Hopfielda, dla której atraktorami są znaki wzorcowe:

net = newhop(T)

Kolejną czynnością było dopisanie do skryptu instrukcji, które wyświetlały rozmiary i zawartość macierzy współczynników wagowych oraz wektora współczynników progowych:

disp('Rozmiar macierzy wag: ' )

disp(net.LW)

disp('Zawartość macierzy wag: ')

disp(net.LW{1})

disp('Rozmiar wektora wsp. progowych: ')

disp(net.b)

disp('Zawartość wektora wsp. progowych: ')

disp(net.b{1})

4. Badanie właściwości skojarzeniowych utworzonej sieci Hopfielda

By przetestować naszą sieć Hopfielda, sprawdziliśmy, czy sieć potrawi odtworzyć oryginalne obrazy liter na podstawie ich zakłóconych obrazów. W tym celu utworzyliśmy macierz TZ.

A2=[-1,-1,-1,-1,-1,-1,

-1,-1,1,1,1,-1,

-1,-1,-1,1,-1,-1,

-1,1,1,1,-1,-1,

-1,1,1,1,1,-1,

-1,1,1,1,-1,-1,

-1,1,-1,-1,-1,-1,

-1,1,1,1,1,-1]

B2=[-1,-1,1,-1,-1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,-1,-1,

-1,1,-1,1,-1,-1,

-1,1,1,1,1,-1,

-1,1,1,-1,-1,1,

-1,1,-1,-1,-1,-1,

-1,1,-1,-1,-1,-1]

C2=[-1,-1,-1,-1,-1,-1,

-1,-1,1,1,1,1,

-1,1,-1,-1,-1,-1,

-1,1,-1,1,-1,1,

-1,1,-1,1,1,1,

-1,1,1,-1,-1,1,

-1,1,-1,1,-1,1,

-1,-1,1,1,1,1]

D2=[-1,-1,1,-1,-1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,1,1,1,-1,

-1,1,-1,1,1,-1,

-1,1,-1,-1,1,-1,

-1,1,-1,-1,1,-1]

figure(2)

subplot(2,2,1)

hintonw(A2);

subplot(2,2,2)

hintonw(B2);

subplot(2,2,3)

hintonw(C2);

subplot(2,2,4)

hintonw(D2);

A3=reshape(A2,48,1);

B3=reshape(B2,48,1);

C3=reshape(C2,48,1);

D3=reshape(D2,48,1);

TZ=[A3,B3,C3,D3]]

Następnie zasymulowaliśmy działanie sieci Hopfielda, podając jako warunki początkowe stany reprezentujące zakłócone obrazy:

Y=sim(net,{4 5}, {}, {TZ})

Gdzie:

Net - jest zmienną reprezentującą utworzono uprzednio sieć,

Pierwsza zmienna to LS, która reprezentuje liczbę różnych stanów początkowych, dla których chcemy przeprowadzić symulację, w naszym przypadku jest to 4, gdyż mamy 4 literki

Druga zmienna to KS, czyli liczba kroków czasowych symulacji w naszym przypadku 5.


W wyniku funkcji sim otrzymujemy zmienną Y, która jest tablicą macierzy. W naszym przypadku składa się ona z 5 macierzy, gdyż tyle kroków działania sieci symulujemy (KS=5). W kolejnym kroku wyświetliliśmy macierze wchodzące w skład tablicy Y:

whos Y

disp(Y)

disp(Y{1})

disp(Y{2})

disp(Y{3})

disp(Y{4})

disp(Y{5})

Następnie przeprowadziliśmy wizualizację stanów sieci w kolejnych krokach jej działania.

figure(2)

for i=1:4

subplot(2,2,i)

hintonw(reshape(TZ(:,i),8,6))

end

pause

for j=1:5

for k=1:4

subplot(2,2,k)

Z=reshape(Y{j}(:,k),8,6)

hintonw(Z)

end

pause

end

Wizualizacja obrazów z kolejno, 1, 3 i wieloma zakłóceniami

0x01 graphic

Rys. 3. Wizualizacja znaków z jednym zakłóceniem.

0x01 graphic

Rys. 4. Wizualizacja znaków z trzema zakłóceniami.

0x01 graphic

Rys. 5. Wizualizacja znaków z wieloma zakłóceniami.

0x01 graphic

Rys. 6. Wizualizacja rekonstrukcji znaków z jednym zakłóceniem

0x01 graphic

Rys. 7. Wizualizacja rekonstrukcji znaków z trzema zakłóceniami

0x01 graphic

Rys. 8. Wizualizacja rekonstrukcji znaków z wieloma zakłóceniami - krok 1

0x01 graphic

Rys. 9. . Wizualizacja rekonstrukcji znaków z wieloma zakłóceniami - krok 2

0x01 graphic

Rys. 10. Wizualizacja rekonstrukcji znaków z wieloma zakłóceniami - krok 3

0x01 graphic

Rys. 11. Wizualizacja rekonstrukcji znaków z wieloma zakłóceniami - krok 4

0x01 graphic

Rys. 12. Wizualizacja rekonstrukcji znaków z wieloma zakłóceniami - krok 5

6.Wnioski

W ćwiczeniu zapoznaliśmy się z rekurencyjną siecią Hopfielda i zastosowaliśmy sieć do usuwania zakłóceń z map bitowych o wymiarach 8x6 pikseli, zawierających obrazy liter E, F, G i H.

Przygotowanie map bitowych oraz tworzenie sieci Hopfielda odbyło się bez większych trudności.

Następnym etapem naszej pracy było sprawdzenie możliwości skojarzeniowych naszej utworzonej wcześniej sieci, aby tego dokonać wprowadziliśmy początkowo tylko jedno zakłócenie (Rys. 3.), sieć odpowiedziała zgodnie z założeniem ćwiczenia czyli prawidłowo skojarzyła mapę bitową pomimo zakłócenia (Rys. 6.). Następnie zwiększaliśmy ilość zakłóceń mapy bitowej do 3 (Rys. 4.), sieć nadal prawidłowo kojarzyła litery (Rys.7.). Po wprowadzenia do wzorca mapy bitowej większej ilości błędów (Rys. 5.), postanowiliśmy przedstawić proces kojarzenia liter przez sieć (Rys. 8, 9, 10, 11, 12.), jak widać sieć nadal poprawnie odczytywała zakłócone litery i potrafiła je zrekonstruować.

Naszym zdaniem sieć Hopfielda, którą stworzyliśmy zgodnie z poleceniami ze skryptu, działa poprawnie, a jej możliwości są naprawdę duże.

Wykaz literatury

1.Bartecki K.: Sztuczne sieci neuronowe w zastosowaniach. Zbiór ćwiczeń laboratoryjnych z wykorzystaniem przybornika Neural Network Toolbox programu Matlab. Skrypt Politechniki Opolskiej nr 289, Opole 2010.

2.Bartecki K.: Sztuczne sieci neuronowe. Materiały do wykładów z sieci neuronowych.

10



Wyszukiwarka

Podobne podstrony:
Karta sprawozdania cw 10
chemia fizyczna wykłady, sprawozdania, opracowane zagadnienia do egzaminu Sprawozdanie ćw 7 zależ
Sprawozdanie ćw 1 Poprawa
Sprawozdanie ćw"
sprawozdanie z ćw 7,8 KWP1
nom sprawozdanie cw 5
SPRAWOZDANIE 3 Ćw
sprawozdanie ćw 2 diody
sprawozdanie ćw nr 1(1)
nom sprawozdanie cw 9
@sprawozdanie cw 3 id 38478 Nieznany (2)
@sprawozdanie cw 4 id 38479 Nieznany (2)
Karta sprawozdania cw 4
lampa Browna, studia, studia, sprawozdania, Ćw 24, ćw24 zaliczone
sprawozdanie1 cw.4, Technologia chemiczna, 5 semestr, analiza instrumentalna, sprawozdania
Sprawozdanie ćw.4, Technologia żywności, semestr II, fizyka, x
SPRAWOZDANIE CW 14, Semestr 1, Fizyka

więcej podobnych podstron