Академический Документы
Профессиональный Документы
Культура Документы
Axon
Dendritas
Synapses
Mg. Pedro Freddy Huamaní Navarrete 1 2 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Donde:
Mg. Pedro Freddy Huamaní Navarrete 3 4 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Se caracteriza porque la entrada y la salida de la función, Figura 1.5. Funciones de transferencia “logsig” y “tansig”
son del tipo real. El comando o función que realiza dicha
operación se denomina “purelin”. Es utilizada por las Esta función es utilizada por la red Multicapa con
redes lineales y en ocasiones en la última capa de una regla de aprendizaje Backpropagation.
red Multicapa. En la figura 1.4 se muestra dicha función.
>> V = -8:0.2:8;
>> V = -8:0.2:8; >> Y = logsig( V );
>> Y = purelin( V );
>> subplot(121), plot( V , Y )
>> plot( V , Y )
>> Y = tansig( V );
>> subplot(122), plot( V , Y )
Mg. Pedro Freddy Huamaní Navarrete 5 6 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
>> Y = compet( V );
>> subplot(121), stem( V );
>> subplot(122), stem( Y );
Mg. Pedro Freddy Huamaní Navarrete 7 8 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
b2 b1
x1 b1
y2
b3 x1 b2 y1
x2
b2
y3
b3
x2 y2
Mg. Pedro Freddy Huamaní Navarrete 9 10 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
w 11 w 12 b1
x1 En forma matricial se tendría:
X 2 x1 = W31xC2 = w 21 w 22 B13Cx1 = b 2
x2 Y = ϕ( W * X + B)
w 31 w 32 b3
y1 X* = Y
w w 12 w 13
Y 1C
3 x1 = y2 W 2C
2x3 = 11
w 21 w 22 w 23 Donde “X* = Y”, indica que los nuevos cálculos se
y3 obtienen con el nuevo vector de entrada.
Mg. Pedro Freddy Huamaní Navarrete 11 12 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
a. Sin Entrenamiento
Entrada Salida
R.N.A
Es un caso donde los pesos de la red neuronal no se X Y
entrenan sino se calculan. Un ejemplo de ello lo podemos
encontrar en la red neuronal recurrente Hopfield.
b. Entrenamiento Supervisado W
Es cuando se hace necesaria la presencia de un tutor Figura 1.13. Diagrama de bloques del Entrenamiento No
para la supervisión. Es decir, existe una comparación Supervisado.
entre el vector de salida total y un vector de salida
deseada. Un ejemplo de ello lo podemos encontrar en la
red neuronal Perceptron. Ver la figura 1.12. 1.7 Algunas Aplicaciones
Entrada Salida
Actualmente, las RNAs vienen siendo utilizadas en
R.N.A Y diversos sectores. Así tenemos el sector industrial,
X
médico, ambiental, de energía, entre otros. A
continuación se cita algunas aplicaciones principales de
Error - las RNAs.
W Salida
+ Deseada • Procesamiento de imágenes y de voz
+ Y
• Reconocimiento de patrones
• Identificación de Sistemas
Figura 1.12. Diagrama de bloques del Entrenamiento • Planeamiento y predicción
Supervisado • Interfaces adaptivas para sistemas Hombre/Máquina
• Control y optimización
c. Entrenamiento No Supervisado • Filtrado de señales.
• Sistemas de visión para robots
Es cuando no se hace necesaria la presencia de un tutor
para la supervisión. Un ejemplo de ello lo encontramos • Entre otras.
en las redes neuronales Competitivas. Ver la figura 1.13.
1.8 Toolbox de Redes Neuronales
Mg. Pedro Freddy Huamaní Navarrete 13 14 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Por ejemplo, de toda esa lista mostrada, podemos ver las other:
funciones utilizadas para la creación, entrenamiento y userdata: (user stuff)
simulación de la red neuronal Perceptron, que es objeto
de estudio en el capítulo 2. De esta manera, los pesos y los bias se visualizan:
>> help newp % crea >> net.iw %pesos de la primera capa: Cell Array
>> help train % entrena >> net.lw %pesos de las demás capas: Cell Array
>> help sim % simula >> net.b %bias de todas las capas: Cell Array
>> net.iw{1} %para observar el contenido en la
Asimismo, es necesario añadir que las funciones de %primera ubicación del Cell Array.
creación de las distintas redes neuronales, establecen
una variable denominada “net” que es del tipo “network También, es posible ver y configurar distintos parámetros
object”. Esto quiere decir que es una variable objeto, como por ejemplo para la adaptación, para el
pues a su vez contiene más variables. entrenamiento, las funciones para el entrenamiento, las
estructuras sub-objetos y las características de la
Por ejemplo: arquitectura de la red neuronal.
>> net = newp( [ -1 2 ; -1 2 ] ,1) >> net.adaptParam.passes = 2; % número de pasos
net =
Neural Network object:
>> net.trainParam % por defecto
architecture: >> net.trainParam.epochs = 50; % número de iteraciones
numInputs: 1 >> net.trainParam.goal = 0.001; % desempeño global
numLayers: 1
biasConnect: [1] >> net.trainParam.show = 5; % mostrar cada 5 iterac.
inputConnect: [1] >> net.trainParam.time = 1; % tiempo máximo para
layerConnect: [0] % entrenamiento (seg.)
outputConnect: [1]
targetConnect: [1]
>> net.adaptFcn % por defecto
.
>> net.initFcn % por defecto
. >> net.performFcn % por defecto
. >> net.trainFcn % por defecto
parameters: >> help trains % función de entren. secuencial
adaptParam: .passes >> help initlay % función de inicializ. por capa
initParam: (none) >> help mae % función error absoluto
Mg. Pedro Freddy Huamaní Navarrete 15 16 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 17 18 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
1. Inicializar los pesos sinápticos y los bias con valores clases diferentes. A continuación se muestra, en la figura
aleatorios y pequeños. 2.2, la tabla de la función AND de 2 entradas y la red
2. Aplicar un padrón de entrada y obtener el vector de neuronal utilizada. Las dos primeras columnas de la tabla
salida total. mostrada, indican todas las combinaciones posibles para
los cuatro vectores de entrada, con dos elementos cada
⎧ a , si v j ≥ θ j uno. En cuanto que la tercera columna, representa la
yj = ⎨ salida deseada (un elemento) por cada vector de
⎩− a , si v j < θ j entrada.
Donde: b1
x1 x2 Yd
x1
θj : representa a un umbral seleccionado. 1 1 1
y1
a, -a: representa el valor de salida que podrá ser 1 0 0
{1,0} o {1,-1}. 0 1 0
x2
3. Obtener el error a partir de la expresión: E = Yd – Y. 0 0 0
Donde Yd representa el vector de salida deseada.
4. Actualizar los pesos y bias (Si el Error ≠ 0).
Figura 2.2. Tabla de la Función AND y RNA utilizada
W = W + E * XT para su representación.
B = B+E
Los vectores de entrada y de salida deseada serán:
5. Retornar al paso número 2.
>> X = [ 1 1 0 0 ; 1 0 1 0 ] ;
La función “newp” del Toolbox Neural Network del
>> Yd = [ 1 0 0 0 ];
Matlab, crea una red Perceptron. Asimismo, la función
“train” realiza el entrenamiento de los pesos y bias de Luego, se procede a crear la red neuronal Perceptron
esta red neuronal. con la función “newp”. En esta función se debe incluir la
cantidad de neuronas, una matriz con los valores
2.3 Ejemplo Práctico con la Red Perceptron máximos y mínimos por cada elemento del vector de
entrada, y el tipo de función de transferencia utilizada. La
Con ayuda de una red Perceptron, es posible representar regla de aprendizaje utilizada es la perteneciente a
las funciones lógicas AND y OR, de 2, 3 o más entradas. Perceptron: “learnp”.
>> help newp
Representación de la Función AND de 2 entradas >> net = newp( [ 0 1 ; 0 1 ] , 1 , 'hardlim' , 'learnp' );
>> net.iw %tamaño de la matriz de pesos
La función AND de 2 entradas, se puede representar con >> net.iw{1} %pesos iniciales
una sola neurona, la cual realizará la clasificación en dos ans =
Mg. Pedro Freddy Huamaní Navarrete 19 20 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 21 22 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Es decir, existe una clasificación en dos clases La red Perceptron cuenta con limitaciones al no
diferentes, una clase a un lado de la recta observada en poder clasificar padrones linealmente no
el gráfico, y la otra clase al otro lado de la misma recta separables [3].
inclusive esta.
Problemas con la Función XOR
Para graficar la recta de separación se procede a la
siguiente ecuación de la recta. La función XOR no puede ser representada por una
neurona Perceptron, debido a la distribución de sus
w (1) * x1 + w (2) * x 2 + b = 0 padrones o vectores de entrada. Ver figura 2.5.
Mg. Pedro Freddy Huamaní Navarrete 23 24 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
X yd1 yd 2 yd 3 x1
A continuación, se realiza la clasificación de cinco y1
padrones de entrada en dos clases diferentes, donde A 1 1 1 x2
cada padrón cuenta con 15 elementos. Los padrones de b2
E 1 1 1
entrada pertenecen a las cinco vocales, las cuales x3 y2
deberán de ser clasificadas en vocales fuertes y vocales I 0 0 0
b3
débiles. Ver las figuras 2.6a, 2.6b y 2.7. O 1 1 1 ...
U 0 0 0 y3
x15
>> X = [ AA EE II OO UU ] ;
>> Yd = [ 1 1 0 1 0 ; 1 1 0 1 0 ; 1 1 0 1 0 ] ;
1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 >> net = newp( [-ones(15,1) ones(15,1) ] , 3 );
1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 >> net = train( net , X , Yd ); % ver figura 2.8
A=1 0 1 E=1 1 0 I= 0 1 0 O= 1 0 1 U=1 0 1 TRAINC, Epoch 0/100
TRAINC, Epoch 6/100
1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 TRAINC, Performance goal met.
1 0 1 1 1 1 0 1 0 0 1 0 1 1 1
Mg. Pedro Freddy Huamaní Navarrete 25 26 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
X Rx1
W SxR Y Sx1
V Sx1
+
1 B Sx1
Y = purelin( W * X + B )
Mg. Pedro Freddy Huamaní Navarrete 27 28 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
La regla de aprendizaje es similar al de la red Perceptron, Seguidamente se muestra un ejemplo del uso de la red
a excepción que ahora se utiliza una tasa de aprendizaje lineal para aproximar el promedio de dos números. Para
“lr” para la actualización de los pesos y los bias, tal como ello se utiliza la función “newlin”.
lo muestran las siguientes expresiones:
>> help newlin
(
W = W + (lr ) * E * X T ) >> X = [ 1 3 5 7 9 ; 11 13 15 17 19 ];
>> Yd = mean( X ); % promedio de entrada
B = B + (lr ) * (E ) >> lr = maxlinlr( X,'bias'); % tasa de aprendizaje
>> net = newlin( [ 0 20 ; 0 20 ] , 1 , 0 , lr );
Tales expresiones son obtenidas cuando se busca Luego, se configuran los parámetros de entrenamiento,
minimizar la suma del error cuadrático (sse) [3]. para finalmente entrenar y simular la red lineal.
>> net.trainParam.epochs = 2000;
n n
sse = ∑ e(k ) = ∑ (y d (k ) − y(k ) )
2 2 >> net.trainParam.show = 500;
>> net.trainParam.goal = 0.001;
k =1 k =1
>> net.iw{1} = randn( 1, 2 ); % pesos iniciales
>> net.b{1} = randn( 1 ); % bias inicial
Donde: >> net = train( net , X , Yd ); % ver Figura 3.2
n: número de elementos del vector TRAINB, Epoch 0/2000, MSE 1447.36/0.001.
yd: vector de salida deseada TRAINB, Epoch 193/2000, MSE 0.000999512/0.001.
y: vector de salida total TRAINB, Performance goal met.
Mg. Pedro Freddy Huamaní Navarrete 29 30 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 31 32 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Rt = Ro * (1 + α * T)
Donde:
Figura 3.6. Gráfico de desempeño del error
Rt: es la resistencia de salida
Ro: resistencia a 0 °C
∝: Coeficiente de Temperatura ( 0.0038 )
T: Temperatura medida
>> T = 20:10:800;
>> a = 0.0038;
>> Ro1 = 100; Rt1 = Ro1*(1 + a*T); % PT100
>> Ro2 = 200; Rt2 = Ro2*(1 + a*T); % PT200
>> Ro3 = 500; Rt3 = Ro3*(1 + a*T); % PT500
>> Yd = [ Rt1 / 100; Rt2 / 100; Rt3 / 100 ];
>> %Normalizando la Temperatura (entre el valor max.)
>> Tmaxima = 800;
>> X = [ T / Tmaxima ; a*ones(size(T)) ];
>> lr = maxlinlr( X , 'bias' );
>> net = newlin( [ -ones(2,1) ones(2,1) ] , 3 , 0 , lr );
>> net.trainparam.epochs = 400;
>> net.trainparam.show = 80;
>> net.trainparam.goal = 10e-6;
>> net = train( net , X , Yd); % Ver figura 3.6
TRAINB, Epoch 0/400, MSE 72.9424/1e-005.
TRAINB, Epoch 80/400, MSE 0.000892697/1e-005.
TRAINB, Epoch 125/400, MSE 9.21106e-006/1e-005.
TRAINB, Performance goal met.
>> T1 = 25 / Tmaxima; % Temp Amb.
>> Y = 100*sim( net, [ T1 ; a ] ); % simulando
Mg. Pedro Freddy Huamaní Navarrete 33 34 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Donde:
Figura 4.1. Estructura de una Red Perceptron Multicapa [2]
n: representa el número de capa ( ≥2 )
ϕ: representa la función de transferencia
Entre sus principales características encontramos:
• Función de transferencia no lineal (muchas veces 4. Calcular el error para cada neurona de la capa de
sólo la última capa tiene una función lineal). salida. Si el error es menor a la tolerancia regresar al
• Regla de aprendizaje supervisado. paso 2, en caso contrario continuar.
• Valores de entrada y salidas reales y/o binarias. 5. Actualizar los pesos de cada neurona, iniciando por
la capa de salida.
Mg. Pedro Freddy Huamaní Navarrete 35 36 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 37 38 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
El aprendizaje Backpropagation puede ser mejorado de El lector es libre de elegir cualquiera de estas otras
dos formas diferentes: por heurística, y utilizando formas de aprendizaje para la red Backpropagation, que
potentes métodos de optimización [2]. en la mayoría de veces trae consigo el uso de un menor
número de iteraciones.
1 1
− )
Rt = (Ro )e
β (
Figura 4.2. a) Sin entrenamiento. b) Resultado de 10000 Tt To
iteraciones. ( “+”: función por aproximar. “--”: función
aproximada )
Donde:
Mg. Pedro Freddy Huamaní Navarrete 39 40 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 41 42 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
d i = ∑ (x j − w i , j )
k : constante para bias (default = 0.999).
2
4. Retornar al paso 2.
j=1
Mg. Pedro Freddy Huamaní Navarrete 43 44 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
2C
V1CS1x1 Y1CS1x1 V S2x1
Y2CS2x1
X Rx1 W
1C
S1xR W
2C
S2xS1
Figura 5.2. Representación en el plano de vectores de entrada Y1C=compet( -dist(W1C, X) ) Y2C=purelin(W2C * Y1C)
“+” y vectores de pesos “o”.
Figura 5.3. Estructura de una Red Neuronal LVQ [2]
Verificando el primer vector de entrada con toda la matriz
de pesos y bias entrenado: A continuación, la regla de aprendizaje de la red LVQ
Mg. Pedro Freddy Huamaní Navarrete 45 46 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
1. Por cada iteración, se aplica un vector de entrada X a Se presenta ocho vectores de entrada con dos elementos
la red, para calcular la distancia a cada vector cada uno. Donde se pre-define dos grupos de vectores
prototipo. diferentes. El primer grupo conformado por cinco
2. Las neuronas ocultas compiten entre sí, de tal forma vectores, y el segundo por tres. Por lo tanto, se hace uso
que una neurona “i” gana la competencia haciendo de la red LVQ para realizar la clasificación respectiva.
que el i-ésimo elemento de la salida de la primera
capa se fije en 1. >> X = [ 1 2 -3 4 -2 2.5 3.2 -1.8
3. La salida de la primera capa es multiplicada por los 2.1 1 4 3 3 3.2 2.4 3 ];
pesos de la segunda capa W2C, para obtener la
salida final Y2C, la cual tiene solamente un elemento Se utiliza un vector de salida deseada para la segunda
diferente de cero. capa (indicando las dos clases existentes), la cual
determinará la salida deseada.
En esta red neuronal muchas neuronas de la primera
capa representarán sub-clases, que a su vez formarán >> Yd = [ 1 1 2 1 2 1 1 2 ];
parte de otra clase (neurona de la segunda capa). La >> Y = ind2vec( Yd ); %array o matriz sparse
primera capa cuenta con una función de transferencia
competitiva, mientras que la segunda es del tipo lineal. La Se señalan dos sub-clases para cada una de las 2 clases
figura 5.4, muestra un ejemplo de una red LVQ. existentes, lo cual da un total de 4 sub-clases. Es decir,
existirán 4 neuronas en la primera capa, y 2 en la
Sub-Clases
segunda. De esta manera, en la función “newlvq”, se
indica los valores máximos y mínimos por vector de
Clases entrada con ayuda de la función “minmax”; y también, se
x1 utiliza la variable “PORC” para indicar el grado de
porcentaje de aceptación para cada neurona de la
segunda capa. La suma no debe exceder el valor de 100.
>> PORC = [ 50 50 ] / 100;
x2 >> net = newlvq( minmax( X ) , 4 , PORC );
Luego, se verifica la matriz de pesos de la segunda capa,
la cual no sufrirá modificación alguna durante la etapa de
entrenamiento.
>> net.lw % pesos de la segunda capa
Figura 5.4. Red Neuronal LVQ >> net.lw{2}
>> net = train( net , X , Y );
TRAINR, Epoch 0/100
5.5 Ejemplo Práctico con la Red LVQ TRAINR, Epoch 2/100
TRAINR, Performance goal met.
Mg. Pedro Freddy Huamaní Navarrete 47 48 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
>> Y = sim( net , X ); % simulación de la red >> II = I( 1:64 , 1:64 ); %Imagen de 64 x 64 pixels
>> Yc = vec2ind( Y );
Tomamos bloques de 2x2 pixeles en la imagen “II”, y lo
>> net.iw{1} % comprobación
transformamos em vectores de 4x1.
ans =
0.7182 2.4802 >> X = im2col( II , [2 2] , 'distinc' );
0.5350 2.4850 >> size( X ) %1024 padrones de entrada
0.3956 2.5295 >> NN = 64; %número de neuronas
0.5000 2.5000 >> net = newc( [ zeros(4,1) 255*ones(4,1) ] , NN , 0.001);
>> net.lw{2} %comprobación >> net.trainParam.epochs = 3000; %cant. de iterac.
ans = >> net.trainParam.show = 500; %mostrar c/200
1 1 0 0 >> net = train( net , X );
0 0 1 1 TRAINR, Epoch 0/3000
>> net.b TRAINR, Epoch 500/3000
ans = TRAINR, Epoch 1000/3000
[] TRAINR, Epoch 1500/3000
[] TRAINR, Epoch 2000/3000
TRAINR, Epoch 2500/3000
En los pesos de la segunda capa, las columnas
TRAINR, Epoch 3000/3000
representan las sub-clases y las filas representan las
TRAINR, Maximum epoch reached.
clases, Por ello, estos pesos sólo tienen un “1” en cada
>> Y = sim( net , X ); % simulación
columna, en cuanto que los demás elementos son cero.
>> P = [ X( : , 1 ) X( : , 3 ) ] % vectores parecidos
La fila en la cual se presenta el 1 índica la clase a la cual
P=
la subclase pertenece. Por lo general, se conecta un
4 4
número igual de neuronas ocultas a cada neurona de
6 2
salida, para que de esta manera cada clase pueda ser
3 4
conformada por el mismo número de regiones convexas
3 3
[2].
>> Y = sim( net , P ) %activan la misma neurona 58
Y=
5.6 Aplicación: Compresión de Imágenes (58,1) 1
(58,2) 1
Se toma sub-bloques de una imagen en tonos de gris y
se convierte a vectores columnas, que servirán como Luego, pasamos a reconstruir la imagen, a partir de los
padrones de entrada a la red competitiva. Esta red vectores pesos que representan a todo el conjunto de
realizará el trabajo de agrupar los vectores similares, vectores de entrada. Finalmente, retornamos al tamaño
para codificarlos por un número determinado de bits. original de 64 x 64 pixels con ayuda de la función
“col2im”.
>> load imdemos %cargamos imágenes del Matlab
>> I = double( tire ); %seleccionamos una de ellas >> W = net.iw{1}; % matriz de pesos 64 x 4
>> for i =1:1024
Mg. Pedro Freddy Huamaní Navarrete 49 50 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
X Rx1
W SxR Y Sx1
V Sx1
Figura 5.5. Comparación entre imagen original y reconstruida +
1 B Sx1
64 x 64 x8
La imagen original tiene un total de = 4KBytes ,
8x1024
Y = satlins( W * X + B )
mientras que la codificada o reconstruida tiene
1024 x 6
= 0.75KBytes .
8x1024 Figura 6.1. Estructura de una red Hopfield [2].
Mg. Pedro Freddy Huamaní Navarrete 51 52 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Sin embargo, es posible obtener la matriz de >> W = net.LW{ 1 } ; %matriz de pesos (ver figura 6.2)
pesos a partir de un procedimiento apoyado en la >> B = net.b{ 1 } ; %vector de bias
función de alta ganancia de Lyapunov [3].
1
V( y) = − y T Wy − b T y
2
( )
n
W = ∑ Xi * Xi
T
, B=0
i =1
Donde:
W, B: matriz de pesos y vector de bias
X: vector de entrada
y: vector de salida de la red
b: vector de ganancias Figura 6.2. Estructura de la red Hopfield del ejemplo
n: número de padrones de entrada práctico.
V(y): función Lyapunov
Se dice que la red es estable si se cumple lo siguiente. Al Seguidamente,, se verifica el reconocimiento de los dos
presentar un padrón de entrada incorrecto, la red últimos vectores X3 y X4.
estabilizará en el valor más próximo (o valor correcto) al >> nVect = 1; % cantidad de vectores a verificar
padrón presentado. >> Xr3 = sim( net , nVect , [ ] , X3 ) ;
>> [ X3 Xr3 ] % vectores idênticos
6.3 Ejemplo Práctico con la Red Hopfield >> Xr4 = sim( net , nVect , [ ] , X4 ) ;
>> [ X4 Xr4 ] % vectores idênticos
En esta sección se muestra un ejemplo práctico del uso
de la red de Hopfield para el reconocimiento de cuatro Luego, para corregir un vector ruidoso haciendo uso de la
vectores con seis elementos cada uno. red de Hopfield, procedemos de la siguiente manera.
Mg. Pedro Freddy Huamaní Navarrete 53 54 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 55 56 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 57 58 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
>> plot( n , x , ‘ * ’ ), gris % Ver figura 7.3 deseada. Este criterio se continúa hasta cubrir las
primeras 99 muestras. A continuación se muestra un
ejemplo del uso de la función “delaysig” para la
operación de desfasado en un vector de 10 muestras.
x1 >> A = 1:10; % vector con 10 muestras
>> nntwarn off % para ocultar advertencias
>> B = delaysig( A , 5 ); % crea 6 retardos en el vector A
B=
x2 2da Capa 1 2 3 4 5 6 7 8 9 10
0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8
0 0 0 1 2 3 4 5 6 7
1ra Capa 0 0 0 0 1 2 3 4 5 6
0 0 0 0 0 1 2 3 4 5
>> nntwarn off % evita mensajes de advertencia
Figura 7.2. Red Neuronal RBF >> X = delaysig( x , 5 ); % lo mismo al vector de datos X
Se debe asignar al vector de salida deseada Yd, una
muestra que corresponde a la predicción.
>> for i = 1:99, Yd(i) = X( 1 , i + 1 ); end
>> net = newrb( X( : , 1:99 ) , Yd ); % ver figura 7.4
NEWRB, neurons = 0, SSE = 63.3114
NEWRB, neurons = 25, SSE = 0.462873
NEWRB, neurons = 50, SSE = 0.0224332
NEWRB, neurons = 75, SSE = 0.000253273
>> size( net.iw{1} ) %99 neuronas para la 1ra capa
>> size( net.lw{2} ) % 1 neurona para la 2da capa
Figura 7.3. Gráfico de 100 muestras de la señal temporal
Para verificar el desempeño de la red, se procede a
ingresar de la muestra 13ava a la 18ava, para predecir la
Luego, se establecen 6 muestras de entrada para la 19ava.
primera capa y una muestra de salida para la segunda
capa. Y, se procede a reacomodar (desfasar) las >> X1 = fliplr( x( 13:18 ) ) ; % giramos la entrada
muestras de entrada a la red, de tal forma que las >> Y = sim( net , X1’ );
primeras seis muestras ingresen a la red, y la séptima >> [ Y x(19) ]
que corresponda a la salida deseada. De igual manera, ans =
de la segunda a la séptima muestra ingresen a la red, -1.6251 -1.6251
con la octava muestra correspondiente a la salida
Mg. Pedro Freddy Huamaní Navarrete 59 60 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Mg. Pedro Freddy Huamaní Navarrete 61 62 Mg. Pedro Freddy Huamaní Navarrete
Simulación de Redes Neuronales con Matlab Simulación de Redes Neuronales con Matlab
Bibliografía
Mg. Pedro Freddy Huamaní Navarrete 63 64 Mg. Pedro Freddy Huamaní Navarrete