Ćwiczenie
Temat: Samoorganizująca się mapa Kohonena.
Przyjmując jako dane wejściowe zbiór punktów na płaszczyźnie losowanych
w przedziale (-1,..,1) zaprojektuj samoorganizującą się sieć neuronową składającą się ze stu neuronów.
N= 10x10;
p = rands(2,1000);
Dla projektowanego algorytmu przyjmij następujące parametry i założenia:
akt = 50; % Częstotliwość wyświetlania
max_pres = 2000; % Całkowita liczba epok
init_lr = 1; % Startowa wartość współczynnika uczenia
max_nb = max(max(m)); % Największe możliwe sąsiedztwo
lr_x = (1/max_pres)^(1/sqrt(max_pres*1000));
base_lr = 0.5*init_lr / (1+lr_x);
nb_x = (1/max_nb)^(10/max_pres);
Dla zaprojektowanego algorytmu przeprowadź proces uczenia wykorzystując metodę Kohonena.
dw(i,:) = lr*(ones(len,1)*p'-w(i,:)); %Korekta wag;
[x,y] = meshgrid(1:d1,1:d2); % Siatka symbolizująca rozmieszczenie neuronów
coord = [reshape(x,S,1) reshape(y,S,1)]; %Macierz współrzędnych do pomiaru metryki Manhatan
%Obliczanie dystansu pomiędzy wektorami w(i,:) oraz p na wejściu do poszcz. neuronów
for i=1:s
x = w(i,:)'*ones(1,nc); % W tym przypadku wystarczyłoby w(i,:)
e(i) = sum((x-p).^ 2) .^ 0.5; % Od każdego wiersza' macierzy w odejmujemy wektor p
end
Zamieść w sprawozdaniu kod źródłowy programu i wykresy demonstrujące jakość pracy sieci oraz wnioski wynikające z przeprowadzonych symulacji (przykładowy wynik symulacji zamieszczono poniżej).
Wygląd mapy Kohonena po zakończonym procesie uczenia oraz przykładowe punkty wylosowane w fazie testowania efektywności sieci.
Poszczególne parametry pochodzą z programu omawianego w ramach wykładu