Você está na página 1de 7

Redes Neurais no MATLAB

Redes SOM
- Self Organizing Maps -

Base de Dados de Animais

1
Topologias Disponveis

Vizinhana Hexagonal: hextop

Default

Topologias Disponveis
Vizinhana Quadrada:
Quadrada: gridtop

2
Topologias Disponveis
Vizinhana Aleatria:
Aleatria: randtop

Funes de Distncia
linkdist

Dij = 0, if I = j
= 1, if sum((Pi-Pj).^2).^0.5 is <= 1
= 2, if k exists, Dik = Dkj = 1
= 3, if k1, k2 exist, Dik1 = Dk1k2 = Dk2j = 1.
= N, if k1..kN exist, Dik1 = Dk1k2 = ...= DkNj = 1
= S, if none of the above conditions apply.

Default

3
Funes de Distncia

dist

Distncia Euclidiana

D= (X Y )
2

Funes de Distncia

mandist

Distncia de Manhattan

D = X Y

4
Criando uma Rede SOM
Valores mnimo e mximo
>> net = newsom( [min(P')' max(P')'], dos padres de entrada

[5 5], Especificao do tamanho da Mapa

'gridtop', Definio da Topologia

'dist', Definio da funo de distncia

0.9, Valor de na fase de ordenao

Nmero de ciclos na fase de


1000, ordenao

0.02, Valor de na fase de ajuste fino

1); Definio da vizinhana na fase de ajuste

Implementao em m-file
Arquivo som1.m

lenomes
load animais2.txt
P = animais2;
net = newsom([min(P')' max(P')'],[5 5], 'gridtop', 'dist', 0.9, 1000, 0.02, 1);
plotsom(net.layers{1}.positions)
drawnow
net.trainParam.epochs = 10000;
...

5
Implementao em m-file
Arquivo som1.m for j = 1:1,
net = train(net,P);
(continuao)
figure(2)
for i = 1:length(P),
a = sim(net, P(:,i));
pos = net.layers{1}.positions(:,find(a));
plot(pos(1), pos(2), '.')
hold on
text(pos(1), pos(2), [' ' nome(i,:)]);
xlim([-1 6])
ylim([-1 6])
set(gca, 'xtick', [])
set(gca, 'ytick', [])
end
title(sprintf('%d', j))
drawnow
hold off
end

Exemplos de Resultados

6
Exemplos de Resultados

Você também pode gostar