informe final

13
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)

Upload: dennisincacutipa

Post on 03-Feb-2016

4 views

Category:

Documents


0 download

DESCRIPTION

Redes Neuronales

TRANSCRIPT

Page 1: Informe Final

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)

Page 2: Informe Final

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.

Page 3: Informe Final

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

Page 4: Informe Final

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

Page 5: Informe Final

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

Page 6: Informe Final

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.

Page 7: Informe Final

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:

Page 8: Informe Final

Dennis Incacutipa Mamani Página 8

El lobo

La abuelita

El Leñador

Page 9: Informe Final

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:

Page 10: Informe Final

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.

Page 11: Informe Final

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.

Page 12: Informe Final

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)

Page 13: Informe Final

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