Está en la página 1de 18

Mapa Auto Organizante para mapeo de una desigualdad, con 100 epoch y topologa cuadrada

Epoch 30

Epoch 60

Epoch 80

Mapa Auto Organizante para mapeo de una circunferencia, con 1000 epoch y topologa cuadrada

Epoch 1000

Mapa Auto Organizante para mapeo de una funcin cuadrtica, con 1000 epoch y topologa cuadrada

INTRODUCCIN

El

mapa

auto-organizativo

es

uno

de

los

modelos

ms

populares

de

redes

neuronales. Pertenece a la categora de las redes de aprendizaje competitivo. El mapa autoorganizativo se basa en el aprendizaje no supervisado, lo que significa que no es necesaria la
intervencin humana durante el aprendizaje y que los pequeos se necesita saber acerca de
las caractersticas de los datos de entrada. Podramos, por ejemplo, utilizar el SOM para los
datos de agrupacin sin conocer la pertenencia de clase de los datos de entrada.
El mapa auto-organizacin fue desarrollado por el profesor de Kohonen. El SOM se ha
demostrado ser til en muchas aplicaciones.
El algoritmo de SOM se basa en el aprendizaje no supervisado y competitivo. Proporciona una
topologa de preservar cartografa del espacio dimensional de alta a las unidades del
mapa. Las unidades de mapa, o neuronas, por lo general forman una red de dos dimensiones y
por lo tanto el mapeo es un mapeo de alta espacio tridimensional sobre un plano. La propiedad
de la topologa de la preservacin de los medios que la aplicacin conserva la distancia relativa
entre los puntos. Los puntos que estn cerca unos de otros en el espacio de entrada se
asignan a las unidades del mapa cercanos en el SOM. El SOM puede servir as como un
conjunto de herramientas de datos de grandes dimensiones de anlisis.

Arquitectura de SOM

Topologa del Mapa Auto Organizante


La topologa de SOM posee:

Dos capas: capa de entrada y la capa de salida (mapa).

Capas de entrada y de salida estn completamente conectadas.

Las neuronas de salida estn interconectadas dentro de un vecindario definido.

Una topologa (relacin de vecindad) se define en la capa de salida.

Topologa de Vecindad

Algoritmo

1. Inicializar pesos

Asignar a los pesos valores aleatorios pequeos

2. Presentar una entrada

El conjunto de aprendizaje se presenta repetidas veces hasta llegar a la convergencia


de la red

Actualizar alpha (reducir su valor)

3. Propagar el patrn de entrada hasta la capa de competicin

Obtener los valores de salida (distancias) de las neuronas de dicha capa

4. Seleccionar la neurona ganadora G

La de menor distancia al patrn

5. Actualizar conexiones entre capa de entrada y la neurona C

Actualizar tambin los pesos de sus vecinas segn el grado de vecindad

6. Si alpha se mantiene por encima del umbral de parada, volver a 2, en caso contrario

PROGRAMACION
AVION DE COMBATE
clear all;
close all;
clc
W1=0;
W2=0;
a=[
0.98 ...
0.96 ...
0.94 ...
0.92 0.92 0.92...
0.90 0.90 0.90...
0.88 0.88 0.88...
0.86 0.86 0.86 0.86 0.86...
0.84 0.84 0.84 0.84 0.84...
0.82 0.82 0.82 0.82 0.82 0.82 0.82...
0.80 0.80 0.80 0.80 0.80 0.80 0.80...
0.78 0.78 0.78 0.78 0.78 0.78 0.78 0.78
0.76 0.76 0.76 0.76 0.76 0.76 0.76 0.76
0.74 0.74 0.74 0.74 0.74 0.74 0.74 0.74
0.72 0.72 0.72 0.72 0.72 0.72 0.72 0.72
0.70 0.70 0.70 0.70 0.70 0.70 0.70 0.70
0.68 0.68 0.68 0.68 0.68 0.68 0.68 0.68
0.68 0.68 0.68 0.68 0.68...
0.66 0.66 0.66 0.66 0.66 0.66 0.66 0.66
0.66 0.66 0.66 0.66 0.66 0.66 0.66...
0.64 0.64 0.64 0.64 0.64 0.64 0.64 0.64
0.64 0.64 0.64 0.64 0.64 0.64 0.64...
0.62 0.62 0.62 0.62 0.62 0.62 0.62...
0.60 0.60 0.60 0.60 0.60 0.60 0.60...
0.58 0.58 0.58 0.58 0.58 0.58 0.58 0.58
0.56 0.56 0.56 0.56 0.56 0.56 0.56 0.56
0.54 0.54 0.54 0.54 0.54 0.54 0.54 0.54
0.52 0.52 0.52 0.52 0.52 0.52 0.52 0.52
0.50 0.50 0.50 0.50 0.50 0.50 0.50 0.50
0.48 0.48 0.48 0.48 0.48 0.48 0.48 0.48
0.46 0.46 0.46 0.46 0.46 0.46 0.46 0.46
0.44 0.44 0.44 0.44 0.44 0.44 0.44 0.44
0.42 0.42 0.42 0.42 0.42 0.42 0.42 0.42
]

0.78...
0.76...
0.74 0.74
0.72 0.72
0.70 0.70
0.68 0.68

0.74...
0.72 0.72 0.72...
0.70 0.70 0.70 0.70 0.70...
0.68 0.68 0.68 0.68 0.68 0.68

0.66 0.66 0.66 0.66 0.66 0.66 0.66 0.66


0.64 0.64 0.64 0.64 0.64 0.64 0.64 0.64

0.58...
0.56 0.56
0.54 0.54
0.52 0.52
0.50 0.50
0.48 0.48
0.46 0.46
0.44 0.44
0.42...

0.56...
0.54...
0.52 0.52
0.50 0.50
0.48 0.48
0.46 0.46
0.44...

0.52...
0.50...
0.48 0.48 0.48...
0.46 0.46 0.46...

b = [
0.78 ...
0.78 ...
0.78 ...
0.76
0.78
0.76
0.78
0.76
0.78
0.74
0.76
0.74
0.76
0.72
0.74
0.72
0.74
0.70
0.72
0.70
0.72

0.80 ...
0.80 ...
0.80 ...
0.78
0.80
0.78
0.80
0.76
0.78
0.76
0.78
0.74
0.76
0.74
0.76

0.82 ...
0.82 ...
0.80
0.82
0.80
0.82
0.78
0.80
0.78
0.80

0.84 ...
0.84 ...
0.82
0.84
0.82
0.84

0.86 ...
0.86 ...

0.68
0.70
0.72
0.74
0.88 ...
0.66
0.68
0.70
0.72
0.86
0.88
0.90 ...
0.64
0.66
0.68
0.70
0.84
0.86
0.88
0.90
0.58
0.60
0.62
0.64
0.78
0.80
0.82
0.84
...
0.56
0.58
0.60
0.62
0.76
0.78
0.80
0.82
0.98
1.00 ...
0.56
0.58
0.60
0.62
0.76
0.78
0.80
0.82
0.98
1.00 ...
0.72
0.74
0.76
0.78
0.72
0.74
0.76
0.78
0.70
0.72
0.74
0.76
0.68
0.70
0.72
0.74
0.88 ...
0.68
0.70
0.72
0.74
0.88 ...
0.66
0.68
0.70
0.72
0.86
0.88
0.90 ...
0.66
0.68
0.70
0.72
0.86
0.88
0.90 ...
0.64
0.66
0.68
0.70
0.84
0.86
0.88
0.90
0.64
0.66
0.68
0.70
0.84
0.86
0.88
0.90
0.62
0.64
0.66
0.68
0.94 ...
0.62
0.64
0.66
0.74

0.76

0.78

0.80

0.82

0.84

0.86

0.74

0.76

0.78

0.80

0.82

0.84

0.72
0.74
0.92 ...
0.66
0.68
0.86
0.88

0.76

0.78

0.80

0.82

0.70
0.90

0.72
0.92

0.74
0.94

0.76
0.96

0.98

0.64
0.84

0.66
0.86

0.68
0.88

0.70
0.90

0.72
0.92

0.74
0.94

0.96

0.64
0.84

0.66
0.86

0.68
0.88

0.70
0.90

0.72
0.92

0.74
0.94

0.96

0.80
0.80
0.78
0.76

0.82
0.82
0.80
0.78

0.84 ...
0.84 ...
0.82
0.84
0.80
0.82

0.86 ...
0.84
0.86

0.76

0.78

0.80

0.82

0.84

0.86

0.74

0.76

0.78

0.80

0.82

0.84

0.74

0.76

0.78

0.80

0.82

0.84

0.72
0.74
0.92 ...
0.72
0.74
0.92 ...
0.74
0.78

0.76

0.78

0.80

0.82

0.76

0.78

0.80

0.82

0.82

0.88

0.90

0.92

0.90

0.92

0.94];

0.78

%% Pesos
pair(:,1)=b;
pair(:,2)=a;
counter=0;
while counter<100
W1=rand(1);
if W1(1,1)<=1 & W1(1,1) >= 0.9
counter=counter+1;
w1(counter)=W1;
end
end
counter=0;
while counter<100
W2=rand(1);
if W2(1,1)<=1 & W2(1,1) >= 0.9
counter=counter+1;
w2(counter)=W2;
end
end
%step 0

0.82

M=100;
weight=[w1;w2];
rate=0.6;
radius=5;
g=weight;

%cluster units
%initial weight w
%initial learning rate
%radius
%step 1

%STEP 1
disp('Aprendiendo')
epoch = 0;
while epoch < 1000
epoch = epoch + 1;
for i = 1:1:281
%STEP 2 3
for j = 1:1:M
D(j)=sum((weight(:,j)'-pair(i,:)).^2);
end
%STEP 4
[Y,J] = min(D);
%Neighborhoods of radi
K=J;
neibor = J-radius:1:J+radius;
neibor1 = K-radius:1:K+radius;
for v1=1:1:size(neibor1,2)
for v=1:1:size(neibor,2)
J=neibor(v);
K=neibor1(v1);
if J>0 & J<100
if K>0 & K<100
weight(:,J)=weight(:,J)+rate*((pair(i,:)'-weight(:,J)));
end
end
end
end
we0 = g;
if epoch == 100
we100=weight;
rate100=rate;
elseif epoch == 200
we200=weight;
rate200=rate;
elseif epoch == 300
we300=weight;
rate300=rate;
elseif epoch == 600
we600=weight;
rate600=rate;
elseif epoch == 800
we800=weight;
rate800=rate;
elseif epoch == 1000
we1000=weight;
rate1000=rate;
end
end
rate = rate - 0.0006;
if epoch == 1
radius = 5;
elseif epoch == 100

radius =
elseif epoch
radius =
elseif epoch
radius =
elseif epoch
radius =
elseif epoch
radius =
end

4;
==
3;
==
2;
==
1;
>=
0;

200
300
600
800

end
%plotting initial training points
axis([0 1 0 1]);
axis(axis);
grid on;
hold on
figure(2)
plot(pair(:,1)',pair(:,2)','go')
hold on
axis([0 1 0 1]);
axis(axis);
hold
title('kohonen net input')
xlabel('X1');
ylabel('X2');
pause
clf
%plotting cluster for different epochs
disp('Ready to plot . . ')

plot(we0(1,:),we0(2,:))
hold
plot(we0(1,:),we0(2,:),'go')
title('kohonen self organitazing map
xlabel('W1');
ylabel('W2');

epoch10

alpha = 0.6')

grid on;
hold on
axis([0 1 0 1]);
axis(axis);
%print g2.ps
pause
hold off
clf

plot(we100(1,:),we100(2,:))
hold
plot(we100(1,:),we100(2,:),'go')
title(['konohen self organizing map epoch 100 alpha= ' ,num2str(rate100)])
xlabel('W1');
ylabel('W2');

grid on;
hold on
axis([0 1 0 1]);
axis(axis);
%print g3.ps
pause
hold off
clf
axis([0 1 0 1]); axis(axis)
plot(we200(1,:),we200(2,:))
hold
plot(we200(1,:),we200(2,:),'go')
title(['konohen self organizing map epoch 200 alpha= ' ,num2str(rate200)])
xlabel('W1');
ylabel('W2');
grid on;
hold on
axis([0 1 0 1]);
axis(axis);
%print g4.ps
pause
hold off
clf

axis([0 1 0 1]); axis(axis)


plot(we300(1,:),we300(2,:))
hold
plot(we300(1,:),we300(2,:),'go')
title(['konohen self organizing map epoch 300 alpha= ' ,num2str(rate300)])
xlabel('W1');
ylabel('W2');
grid on;
hold on
axis([0 1 0 1]);
axis(axis);
%print g5.ps
pause
hold off
clf

axis([0 1 0 1]); axis(axis)


plot(we600(1,:),we600(2,:))
hold
plot(we600(1,:),we600(2,:),'go')
title(['konohen self organizing map epoch 600 alpha= ' ,num2str(rate600)])
xlabel('W1');
ylabel('W2');
grid on;
hold on
axis([0 1 0 1]);
axis(axis);
%print g5.ps
pause
hold off

clf

axis([0 1 0 1]); axis(axis)


plot(we800(1,:),we800(2,:))
hold
plot(we800(1,:),we800(2,:),'go')
title(['konohen self organizing map epoch 80 alpha= ' ,num2str(rate800)])
xlabel('W1');
ylabel('W2');
grid on;
hold on
axis([0 1 0 1]);
axis(axis);
%print g5.ps
pause
hold off
clf
%%%%%
axis([0 1 0 1]); axis(axis)
plot(we1000(1,:),we1000(2,:))
hold
plot(we1000(1,:),we1000(2,:),'go')
title(['konohen self organizing map epoch 1000 alpha
xlabel('W1');
ylabel('W2');
grid on;
hold on
axis([0 1 0 1]);
axis(axis);

= ' ,num2str(rate1000)])

Universidad San Martn De Porres


Facultad De Ingeniera y Arquitectura-FIA

Redes Neuronales

Ttulo: Mapa auto Organizante

Profesor:

Jimnez Motte, Fernando

Alumno:
Arrieta Gallegos, Juan

Fecha de entrega: 07 de Mayo del 2013

Mapa de Avin en Excel


Se realiz teniendo en cuenta las coordenadas del objeto a mapear

Mapa de Avin en Excel


Se realiz teniendo en cuenta las coordenadas del objeto a mapear

También podría gustarte