Академический Документы
Профессиональный Документы
Культура Документы
Redes neuronales
Sesión 15 (16-10-14)
Alicia Riojas Cañari
Propósito
¿Qué es?
¿Cómo es su topología?
¿Cómo es su proceso de aprendizaje?
¿Cuál es su algoritmo?
¿Cómo implementarlo en MatLab?
¿Qué es?
Es una red neuronal artificial que emula una
característica del cerebro humano, el cual tiene
la capacidad de:
• formar mapas de características (mapas
topológicos) de las informaciones recibidas
desde el exterior,
• organizar las informaciones en muchas
regiones, de tal manera que diferentes
entradas sensoriales pueden llevar a una
misma región.
Es una red competitiva cuyo objetivo es
descubrir patrones significativos o característicos
de los datos de entrada.
Auto organización
por ejemplo una persona:
tiene sed en la playa o
se reúne con un grupo de amigos o
come un ceviche etc.
inmediatamente piensa
en una cerveza helada.
Son un tipo de red Topología
neuronal que realiza
conglomerados o mapas autoorganizativos.
Este tipo de redes se puede utilizar para conglomerar
el conjunto de datos en distintos grupos.
No utilizan un campo objetivo, es decir tienen
un aprendizaje no supervisado.
No pretenden predecir un resultado, sino intentan
revelar los patrones en el conjunto de campos de
entrada.
Por lo general, termina con unas pocas unidades que
resumen muchas observaciones (unidades fuertes) las
cuales representan posibles centros de
conglomerados.
Topología
Es una red de dos capas, una de entrada
y la otra de salida; con N y M neuronas
respectivamente, las conexiones entre la
capa de entrada y la de salida son de
tipo feedforward (hacia adelante), y
existe conexiones laterales entre las
neuronas de salida.
N M
Variables Clusters
Variantes
LVQ (Learning Vector Quantization) y
TPM (Topology-Preserving Map – más conocida
como SOM - self organizating map).
Salida
Salida
Entrada
Funcionamiento
La red realiza una tarea de clasificación, ya que ante una
variable de entrada devuelve a la neurona ganadora, es decir,
la clase a la que pertenece dicha información de entrada.
Algoritmo
Inicio del algoritmo
• Se inicializa los pesos sinápticos de la red (pueden
ser aleatorios o no).
• Se inicializan el radio topológico, el cual determina
el tamaño y las características del vecindario y
• La tasa de aprendizaje η(0) =1 valor que va
decreciendo durante el entrenamiento hasta ser
prácticamente cero. Cuando su valor es muy
pequeño la modificación de los pesos en cada
iteración es insignificante.
• Se determina el número máximo de iteraciones
MAXITER.
Algoritmo
Entrenamiento (1 de 3)
Para k=1 hasta completar la data de
entrenamiento
Se presenta a la red la k-esima información de
entrada en forma de un vector de valores
continuos Ek= (e1,e2........eN)k,
como es aprendizaje competitivo, se
determina como la “ganadora” a aquella
neurona j de salida cuyos pesos Wj sea los más
cercanos a la información de entrada Ek.
Algoritmo
Entrenamiento (2 de 3)
Una vez localizada la neurona ganadora, se
actualizan sus pesos así como también los de sus
vecinas. El tamaño del vecindario se puede
reducir en cada ajuste de pesos o puede
permanecer constante.
W(t+1) = W(t) + η(t)*(distancia entre la entrada k y
la neurona actual)
Entrenamiento (3 de 3)
Fase de funcionamiento
Tipo de
No supervisado
Aprendizaje
w1 0,60846 0,41007
w2 0,44298 0,42233
w3 0,56188 0,63237
w4 0,37003 0,48672
p= [0.2 0.5]
W4
p= [0.2 0.5]
W* = W4 la neurona ganadora es (0,37 0,49)
t=5
w1 0,76506
0,41493
w2 0,56644
0,83965
w3 0,42516
0,20986
w4 0,19522
0,54285
p= [0.2 0.5]
W* = W4
t = 1000
w1 0,29143
0,18848
w2 0,71599
0,24265
w3 0,21622
0,62459
w4 0,7131
0,81329
p= [0.2 0.5]
W* = W3
Sobre la base
de los Wj se
construyen
conjuntos de
Voronoi, el
perímetro de
los polígonos
generados es
equidistante a
los puntos
vecinos y
designa su área
de influencia
Unir las neuronas, tomar sus puntos medios y
trazar las perpendiculares
Usos: Sectorizar
-12.054
-77.109 -77.108 -77.107 -77.106 -77.105 -77.104
-12.055
-12.056
-12.057
-12.058
-12.059
-12.06
-12.061
-12.062
-12.063
-12.064
Copiar los
resultados y
llevarlos a excel
La suma de cada
columna es 1
-12.054
-77.109 -77.108 -77.107 -77.106 -77.105 -77.104
-12.055
-12.056
-12.057
-12.058 Series1
Series2
-12.059
Series3
-12.06 Series4
-12.061
-12.062
-12.063
-12.064
-12.054
-77.11 -77.108 -77.106 -77.104
-12.055
-12.056
Punto
90° -12.057
medio
-12.058 Series1
Series2
-12.059 Series3
Series4
-12.06 pesos
-12.061
-12.062
-12.063
-12.064
SCRIPT MatLab
LVQ
SOM
%LVQ Ingresar X en ventana de comandos % Se coloca el número de iteraciones (épocas) para
%ingresar X entrenar antes de parar
racimos =4; % Este es el numero de racimos. % y entrenar esta capa competitiva (puede tomar varios
puntos = 5; % Numero de puntos en cada racimo. segundos).
% Gráfica de los puntos almacenados en X. %
plot(X(1,:),X(2,:),'+r'); % Grafica los pesos actualizados de la capa en la misma
title('Vectores de Entrada'); grafica.
xlabel('p(1)'); red.trainParam.epochs = 100;
ylabel('p(2)'); red = train(red,X);
%% w = red.IW{1};
% Aqui NEWC usa tres argumentos de entrada, una matriz delete(circulos);
de Rx2 de valores plot(w(:,1),w(:,2),'ok');
% min y max para R elementos de entrada, el numero de %%
neuronas, y la razón % Ahora usamos la capa competitiva como un clasificador,
% de aprendizaje. donde cada neurona
%% Podemos graficar los vectores de pesos para ver su % corresponde a una categoría diferente. Aquí
intento inicial de presentamos el vector de entrada x
% clasificación. %
% Los vectores de pesos (marcados con o) se entrenaran %
de modo que queden % La salida, a, indica cual neurona esta respondiendo, y
% centrados en los racimos del vector de entrada por lo tanto a que
(marcados con +). % clase pertenece la entrada. Note que SIM regresa la
red = newc(X,racimos,0.1); salida en el formato de
w = red.IW{1}; % matriz esparcida para capas competitivas.
plot(X(1,:),X(2,:),'+r'); %x = [0.5; 0.9];
hold on; a = sim(red,x)
circulos = plot(w(:,1),w(:,2),'og');
SOM %
%EN EL EDITOR DEFINIR X = DATOS DE ENTRADA Y X = DATO A % Each neuron is represented by a red dot at the location of its two weights.
CLASIFICAR AMBOS EN R2 % Initially all the neurons have the same weights in the middle of the vectors,
%% Two-Dimensional Self-organizing Map % so only one dot appears.
% As in DEMOSM1, this self-organizing map will learn to represent different
% regions of the input space where input vectors occur. In this demo, plotsompos(net)
however, plot(X(1,:),X(2,:),'+r');
% the neurons will arrange themselves in a two-dimensional grid, rather than
a line. %%
% % Now we train the map on the 1000 vectors for 1 epoch and replot the
% Copyright 1992-2011 The MathWorks, Inc. network
% $Revision: 1.18.2.5 $ $Date: 2011/05/09 00:59:10 $ % weights.
%
%% % After training, note that the layer of neurons has begun to self-organize so
% We would like to classify 1000 two-element vectors occurring in a % that each neuron now classifies a different region of the input space, and
rectangular % adjacent (connected) neurons respond to adjacent regions.
% shaped vector space.
net.trainParam.epochs =20;
%X = rands(2,1000); net = train(net,X);
plot(X(1,:),X(2,:),'+r') plotsompos(net)
w = net.IW{1};
%% %%
% We will use a 5 by 6 layer of neurons to classify the vectors above. We % We can now use SIM to classify vectors by giving them to the network and
would % seeing which neuron responds.
% like each neuron to respond to a different region of the rectangle, and %
% neighboring neurons to respond to adjacent regions. % The neuron indicated by "a" responded with a "1", so x belongs to that
% class.
% The network is configured to match the dimensions of the inputs. This
% step is required here because we will plot the initial weights. Normally %x = [0.5;0.3];
% configuration is performed automatically by TRAIN. y = net(x)
net = selforgmap([2,2]);
net = configure(net,X);
%%
% We can visualize the network we have just created with PLOTSOMPOS.