informe final
DESCRIPTION
Redes NeuronalesTRANSCRIPT
Dennis Incacutipa Mamani Página 1
Enero 05, 2015
Universidad Andina Néstor
Cáceres Velásquez
INFORME DE “LA IMPLEMENTACIÓN DE UNA RED NEURONAL DISTINTA
AL PERCEPTRÓN (SIMPLE O MULTICAPA)”
Dennis Incacutipa Mamani
Ingeniería Meca trónica
RESUMEN
La red backpropagation es una red neuronal que cumple con las siguientes características (Hilera y Martínez, 2000):
Tipo de red: Multicapa – feedforward Mecanismo de aprendizaje: Supervisado. Tipo de aprendizaje Aprendizajes por corrección de error. Tipo de asociación entrada-salida: Red heteroasociativa.
Algunos de los campos de aplicación de la red backpropagation son:
Codificación de información Traducción de texto en lenguaje hablado Reconocimiento en lenguaje hablado Reconocimiento óptico de caracteres (OCR)
Dennis Incacutipa Mamani Página 2
OBJETIVOS
General
Conocer la manera como se pueden simular redes neuronales con el MATLAB
Conocer las funciones con las cuales se implementa en el MATLAB las redes tipo
Backpropagation.
Dar una solución con el backpropagatión al problema de la caperucita roja.
MARCO TEORICO
Introducción al Neural Network Toolbox
-Redes Perceptrón
-Redes Backpropagation
-Redes Recurrentes tipo Hopfield
Redes Backpropagation
-Tipo de Red de aprendizaje supervisado que se basa en un algoritmo de gradiente
descendiente (LMS Algorithm Widrow-Hoff).
-El patrón de entrada se propaga por la red hasta generar la salida, después se calcula el
error; éstas salidas de error se propagan hacia las neuronas de la capa anterior. Cada
neurona solo tiene una contribución del error total.
-El error que genera la red en función de sus pesos es una superficie de n dimensiones, al
evaluar el gradiente se obtiene la dirección en la cual la superficie tiene un mayor
crecimiento, por lo tanto se toma la dirección opuesta (negativa) para minimizar el error.
Dennis Incacutipa Mamani Página 3
-Las funciones de transferencia deben de ser continuas. Además se buscan funciones
cuya derivada dependa de la función sin derivar.
Algoritmos Backpropagation
Algoritmo Estándar
Dennis Incacutipa Mamani Página 4
traingd – aprendizaje por gradiente descendiente (Estándar)
traingdm – gradiente descendiente con momentum (low-pass filter)
traingda, traingdx – gradiente descendiente, variando el learning rate
trainlm - Levenberg-Marquardt basado en la matriz Hessiana pero hecha con una
aproximación usando la matriz Jacobian
Redes Backpropagation en MATLAB
-newff(PR, tam, transfer, train)
PR – matriz de Rx2 en donde se indican los intervalos que pueden tomar las R
entradas de la red (tam – número de neuronas de la capa ) ( transfer – función de
transferencia expresada como cell array ) ( train – método de entrenamiento de la red )
-El entrenamiento en redes neuronales puede volverse más eficiente si realizamos un pre-
procesamiento principalmente a entradas y targets
-Hay veces que antes de entrenar la red es útil escalar las entradas y targets de tal forma
que se distribuyan en un rango específico, para esto se usa la función „premnmx‟
-Los datos son “normalizados” en el rango [-1 1] y se deben de usar los datos
normalizados para probar la red
Dennis Incacutipa Mamani Página 5
-La función „postmnmx‟ sirve para que los datos regresen a su estado original.
-Si se quiere aplicar un nuevo set de entradas pero con la distribución de los datos
normalizados entonces se ocupa la función „tramnmx‟35
Análisis post-entrenamiento
-La eficiencia de una red entrenada puede ser medida viendo los errores que arroja la red
durante el entrenamiento o bien validando el set de training, pero algunas veces es útil
medir la red con más detalle. Una opción es medir la eficiencia por análisis regresivo.
-“m” y “b” corresponden a la pendiente y a la intersección en el eje de las ordenadas
respectivamente, es decir, representan la mejor regresión lineal que relaciona los targets
con las salidas de la red
-“r” es un coeficiente de correlación entre los targets y las salidas, toma valores entre 0 y
1, donde 1 indica una perfecta correlación
Dennis Incacutipa Mamani Página 6
Resultados arrojados por „postreg‟
IMPLEMENTACIÓN DE REDES BACKPROPAGATION EN MATLAB PARA RESOLVER
EL PROBLEMA DE LA CAPERUCITA ROJA
La mamá de Caperucita Roja le desea enseñar como reaccionar antes diferentes personas que se le puedan acercar de acuerdo con algunas características que se pueden identificar.
Si se le acerca alguien con orejas grandes, dientes grandes y ojos
grandes es porque es un lobo, Caperucita debe correr, gritar y buscar al leñador.
Si se le acerca una mujer arrugada y amable, es la abuelita, debe ofrecerle alimento y darle un beso en la mejilla.
Si se le acerca un hombre amable y bien parecido, es el leñador, debe darle un beso en la mejilla y coquetearle.
Dennis Incacutipa Mamani Página 7
Se describe a continuación la solución del problema y su implementación en Matlab.
Paso No. 1: Definir la estructura de la red backpropagation
La entrada se va a modelar como una matriz de seis columnas (cada una representa las características del personaje) y tres filas, una para cada personaje.
Col1 Col2 Col3 Col4 Col5 Col6
Personaje Orejas
Grandes
Dientes
Grandes
Ojos
Grandes
Arrugado Amable Bien
Parecido
El lobo
Abuelita
El leñador
La salida se va modelar de forma similar: una matriz de seis columnas (cada reacción de
Caperucita) y tres filas, una para cada personaje.
Col1 Col2 Col3 Col4 Col5 Col6
Personaje Corre Grita Busca al
Leñador
Ofrece
Alimento
Beso en la
Mejilla
Bien
Parecido
El lobo
Abuelita
El leñador
Paso No. 2: Determinar los valores de entrada y salida
Los valores asignados a la entrada y salida son valores entre 0 y 1. El valor de 0 representa que la característica o acción NO se presenta, el valor de 1 representa que la característica o acción SI se presenta.
Los valores de entrada y salida para cada personaje se presentan en la siguiente tabla:
Dennis Incacutipa Mamani Página 8
El lobo
La abuelita
El Leñador
Dennis Incacutipa Mamani Página 9
Paso No. 3: Determinar las variables de la red
Para el entrenamiento de la red backpropagation en matlab se definen 3 variables:
- Neuronas: Número de neuronas usadas en la red - Epochs: Número máximo de iteraciones de entrenamiento de la red - Error: Máximo error permitido en la salida
Las variables serán modificadas varias veces hasta obtener una salida cercana a
la esperada.
Paso No. 4: Realizar pruebas de entrenamiento
Intento A
El primer intento se realizó con 5 neuronas y un error de 0.01, el entrenamiento se realizó en 1 epoch. El resultado de la simulación de la entrada con esta red fue:
0.9614 0.9614 0.9614 0.0740 -0.0014 0.0208
0.0337 0.0337 0.0337 0.9330 1.0049 0.4694
0.1356 0.1356 0.1356 0.9307 1.0031 0.4042
Intento B
El segundo intento se realizó con 5 neuronas y un error de 0.0001, el entrenamiento se realizó en 3 epochs. El resultado de la simulación de la entrada con esta red fue:
0.9999 0.9999 0.9999 0.0273 -0.0000 0.0007
-0.0000 -0.0000 -0.0000 0.9782 1.0001 0.4499
0.0009 0.0009 0.0009 0.9790 1.0000 0.4655
Intento C
El tercer intento se realizó con 5 neuronas y un error de 0.000001, el entrenamiento se realizó en 4 epochs. El resultado de la simulación de la entrada con esta red fue:
Dennis Incacutipa Mamani Página 10
0.9999 0.9999 0.9999 0.0273 -0.0000 0.0007
-0.0000 -0.0000 -0.0000 0.9782 1.0001 0.4499
0.0009 0.0009 0.0009 0.9790 1.0000 0.4655
Intento D
El cuarto intento se realizó con 10 neuronas y un error de 0.000001, el entrenamiento se realizó en 2 epochs. El resultado de la simulación de la entrada con esta red fue:
1.0001 1.0001 1.0001 -0.0008 0.0001 0.0002
-0.0001 -0.0001 -0.0001 0.9991 0.9999 0.9999
0.0001 0.0001 0.0001 1.0003 1.0001 1.0003
Intento E
El quinto intento se realizó con 10 neuronas y un error de 0.00000001, el entrenamiento se realizó en 3 epochs. El resultado de la simulación de la entrada con esta red fue:
1.0000 1.0000 1.0000 -0.0000 -0.0000 -0.0000
-0.0000 -0.0000 -0.0000 1.0000 1.0000 1.0000
0.0000 0.0000 0.0000 1.0000 1.0000 1.0000
Paso No. 5: La prueba
Después de encontrarse la red entrenada para los personajes principales, se va a probar cómo reacciona Caperucita Roja ante nuevos personajes:
- Personaje 1: Un leñador bien parecido pero que no es amigable - Personaje 2: Un leñador que es amigable, pero es medio arrugado y no
muy bien parecido. - Personaje 3: Una abuelita de grandes ojos, arrugada, amable y más o
menos simpática.
Dennis Incacutipa Mamani Página 11
Los valores dados a cada característica de cada personaje se resumen en la siguiente tabla, la cual constituye la entrada de la red neuronal.
Después de realizar la simulación de la red con los datos de prueba, se obtienen los siguientes resultados.
Dennis Incacutipa Mamani Página 12
EXPLICACIÓN Y EL PROGRAMA EN MATLAB
clc; neuronas = 10; error = 0.00000001; iteraciones = 20;
% Entradas % col1 col2 col3 col4 col5 col6 % Orejas Dientes Ojos Arrugado Amable Bien parecido
entrada=[[1 1 1 0 0 0]; [0 0 0 1 1 0]; [0 0 0 0 1 1]];
% Salidas % col1 col2 col3 col4 col5 col6 % Correr Gritar Busca leñador Ofrece alimento Beso mejilla
%Coquetea
salida=[[1 1 1 0 0 0]; [0 0 0 1 1 1]; [0 0 0 1 1 1]]
% Se inicia la red
net = newff(entrada, salida, neuronas);
% Se definen los parámetros de entrenamiento net.trainParam.epochs=iteraciones; net.trainParam.goal=error;
% Se entrena la red net = train(net, entrada, salida);
% Se simula la red con la entrada Y = sim(net,entrada)
% Se simula la red con la prueba prueba = [[0 0 0 0 0 1]; [0 0 0 0. prueba = [[0 0 0 0 0 1]; [0 0 0 0.5 1 0.5]; [0 0 1 1 1 0.5]]; Y = sim(net, prueba)
Dennis Incacutipa Mamani Página 13
BIBLIOGRAFIA
1. Aplicación de Redes Neuronales – http://noticias.espe.edu.ec/aaquijije/
2. Implementecion de un red neuronal en Backpropagation -
http://poncos.wordpress.com/category/matlab/
3. Aplicación de Redes Neuronales Usando Matlab, (conceptos,aplicación y
ejemplos) – http://www.cs.buap.mx/~agalvez/nnet.htm
4. Ejemplos de Backpropagation -
https://espanol.answers.yahoo.com/question/index?qid=20080427200730AAgLXft