Capítulo 4

REDES NEURONALES CON APRENDIZAJE NO SUPERVISADO


4.2.5.              Simulaciones en MATLAB

Inicialización

 

 

P= Matriz de vectores de entrada.

S= Número de neuronas.

 

La función  initc toma una matriz de vectores de entrada P y un numero de neuronas S y regresa los pesos para una capa competitiva sin umbrales.

 

La función initc fija los umbrales en cero para cada peso Wij asocia una entrada i en el centro del intervalos de i.

 

Entrenamiento

 

 

Las redes competitivas se pueden entrenar con vectores de entrada con la regla de aprendizaje instar. Cada neurona compite para responder a un vector de entrada P. Si los umbrales son todos cero, la neurona cuyo vector de peso esté más próximo a P obtiene la más ata entrada de red y gana la competencia.

 

 

 

 

Puesto que la salida del vector a contiene sólo 1/0, se puede sustituir la regla instar (Learnis) por la regla de Kohonen (Learnk) disminuyendo el número de cálculos y haciendo el código anterior más eficiente.

 

 

 

 

La función trainc entrena una capa competitiva con vectores de entrada en orden aleatorio.

 

 

 

Donde:

 

disp_freq = 25

max_pres = 100

lr = 0.01

 

Trainc toma el peso W y el umbral b de una capa competitiva, una matriz de vectores de entrada P y los parámetros de entrenamiento tp y regresa  nuevos pesos.


 

Ejemplo:

 

En el editor de Matlab teclee el siguiente código que resuelve el problema anterior:

 

clear;echo on;clc;nntwarn off;

%se introducen los patrones de entada

P= [ -0.1961 0.1961 0.9806  0.9806 -0.5812 -0.8137;

      0.9806 0.9806 0.1961 -0.1961 -0.8137 -0.5812];

[W]= initc(P,3)

%entrenamiento de la red

[W]= trainc(W,P,[2 100 0.5])

a= simuc(P,W)

echo off 

En la ventana de comandos de Matlab aparece paso a paso la ejecución del programa, como sigue:

Cuadro de texto: P= [ -0.1961 0.1961 0.9806  0.9806 -0.5812   -0.8137;    [W]= initc(P,3)    W =        0.0835    0.0835        0.0835    0.0835        0.0835    0.0835        [W]= trainc(W,P,[2 100 0.5])    TRAINC: 0/100 epochs.    TRAINC: 10/100 epochs.    TRAINC: 20/100 epochs.    TRAINC: 30/100 epochs.    TRAINC: 40/100 epochs.    TRAINC: 50/100 epochs.    TRAINC: 60/100 epochs.    TRAINC: 70/100 epochs.    TRAINC: 80/100 epochs.    TRAINC: 90/100 epochs.    TRAINC: 100/100 epochs.    W =       -0.7829   -0.6120       -0.0185    0.9806        0.9806    0.0159    a= simuc(P,W)    a =       (2,1)        1       (2,2)        1       (3,3)        1       (3,4)        1       (1,5)        1       (1,6)        1    echo off

 


La salida del programa (Además del Proceso Descrito en la Ventana de Comandos de Matlab) es una gráfica donde aparecen los patrones de entrada en un plano de dos dimensiones, con la clasificación correspondiente (Frontera de Decisión). Esto se muestra en la Fig. 4.13.

 

Figura 4.13: Salida Red Hamming

 

atras indice adelante