-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathP6_Katarzyna_Giadla.m
48 lines (42 loc) · 2.51 KB
/
P6_Katarzyna_Giadla.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
close all; clear all; clc;
% A B C D E F G H I J K L M N O P R S T U
in_value = [ 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1;
1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0;
1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0;
1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 1 0;
0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1;
1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0;
1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 1;
1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0;
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0;
1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 1;
1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1;
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0;
1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0;
1 1 1 1 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1;
1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0;
0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1;
0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 1 1;
0 1 1 1 1 0 1 0 0 0 0 1 0 0 1 0 0 1 0 1;
1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 1 0 0 0];
dimensions = [12 12]; % wymiary wektora wyjściowego -> ilość neuronów i możliwości cech
coverstep = 50; %etapy szkolenia w celu pokrycia przestrzeni wejściowej
initNeighbor = 3; % wejściowy rozmiar sąsiedztwa
topologyFcn = 'hextop'; %funkcja topologiczna -> kształt, jaki będą przyjmować nasze dane
% mogą przyjmować kształt trójkąta, siatek kwadratowych, sześciokątów, itp.
distanceFcn = 'dist'; %funkcja dystansu neronów - miara euklidesowa (znormalizowana)
% domyślnym parametrem jest odległość między neuronami warstwy z
% uwzglednieniem ich położenia
net = selforgmap(dimensions, coverstep, initNeighbor, topologyFcn, distanceFcn); %tworzenie mapy samoorganizacji
net.trainFcn = 'trainbu'; %uczenie bez nauczyciela
net.trainParam.epochs = 600;
net.trainParam.lr = 0.5; %współczynnik uczenia
[net, tr] = train(net, in_value); %trening sieci
y = net(in_value); %testowanie i zapis wyników osiągniętych przez sieć
indexOfOutput = vec2ind(y); % wskaźniki, do którego neuronu podobny jest dany neutron