Paper Proyecto de IAA

  • 994 views
Uploaded on

Proyecto de IAA, UTPL. …

Proyecto de IAA, UTPL.
Tema: Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito

More in: Education , Travel , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
994
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito Diego Guamán dguaman04@gmail.com deguamanx@utpl.edu.ec Loja – Ecuador ABSTRACT como las neuronas que forman dicha capa para comparar los Abstract En la actualidad el reconocimiento de las señales de resultados a la hora de converger los modelos realizados. tránsito a tenido un gran desarrollo por lo complejo que es éste tema sea esto identificar de forma adecuada formas, colores, Seguido de toda esta etapa de aprendizaje y creación del modelo tamaños de las distintas señales de tránsito. Durante el vamos a probar, qué tan eficientes son los modelos generados a desarrollo de este trabajo obtendré algunos patrones en la hora de clasificar nuevas señales de tránsito. imágenes de tránsito para entrenar una red neuronal con el algoritmo BackPropagation y poder comparar la rapidez de la 2.Motivación convergencia al entrenar el perceptrón multicapa con 1 y 2 capas El campo de la inteligencia artificial es muy amplio, se aplica en ocultas variando el número de neuronas en las capas de entrada muchas ramas de las ciencias y de la vida diaria, las y en las capas ocultas, esto con el fin de tomar algunas herramientas de desarrollo en la actualidad brindan muchas conclusiones a la hora de crear un modelo para que reconozca facilidades para simular comportamientos que quisiéramos nuevas señales de tránsito, para el modelado se utilizará la tuviera un agente. herramienta de minería de datos Weka. Matlab es una herramienta que manipula imágenes muy fácilmente así la extracción de características lo que luego será Keywords nuestro patrón de entrada a la red neuronal no tendremos Palabras Claves ninguna dificultad en generarla, así mismo el integrar Maltab Reconocimiento de señales de tránsito. con la herramienta de minería de datos Weka no tendremos problemas ya que todo esto se logrará mediante líneas de Redes Neuronales. comandos que explicaremos más adelante. Neuronas. 3.Estado del Arte BackPropagation. Convergencia. 3.1Redes Neuronales Capas Ocultas. Muchos investigadores basados en los procesos llevados a cabo por el cerebro humano e inspirados en su funcionamiento han Perceptrón Multicapa desarrollado las Redes Neuronales Artificiales (RNA). Estos sistemas no requieren que la tarea a ejecutar se programe, sino 1.Introducción que generalizan y aprenden de la experiencia. Este proceso de En la actualidad los accidentes e infracciones de tránsito han ido aprendizaje puede ser supervisado o no supervisado usando un aumentando la mayoría por la imprudencia de los conductores conjunto de datos de entrenamiento (patrones)[1] que no tienen en cuenta las señales de tránsito. Según Looney[2] una de las ramas en la que se aplica las redes neuronales con éxito son entre otras el reconocimiento de En los últimos años se han venido dando muchas mejoras de los patrones por lo que en el presente trabajo se realizará usando el algoritmos que tratan sobre el reconocimiento de señales de modelo de redes neuronales. tránsito, éstos varían mucho en sus técnicas pues la tarea más difícil es encontrar los patrones correctos para las señales, pues Las ventajas de las redes neuronales son según Hilera y aquí interviene lo que son formas, tamaños, colores, velocidad Martinez[1] son : para captar la señal, etc.. Aprendizaje adaptativo Dado la complejidad y como veremos los trabajos realizados la Auto organización idea del presente trabajo es desarrollar un agente que detecte Generalización dichas señales, extraer características de las imágenes que serán Tolerancia a fallos. los patrones de entrada al algoritmo de la red neuronal, Operación en tiempo real. entrenarla y extraer un modelo. Fácil inserción dentro de la tecnología existente. Para la creación del modelo utilizaremos el algoritmo BackPropagation, vamos a variar el número de capas ocultas así
  • 2. 3.2Modelos de Redes Neuronales - Pasada hacia delante (foward pass): las salidas son Existen varios modelos de redes neuronales, cada uno de ellos a calculadas y el error en las unidades de salida es sido diseñado para fines más o menos específicos, en el calculado. siguiente cuadro se muestran las características de algunos - Pasada hacia atrás (backward pass): el error de las modelos que realizan el reconocimiento de patrones como salidas es utilizado para alterar los pesos de las aplicación según Hilera y Martinez [1]: unidades de salida. Luego el error en las neuronas de las capas ocultas es calculado mediante propagación hacia atrás del error en las unidades de salida, y los pesos en las capas ocultas son alterados usando esos valores. Proceso de adiestramiento (retropropagación) Existen distintos métodos o paradigmas mediante los cuales estos pesos pueden ser variados durante el adiestramiento de los cuales el más utilizado es el de retropropagación [Backpropagation]. Este paradigma varía los pesos de acuerdo a las diferencias encontradas entre la salida obtenida y la que debería obtenerse. De esta forma, si las diferencias son grandes se modifica el modelo de forma importante y según van siendo menores, se va convergiendo a un modelo final estable. El error en una red de neuronas para un patrón [x= (x1, x2, …, xn), t(x)], siendo x el patrón de entrada, t(x) la salida deseada e y(x) la proporcionada por la red, se define como se muestra en la ecuación 1 para m neuronas de salida y como se muestra en la ecuación 2, para 1 neurona de salida. Como podemos observar el modelo de BackPropagation es el más popular en el tema de reconocimiento de patrones y la herramienta Weka [7] trabaja con este modelo para realizar el modelado de datos por eso en el presente trabajo utilizaremos éste enfoque. ecuación 1 3.3BackPropagation Cuando se combinan varios perceptrones en una capa y los estímulos de entrada después son sumados, se tiene ya una red ecuación 2 neuronal. El método de descenso de gradiente consiste en modificar los En esta red, se interconectan varias unidades de procesamiento parámetros de la red siguiendo la dirección negativa del en capas, las neuronas de cada capa se conectan entre sí. Cada gradiente del error. Lo que se realizaría mediante la ecuación 3. neurona de una capa proporciona una entrada a cada una de las neuronas de la siguiente capa. En la figura se observa la arquitectura de este tipo de red. ecuación 3 w es el peso a modificar en la red de neuronas (pasando de wanterior a wnuevo) y α es la razón de aprendizaje, que se encarga de controlar cuánto se desplazan los pesos en la dirección negativa del gradiente. Influye en la velocidad de convergencia del algoritmo, puesto que determina la magnitud del desplazamiento. El algoritmo de retropropagación es el resultado de aplicar el Modelo de una red tipo BackPropagation método de descenso del gradiente a las redes de neuronas. El algoritmo completo de retropropagación se muestra a El término backpropagation se refiere al método para calcular el continuación: gradiente de error en una red feed-forward (de aprendizaje supervisado), que es una aplicación de la regla de la cadena de cálculo elemental [8]. Indica la propagación hacia atrás de una Paso 1: Inicialización aleatoria de los pesos y umbrales. señal de error a través de la red[9]. Básicamente el entrenamiento de este tipo de red consiste en lo siguiente:
  • 3. Paso 2: Dado un patrón del conjunto de entrenamiento (x, t(x)), se presenta el vector x a la red y se calcula la salida de la red para dicho patrón, y(x). Paso 3: Se evalúa el error e(x) cometido por la red. Paso 4: Se modifican todos los parámetros de la red. Paso 5: Se repiten los pasos 2, 3 y 4 para todos los patrones de entrenamiento, completando así un ciclo de aprendizaje. Paso 6: Se realizan n ciclos de aprendizaje (pasos 2, 3, 4 y 5) hasta que se verifique el criterio de parada establecido. En cuanto al criterio de parada, se debe calcular la suma de los errores en los patrones de entrenamiento. Si el error es constante Figura 1. Etapas en el proceso de reconocimiento de imágenes [10] de un ciclo a otro, los parámetros dejan de sufrir modificaciones y se obtiene así el error mínimo. Por otro lado, también se debe tener en cuenta el error en los patrones de validación, que se presentarán a la red tras n ciclos de aprendizaje. Si el error en 3.5 Trabajos Relacionados los patrones de validación evoluciona favorablemente se continúa con el proceso de aprendizaje. Si el error no desciende, El tema de reconocimiento de señales de tránsito no es muy se detiene el aprendizaje[3]. viejo como lo comenta Fleyeh y Dougherty [10], el primer trabajo científico apareció en Japón en 1984, que se relacionaba con la detección de objetos en escenas exteriores con varios 3.4Identificación de las Señales de tránsito métodos de computadora, desde ahí hasta la presente fecha el Básicamente la identificación de señales de tránsito como lo tema de reconocimiento de señales a crecido mucho haciendo menciona FLEYEH, Mark DOUGHERTY [10] se divide en dos mejorables técnicas y algoritmos por parte de grupos y fases principales, la primera es la detección y en segundo lugar compañías interesadas en éste campo. el reconocimiento. A continuación presento una parte trabajo realizado por Reiterer, En la primera fase debe realizar un pre-procesado, un mejorado Hassan y Sheimy en su paper Automated Traffic Sign Detection y una segmentación de las propiedades de la señal tal como la for Modern Driver Assistance Systems [11] una historia de forma o color, el objetivo de esta fase es que la salida de la cómo han ido evolucionando las técnicas y algoritmos en el imagen ya pre-procesada contendrá información potencial tema de reconocimiento de señales de tránsito: acerca de la imagen a reconocer. Mientras que en la segunda fase cada uno de los candidatos es probado de a cuerdo a un conjunto de características (patron) y decidir si pertenece a un - Piccioli (1996) usa el color y la información a priori grupo de señales de tránsito o no. para limitar las posibles localizaciones de signos en El Pictograma permite una nueva etapa de clasificación. una imagen, esto es extraer bordes y buscar regiones Mediante el análisis de pictograma formas junto con el texto circulares o triangulares antes de aplicar alguna disponible en el interior del signo, es fácil decidir la clase de técnica de correlación cruzada para el reconocimiento persona del signo en cuestión. de signos - Estevez y Kehtarnavaz (1996) una medida es usada para localizar los signos “PARE”, “CEDA EL PASO” y “NO ENTRE”, esto lo logra siguiendo una detección de bordes y analizando la forma para identificar los signos. - Escalera (1997) empieza con la detección de la gama de colores y esquinas para analizar esquinas especificas relacionadas con los signos triangulares, rectangulares o circulares. Hace una clasificación utilizando redes neuronales. - Yuille (1998) usan corrección de los colores de la iluminación del ambiente y asignan la señal detectada en una posición paralela antes de analizarlos - Huang y Hsu (2000) usa formas y colores en un en un gran vista ángulo para localizar signos de formas circulares y triangulares. - Paclik (2000) usa un método de árbol de decisión para detectar y reconocer signos sin usar el color, la detección es basada en formas usando orientaciones locales de los bordes de las imágenes y ejemplos jerárquicos - Sekanina (2000) las señales de límites son detectadas usando técnicas de color y de multi-resolución.
  • 4. - Fleischer (2002) muestra un enfoque muy diferente, el detección del color, la combinación con la función normalizada método desarrollado, basado en un modelo basado en de la correlación cruzada (NCC), y un análisis de forma proceso de arriba hacia abajo, predicciones son hechas matemática para el reconocimiento semáforo. Para la detección para localizar cual signo puede aparecer, Formas, de color, obtiene una solución inicial mediante el ajuste RGB tamaños u colores son usados para especificar modelos componente, umbral algoritmo, y el filtro de mediana. Al tratar de última generación para los signos en el mundo 3D. con cambios de iluminación con el clima y el tiempo, un método Los signos que se encuentran a través de imágenes se simple de adaptación han desarrollado. realiza un seguimiento posterior mediante un filtro de Kalman. - Shaposhnikov 2002) Hace uso de la segmentación de 3.6Aporte Personal color usando el modelo de apariencias CIECAM97, histogramas de los elementos de borde orientado se Como podemos darnos cuenta en los trabajos relacionados, el utilizan para determinar la forma del signo seguido por tema del reconocimiento de imágenes es muy extenso y tiene la localización del centro del signo. Los signos son muchas mejoras con relación a los primeros trabajos realizados. descritos por un conjunto de descriptores que se En las lecturas que realice sobre el tema de reconocimiento de corresponden con los modelos almacenados a imágenes muchas trabajaban con lo que es redes neuronales, reconocer los signos utilizaban el perceptrón multicapa, en la mayoría [11][8][9] - Fang (2003) se centra en la detección de señal en usaba una sola capa oculta, la razón por lo que dice que es ambientes desordenada. Las redes neuronales se bueno tener una sola capa oculta ya que la red converge de una utilizan para localizar las regiones que pueden ser el manera mucho más rápida por lo que mi aporte en el siguiente centro de signos (el uso del color y forma), los signos trabajo es comprobar que esto es cierto, haciendo pruebas con 1 candidatos se realiza un seguimiento a través del y 2 capas ocultas para realizar un análisis comparativo entre tiempo mediante un filtro de Kalman. ellas y variando el número de neuronas en la capa de entrada (35 - Otros métodos y desarrollos para la detección de y 144 neuronas) así como el número de neuronas en las capas señales de tránsito han sido publicados por Kumar ocultas. (1997), Lalonde (1995), Prince (1998), Zadeh et al. (1997), Hsien et al. (2003), Shadeed et al. (2003), Gao Por lo que el tema del proyecto se llamará: et al. (2003), Oh et al. (2005), Marmo et al. (2006). Comparación de resultados en la convergencia de una red neuronal utilizando 1 y 2 capas ocultas respectivamente en el modelo del perceptrón multicapa utilizando el algoritmo El grupo de investigación CAOS del departamento de BackPropagation al realizar el reconocimiento de señales de computación de la universidad de Madrid Carlos III [12] ofrece tránsito. un sistema de reconocimiento de señales de tránsito llamado ADAS, la particularidad de éste sistema es que no solo utiliza una técnica ni un solo clasificador, utiliza un conjunto de 4.Metodologías clasificadores para la toma de decisiones lo que facilita una MESSAGE/UML implementación distribuida. La idea clave es que el conjunto de MESSAGE (Methodology for Engineering Systems of Software los clasificadores son más precisos que cada uno de los Agents) parte de UML y lo extiende con conceptos de nivel de clasificadores por separado. conocimiento sobre agentes y diagramas con notaciones para verlos. Se considera que UML es un buen punto de partida por En el trabajo elaborado por miembros del departamento de las siguientes razones: teoría de señales y comunicaciones de la universidad de Alcalá [13] muestra cómo resolver el problema de el reconocimiento de UML es aceptado ampliamente como estándar de modelado señales de tránsito, implementan un modelo de red neuronal orientado a objetos, lo que significa que muchos modeladores lo como es el perceptrón multicapa, explican que hay dos maneras conocen y saben manejarse bien. para reducir el coste computacional para implementaciones en Los paradigmas objetual y orientado a agentes son altamente tiempo real, El primero reduce el número de entradas MLP por compatibles. el pre-procesamiento de la señal de tráfico de la imagen (Blob). UML se basa en un metamodelo (MOF) lo que lo hace Información adicional se mantiene durante esta operación y sólo extensible [12]. la redundancia contenida en la mancha se quita. El segundo El lenguaje de modelado de MESSAGE se relaciona con UML busca las redes neuronales con reducción de la complejidad como sigue [13]: mediante la selección de un criterio de error apropiado para la 1. Comparte un mismo lenguaje de metamodelado con UML y formación. Dos criterios de error se estudian: el mínimo error MOF. Plaza (SL) y los criterios de error de Kullback-Leibler. Los 2. Extiende UML con conceptos “de nivel de conocimiento” mejores resultados se obtienen utilizando el criterio de error de Kullback-Leibler. orientados a agentes . En el Abstract trabajo realizado por Yang, Zhao y Kim, del departamento de electricidad e Ingeneria de Computación de la universidad de Calument (USA)[14] plantea un problema de reconocimiento de imágenes para personas con deficiencias para percibir colores, proponen un sistema de transporte inteligente en la que proporciona al conductor información útil sobre las señales de tránsito. Utiliza diversas técnicas de
  • 5. Semáforo en verde Una vez guardadas las imágenes se procede a utilizar herramientas del ToolBox de Matlab para el tratamiento de las imagénes y extraer los patrones. 5.1.1Preprocesamiento de la imagen Tenemos que ir procesando todas las 32 imágenes guardadas para extraer sus características (patrones) for nombreimagen = 0:31 imagen = imread(['entrenamientoST/', 5.Entrenar Red Neuronal con Weka INT2STR(nombreimagen), '.jpg']); En esta sección vamos a presentar paso a paso como hicimos el entrenamientoST significa la carpeta que almacena las 32 proceso de creación de los archivos arff admitidos en Weka señales de tránsito. hasta su entrenamiento, todo esto desde matlab INT2STR significa que vamos a cambiar el formato de 5.1Extracción de Patrones en las Señales de numérico a string, las imágenes de tránsito están numeradas del 0 al 31. Tránsito La primera tarea para crear el clasificador para el agente fue jpg significa el formato admitido para la lectura de las almacenar 32 imágenes de señales de tránsito, las que se dividen imágenes. en 8 grupos de 4 imágenes. Éstas imágenes servirán para extraer 5.1.2Grises, Binarización y ajuste de la imagen patrones y así poder categorizar a alguna clase como se La forma más común de generar imágenes binarias es mediante explicará en la siguiente sección. la utilización del valor umbral de una imagen a escala de grises; Los grupos de imágenes guardadas son las siguientes: es decir se elige un valor limite (o bien un intervalo) a partir del cual todos los valores de intensidades mayores serán codificados Señal de Tránsito Imagen como 1 mientras que los que estén por debajo serán codificados a cero.[15] Pare No entrar No virar en u El código en Matlab para convertir a escalas de gris a la imagen es la siguiente: Semáforo en rojo imagenGris = rgb2gray(imagen); con el comando rgb2gray cambiamos a gris la imagen, con este comando obtenemos la siguiente imagen: Velocidad máxima Semáforo en Con el comando im2bw se binariza la imagen y se calcula el tomate umbral para la binarización. bw = im2bw(imagen,graythresh(imagenGris)); con el comando graythresh se calcula el umbral para la binarización, luego de este comando obtenemos la siguiente imagen: Ceda el paso
  • 6. Con el comando imresize cambio el tamaño de la imagen a 120x120 pixeles. imagen_120120=imresize(imagen,[120,120]); for cnt=1:12 for cnt2=1:12 porcentajeVacio=sum(imagen_120120((cnt*10-9:cnt*10), (cnt2*10-9:cnt2*10))); Luego con la función ajustarTamanio toma la imagen y busca patron((cnt-1)*12+cnt2)=sum(porcentajeVacio); sus valores máximos y mínimos para limitarla y proceder a end eliminar la información que se encuentra fuera de estos límites end bw2 = ajustarTamanio(bw); patron=((100-patron)/100); 5.1.3Obtención de los patrones en las imágenes patron=patron'; Luego de realizar el ajuste de la imagen se la envía ésta a la función obtenerPatrones. En porcentajeVacio se suman todos los pixeles blancos de cada patron = obtenerPatrones(bw2); caja de la matriz que es de 144x144, se suman los pixeles blancos ya que estos tienen un valor de 1 mientras que los La función obtenerPatrones la describo a continuación está es negros tienen el valor de 0. para generar una matriz de 7x5 la cual nos dará luego 35 En patrón=((100-patron)/100) se resta de 100 los pixeles blancos neuronas de entrada para la red neuronal. y obtenemos el área de cada matriz de la matriz de 12x12 Con el comando imresize cambio el tamaño de la imagen a 70x50 pixeles. 5.2Creación de Variables predictoras y clases imagen_7050=imresize(imagen,[70,50]); Para la creación de las variables predictoras y clase necesitamos primeramente haber extraído las características de las señales de tránsito (patrones) que analizamos en la sección anterior. for cnt=1:7 Como vimos los patrones están representadas por matrices de for cnt2=1:5 7x5 y de 12x12 cada una de ellas, lo que haremos es utilizar porcentajeVacio=sum(imagen_7050((cnt*10-9:cnt*10), éstos 35 y 144 elementos de la matriz, tomarlas como un (cnt2*10-9:cnt2*10))); conjunto de patrones que representarán cada una de las patron((cnt-1)*5+cnt2)=sum(porcentajeVacio); imágenes y al final como se utilizará un paradigma de end aprendizaje supervisado colocaremos nosotros al final de cada end patrón una clase a la que va a pertenecer. patron=((100-patron)/100); Para el desarrollo del presente trabajo vamos a trabajar con 8 patron=patron'; señales de tránsito a las cuales les vamos a asignar las siguientes clases: En porcentajeVacio se suman todos los pixeles blancos de cada caja de la matriz que es de 10x10, se suman los pixeles blancos ya que estos tienen un valor de 1 mientras que los negros tienen el valor de 0. Señal de Tránsito Clases En patrón=((100-patron)/100) se resta de 100 los pixeles blancos y obtenemos el área de cada matriz de la matriz de 7x5 Pare 1 No entrar 2 No virar en u 3 Semáforo en rojo 4 Velocidad máxima 5 En la interfaz el proceso de extracción de patrones de las 32 imágenes es el siguiente Semáforo en tomate 6 Ceda el paso 7 Semáforo en verde 8 El formato de las variables predictoras y clases para un número de 35 neuronas en la capa de entrada es el siguiente: La función para obtener una matriz de 12x12 la cual nos dará luego 144 neuronas de entrada para la red neuronal es la n1,n2,n2,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n siguiente 18,n…..,n…..,n…..,n…..,n…..,n35,Clase
  • 7. a4b6 REAL','n','@ATTRIBUTE a4b7 REAL','n','@ATTRIBUTE a5b1 REAL','n','@ATTRIBUTE a5b2 REAL','n','@ATTRIBUTE a5b3 REAL','n','@ATTRIBUTE a5b4 REAL','n','@ATTRIBUTE a5b5 REAL','n','@ATTRIBUTE a5b6 REAL','n','@ATTRIBUTE a5b7 REAL','n','@ATTRIBUTE class {1,2,3,4,5,6,7,8}','n','@DATA']; Luego utilizamos un for para leer la matriz w enviada a ésta función que toma el nombre de patrón como se muestra en el siguiente código: a=1; for i = 1:31 El formato de las variables predictoras y clases para un número for j=1:35 de 35 neuronas en la capa de entrada es el siguiente: textoadd = num2str(patrones(i,j)); if(j==1) n1,n2,n2,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,n texto = [texto,textoadd]; 18,n…..,n…..,n…..,n…..,n…..,n143,n144,Clase else texto = [texto,',',textoadd]; end end claseS = num2str(a); texto = [texto,',',claseS,'n']; if(mod(i,4)==0) a=a+1; end end texto=[encabezado,'n',texto]; de éste código podemos analizar que el comando num2str transforma un entero a un string, esto se hace con el fin de ir 5.2.1Creación del archivo entrenamiento.arff escribiendo en la variable texto los valores de los patrones de El formato que admite Weka es *.arff por lo que en el siguiente cada imagen. código en Matlab creamos este archivo utilizando los patrones texto = [texto,',',claseS,'n']; de las imágenes obtuvimos anteriormente. Luego utilizamos la comparación if(mod(i,4)==0), esto nos La función convertirAWeka(w) envía el arreglo w de 32x35 y de permite ir colocando cada 4 imágenes un número del 1 al 8 que 32x144 elementos donde 32 son las imágenes que utilizamos son las clases a las que pertenecen las imágenes que describimos para el entrenamiento y los 35y144 son el número de elemento anteriormente, a continuación se muestra como queda la de los patrones extraídos de cada imagen. variable texto que contiene los patrones de cada imagen. Utilizamos una variable encabezado que es de tipo string para Ejemplo para un patrón de 35 neuronas de entrada quemar el encabezado del archivo entrenamiento.arff de la siguiente manera: 0.06,0.88,1,0.88,0.06,0.65,1,1,1,0.65,0.64,0.72,0.79,0.71,0.71,0. 6,0.59,0.58,0.53,0.81,0.86,0.82,0.71,0.72,0.78,0.65,1,1,1,0.65,0. encabezado = ['@RELATION 06,0.88,1,0.88,0.06,1 entrenamiento','n','@ATTRIBUTE a1b1 REAL','n','@ATTRIBUTE a1b2 REAL','n','@ATTRIBUTE Ejemplo para un patrón de 144 neuronas de entrada a1b3 REAL','n','@ATTRIBUTE a1b4 REAL','n','@ATTRIBUTE a1b5 REAL','n','@ATTRIBUTE 0,0,0.15,0.9,1,1,1,1,0.9,0.15,0,0,0,0.15,0.9,1,1,1,1,1,1,0.9,0.15,0 a1b6 REAL','n','@ATTRIBUTE a1b7 ,0.15,0.9,1,1,1,1,1,1,1,1,0.9,0.15,0.9,1,1,1,1,1,1,1,1,1,1,0.9,0.55, REAL','n','@ATTRIBUTE a2b1 REAL','n','@ATTRIBUTE 0.41,0.47,0.94,0.35,1,0.26,0.39,0.79,0.31,0.4,0.77,0.5,1,0.44,0.7 a2b2 REAL','n','@ATTRIBUTE a2b3 ,0.45,0.98,0.45,0.82,0.62,0.5,0.8,0.96,0.5,0.4,0.73,0.47,0.46,0.7 REAL','n','@ATTRIBUTE a2b4 REAL','n','@ATTRIBUTE 6,0.25,0.3,0.89,0.4,0.6,0.91,0.5,1,1,0.53,0.99,0.52,0.5,0.88,0.64, a2b5 REAL','n','@ATTRIBUTE a2b6 0.4,0.6,0.87,0.85,1,1,0.96,1,0.95,0.95,1,0.95,0.91,0.9,0.87,0.15, REAL','n','@ATTRIBUTE a2b7 REAL','n','@ATTRIBUTE 0.9,1,1,1,1,1,1,1,1,0.9,0.15,0,0.15,0.9,1,1,1,1,1,1,0.9,0.15,0,0,0, a3b1 REAL','n','@ATTRIBUTE a3b2 0.15,0.9,1,1,1,1,0.9,0.15,0,0, 1 REAL','n','@ATTRIBUTE a3b3 REAL','n','@ATTRIBUTE a3b4 REAL','n','@ATTRIBUTE a3b5 REAL','n','@ATTRIBUTE a3b6 REAL','n','@ATTRIBUTE Luego creamos el archivo entrenamiento.arff y le enviamos la a3b7 REAL','n','@ATTRIBUTE a4b1 cadena texto que concateno el encabezado con los valores de los REAL','n','@ATTRIBUTE a4b2 REAL','n','@ATTRIBUTE patrones con sus respectivas clases: a4b3 REAL','n','@ATTRIBUTE a4b4 texto=[encabezado,'n',texto]; REAL','n','@ATTRIBUTE a4b5 REAL','n','@ATTRIBUTE
  • 8. fid=fopen('weka/entrenamiento.arff','W'); 5.3.1Cambiar número de neuronas en la capa fprintf(fid,texto); oculta[14] fclose(fid); Lo que se hace en este paso es determinar el número de neuronas ocultas. Sus posibles valores son: input('Archivo creado satisfactoriamente' ) ‘a’=(atribs+clases)/2, Guardamos el archivo en la ruta weka/ con el nombre de entrenamiento.arff. ‘i’=atribs, ‘o’ clases, En la interfaz la creación de las variables predictoras y clases es ‘t’=atribs+clases . la siguiente: Para poder modificar estas opciones mostramos en la interfaz de la siguiente manera: 5.3Entrenar Red Neuronal con Weka Una ventaja al utilizar comandos de WEKA desde Matlab es que Asi el código para cual opcion está marcada es el siguiente: se puede crear modelos y analizarlos de una manera muy fácil, a if (get(handles.neuronasI, 'Value') == get(handles.neuronasI, continuación presentaré como se realizo todo el proceso para el 'Max')) entrenamiento de la red neuronal. opty2=1; Para lanzar WEKA desde Matlab se realiza una llamada al else sistema (a MS-DOS) mediante el comando ! y se obtiene el opty2=0; mismo resultado que el obtenido sobre la ventana de MS-DOS. end La clase en la que se implementan las redes de neuronas en donde si está marcada la opción en este caso opty2=1 en caso weka es weka.classifiers.neural.NeuralNetwork.java. Las contrario opty2=0, el mismo razonamiento se utiliza con ‘a’ y opciones que permite configurar son las que se muestran a con ‘t’. continuación: 5.3.2Entrenar y crear el modelo con 1 y 2 capas ocultas[14] Para el entrenamiento y la creación del modelo con una solo capa desde Matlab llamamos a Weka como indicamos anteriormente mediante líneas de comandos, la estructura de la línea a ser ejecuta es la siguiente: !java -Xmx1024M -cp "C:Program FilesWeka-3-6weka.jar" weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 - N 500 -V 0 -S 0 -E 20 -H a -t weka/entrenamiento.arff -d weka/ 1Capa.model > analisis/entrena1capa.txt La letra a es la que permite variar el número de capas ocultas y significa además el número de neuronas en las capas ocultas por lo que podemos cambiar con ‘i’ o con ‘t’. Además podemos agregar a la línea que presentamos la letra -G, ésta nos permite ver el gráfico de la red neuronal, el inconveniente es que por defecto nos presenta validación cruzada por lo que tenemos que presionar 10 veces para que realice el entrenamiento. !java -Xmx1024M -cp "C:Program FilesWeka-3-6weka.jar" weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 - N 500 -V 0 -S 0 -E 20 -H a -G -t weka/entrenamiento.arff -d weka/1Capa.model > analisis/entrena1capa.txt Para entrenar con 2 capas ocultas la estructura de la línea a ser ejecutada es la siguiente: !java -Xmx1024M -cp "C:Program FilesWeka-3-6weka.jar" Opciones de configuración para las redes de neuronas en weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 - WEKA[14]. N 500 -V 0 -S 0 -E 20 -H a,a -t weka/entrenamiento.arff -d weka/2Capa.model > analisis/entrena2capa.txt Como podemos darnos cuenta solo agregamos a,a lo que nos da como resultado una red neuronal con 2 capas ocultas, lo mismo podemos hacer con i,i y con t,t
  • 9. Igualmente podemos mostrar el gráfico que se genera de la red REAL','n','@ATTRIBUTE a1b5 REAL','n','@ATTRIBUTE neuronal agregando la letra -G a1b6 REAL','n','@ATTRIBUTE a1b7 !java -Xmx1024M -cp "C:Program FilesWeka-3-6weka.jar" REAL','n','@ATTRIBUTE a2b1 REAL','n','@ATTRIBUTE weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 - a2b2 REAL','n','@ATTRIBUTE a2b3 N 500 -V 0 -S 0 -E 20 -H a,a -G -t weka/entrenamiento.arff -d REAL','n','@ATTRIBUTE a2b4 REAL','n','@ATTRIBUTE weka/2Capa.model > analisis/entrena2capa.txt a2b5 REAL','n','@ATTRIBUTE a2b6 REAL','n','@ATTRIBUTE a2b7 REAL','n','@ATTRIBUTE a3b1 REAL','n','@ATTRIBUTE a3b2 Al final de la línea que se ejecutara en modo de comandos REAL','n','@ATTRIBUTE a3b3 REAL','n','@ATTRIBUTE guardan los resultados en la ruta “análisis/” para el modelo con a3b4 REAL','n','@ATTRIBUTE a3b5 una capa oculta es entrena1capa.txt y para el modelo de dos REAL','n','@ATTRIBUTE a3b6 REAL','n','@ATTRIBUTE capas ocultas es entrena2capa.txt. Estos archivos los creamos a3b7 REAL','n','@ATTRIBUTE a4b1 para mostrar información relevante del modelo en la interfaz. REAL','n','@ATTRIBUTE a4b2 REAL','n','@ATTRIBUTE a4b3 REAL','n','@ATTRIBUTE a4b4 REAL','n','@ATTRIBUTE a4b5 REAL','n','@ATTRIBUTE a4b6 REAL','n','@ATTRIBUTE a4b7 REAL','n','@ATTRIBUTE a5b1 REAL','n','@ATTRIBUTE a5b2 REAL','n','@ATTRIBUTE a5b3 REAL','n','@ATTRIBUTE a5b4 REAL','n','@ATTRIBUTE a5b5 REAL','n','@ATTRIBUTE a5b6 REAL','n','@ATTRIBUTE a5b7 REAL','n','@ATTRIBUTE class {1,2,3,4,5,6,7,8}','n','@DATA']; Luego del arreglo BaseDatos1 lo analizamos y escribimos en la variable textoadd tipo string for j=1:35 textoadd = num2str(BaseDatos1(1,j)); if(j==1) 5.4Prueba del modelo texto = [texto,textoadd]; 5.4.1Cargar Imagen a analizar y creación del archivo test.arff else Primeramente obtenemos nombre del archivo y ruta de imagen a texto = [texto,',',textoadd]; reconocer con el siguiente código: end [filename, pathname] = uigetfile({'*.jpg'}, 'Elija señal a end reconocer'); Luego leemos la imágen Al final como queremos que nos clasifique a que clase pertenece imagen = imread([pathname,filename]); el patrón de la imagen seleccionada al final colocamos el signo Luego realizamos el mismo procedimiento de la sección 6.1.2 de intrerrogación ? con la imagen, esto es obtener imagen en gris, binarización de la texto = [texto,', ?','n']; imagen y ajuste del tamaño. Y unimos el encabezado con el texto para formar el archivo imagenGris = rgb2gray(imagen); test.arff bw = im2bw(imagen,graythresh(imagenGris)); texto=[encabezado,'n',texto]; bw2 = ajustarTamanio(bw); fid=fopen('weka/test.arff','W'); fprintf(fid,texto); Luego similar a la sección 6.2 obtenemos los patrones de la fclose(fid); imagena a ser reconocida input('Archivo creado satisfactoriamente' ) patron = obtenerPatrones(bw2); El archivo es creado en el directorio /weka con el nombre cojuntoDeEntrenamiento(:,:) = patron; test.arff BaseDatos1 = cojuntoDeEntrenamiento()'; 5.4.2Analizar la imagen con el modelo de una capa Se envía los patrones para crear el archivo test.arff para ser analizado con weka oculta y con el modelo de dos capas ocultas. Una vez creado el archivo test.arff nuevamente ejecutamos convertirAWekaTest(BaseDatos1);% desde consola el siguiente comando para analizar con el modelo En la función convertirAWeka realizamos lo siguiente: de una capa oculta: En la variable encabezado de tipo string escribimos el !java -Xmx1024M -cp "C:Program FilesWeka-3-6weka.jar" encabezado del archivo test.arff como se muestra: weka.classifiers.functions.MultilayerPerceptron -T weka/test.arff -l weka/1Capa.model -p 0 >analisis/1capa.txt encabezado = ['@RELATION test','n','@ATTRIBUTE a1b1 REAL','n','@ATTRIBUTE a1b2 REAL','n','@ATTRIBUTE a1b3 REAL','n','@ATTRIBUTE a1b4
  • 10. De manera similar para analizar con el modelo de dos capas Numero de a=22 i=35 t=43 ocultas utilizamos el siguiente comando: neuronas !java -Xmx1024M -cp "C:Program FilesWeka-3-6weka.jar" Tiempo 2,31 s 4,7 s 3,35 s weka.classifiers.functions.MultilayerPerceptron -T Convergencia weka/test.arff -l weka/2Capa.model -p 0 >analisis/2capa.txt 6.1.2 Pruebas variando el número de neuronas de Al final de los dos comandos respectivamente guardamos la entrada y en las capas ocultas (neuronas de información proporcionada por la herramienta Weka: 1capa.txt entrada=144) y 2capa.txt respectivamente para mostrar la información Prueba 1 respecto a la clasificación de la imagen de prueba. 1 capa oculta La interfaz de toda ésta sección es la siguiente: Numero de a=76 i=144 t=152 neuronas Tiempo 11,76 s 20,59 s 21,94 s Convergencia 2 capa oculta Numero de a=76 i=144 t=152 neuronas Tiempo 18,85 s 46,44 s 53,02 s Convergencia Prueba 2 1 capa oculta Numero de a=76 i=144 t=152 neuronas 6.Pruebas Tiempo 15,23 s 21,32 s 21,94 s Convergencia Los siguientes pruebas son realizadas en un equipo que tiene 2 capa oculta como características: Procesador intel core 2 duo de 2.2GHz con 3G RAM. Numero de a=76 i=144 t=152 neuronas 6.1Pruebas de la convergencia de la red Tiempo 21,04 s 49,21 s 61,3 s neuronal con los dos modelos (1 capa oculta y Convergencia 2 capas ocultas) 6.1.1Pruebas variando el número de neuronas de Gráficas Neuronas de entrada = 35 entrada y en las capas ocultas (neuronas de Prueba 1 Prueba 2 entrada=35) Tiempo de convergencia Prueba 1 1 capa oculta Numero de a=22 i=35 t=43 neuronas Tiempo 1,4 s 1.52 s 1.96 s Convergencia 2 capa oculta Numero de a=22 i=35 t=43 neuronas Gráficas Neuronas de entrada = 144 Tiempo 2,11 s 2,75 s 3,02 s Prueba 1 Prueba 2 Convergencia Tiempo de convergencia Prueba 2 1 capa oculta Numero de a=22 i=35 t=43 neuronas Tiempo 1,26 s 2,7 s 3,09 s Convergencia 2 capa oculta
  • 11. clase 4 clase 4 Gráficas Neuronas de entrada (35 Vs 144) Prueba 4 Tiempo de convergencia Confianza con Confianza con 2 1capa oculta 2capas ocultas 1 capa oculta capas ocultas a=22 0.907% como 0.535% como clase 2 clase 2 i=35 0.859% como 0.708% como clase 2 clase 2 t=43 0.771% como 0.733% como clase 2 clase 2 6.2.2Variando el numero de neuronas en la capa de entrada = 144 Prueba 1 6.2Pruebas al analizar distintas imágenes con Confianza con Confianza con 2 los dos modelos (1 capa oculta y 2 capas 1 capa oculta capas ocultas ocultas) 6.2.1Variando el numero de neuronas en la capa de entrada = 35 Prueba 1 a=76 0.931% como 0.81% como clase 1 clase 1 Confianza con Confianza con 2 1 capa oculta capas ocultas i=144 0.891% como 0.765% como clase 1 clase 6 t=152 0.886% como 0.846% como clase 1 clase 4 a=22 0.857% como 0.554% como Prueba 2 clase 1 clase 4 Confianza con Confianza con 2 i=35 0.713% como 0.522% como 1 capa oculta capas ocultas clase 1 clase 6 t=43 0.832% como 0.538% como clase 1 clase 4 a=76 0.966 % como 0.962 % como clase 2 clase 2 Prueba 2 i=144 0.969% como 0.975% como Confianza con Confianza con 2 clase 2 clase 2 1 capa oculta capas ocultas t=152 0.966% como 0.971% como clase 2 clase 2 a=22 0.942 % como 0.929 % como Prueba 3 clase 2 clase 2 Confianza con Confianza con 2 i=35 0.963% como 0.903% como 1 capa oculta capas ocultas clase 2 clase 2 t=43 0.961% como 0.931% como clase 2 clase 2 Prueba 3 a=76 0.898 % como 0.959 % como clase 4 clase 4 Confianza con Confianza con 2 1 capa oculta capas ocultas i=144 0.924% como 0.969% como clase 4 clase 4 t=152 0.92% como 0.97% como clase 4 clase 4 a=22 0.925 % como 0.917 % como Prueba 4 clase 4 clase 4 Confianza con Confianza con 2 i=35 0.955% como 0.944% como 1 capa oculta capas ocultas clase 4 clase 4 t=43 0.944% como 0.945% como
  • 12. a=76 0.933% como 0.884% como 7.Conclusiones clase 2 clase 2 i=144 0.923% como 0.908% como Del presente trabajo que tiene como tema: clase 2 clase 2 Comparación de resultados en la convergencia de una red t=152 0.915% como 0.913% como neuronal utilizando 1 y 2 capas ocultas respectivamente en el clase 2 clase 2 modelo del perceptrón multicapa utilizando el algoritmo BackPropagation al realizar el reconocimiento de señales de tránsito, llegue a las siguientes conclusiones: • Cuando se realizaron la prueba los mejores resultados al convergir la red neuronal fueron aplicando una sola capa oculta. Gráficas Neuronas de entrada (35 Vs 144) • Mientras más neuronas en la capa de entrada hayan la PARE (neuronas en la capa oculta 35 Vs 144) red se demora un poco más de tiempo al convergir 1capa oculta 2capas ocultas • Al variar el número de neuronas en la capa oculta a=22ó76, i=35ó144 o t=42ó154 la red tuvo una convergencia menor utilizando una sola capa oculta mientras si se aumentaba a dos capas ocultas la red se demoraba mas en convergir • Al utilizar un numero de neuronas en la capa oculta ‘a=(atributos+clases)/2’ la red converge de manera más rápida • Los mejores resultados al clasificar nuevas clases se obtuvieron utilizando el modelo de una sola capa NO ENTRE (neuronas en la capa oculta 35 Vs 144) oculta 1capa oculta 2capas ocultas • Al clasificar nuevas clases la mayor confianza nos arrojo al utilizar una sola capa oculta y con numero de neuronas en la capa oculta de ‘a=(atributos+clases)/2’ e ‘i= atributos o clases’ • Los mejores resultados al aproximar una clase nueva son utilizando 144 neuronas de entrada pues el nivel de confianza se acerca mucho a la clase a la cual la clasifica 8.Referencias SEMAFORO (neuronas en la capa oculta 35 Vs 144) 1capa oculta 2capas ocultas [1] GONZALEZ HILERA, J.; HERNANDO MARTINEZ, V.; (1995) Redes Neuronales Artificiales. Fundamentos, Modelos y Aplicaciones, RA-MA. [2] LOONEY, C.; (1997) Pattern Recognition Using Neural Networks, Oxford University Press. [3] Material Weka, Aprendizaje Automático con Weka- Cesari Matilde, Disponible en: http://ai.frm.utn.edu.ar/micesari/files/MATERIAL_WEKA. NO ENTRE (neuronas en la capa oculta 35 Vs 144) pdf pag. 173 1capa oculta 2capas ocultas [4] Jang J.-S.R., Sun C. –T., & Mizutani E. (1997). Neuro- Fuzzy and soft computing. A computational approach to learning and machine intelligence. London, UK: Prentice- Hall. [5] Nauck D., Klawonn F., & Kruse R. (1997). Foundations of neuro-fuzzy systems. Chichester, England: John Wiley & Sons. [6] ROAD AND TRAFFIC SIGN DETECTION AND RECOGNITION, Advanced OR and AI Methods in Transportation HasanFLEYEH, Mark DOUGHERTY disponible en: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.104.2523&rep=rep1&type=pdf pag.2
  • 13. [7] Automated Traffic Sign Detection for Modern Driver Assistance Systems, TS 9D - Machine Guidance and Integrated Measurement Systems, Alexander Reiterer, Taher Hassan, Naser El-Sheimy, FIG Congress 2010, Facing the Challenges – Building the Capacity Sydney, Australia, 11-16 April 2010. Disponible en http://www.fig.net/pub/fig2010/papers/ts09d %5Cts09d_hassan_elsheimy_3828.pdf, pag.2y3 [8] OO/UC3M/62- TRAFFIC SIGN RECOGNITION SYSTEM, The research group CAOS at the Computing Department of the Carlos III University of Madrid, Spain Disponible en: http://e- archivo.uc3m.es/bitstream/10016/3185/1/OO_UC3M_62_I NG.pdf, pag 1 [9] COMPLEXITY REDUCTION IN NEURAL NETWORKS APPLIED TO TRAFFIC SIGN RECOGNITION TASKS, R. Vicen-Bueno, R. Gil-Pita, M.P. Jarabo-Amores and F. López-Ferreras, Departamento de Teoría de la Señal y Comunicaciones Escuela Politécnica Superior, Universidad de Alcalá Disponible en: http://www.ee.bilkent.edu.tr/~signal/defevent/papers/cr149 6.pdf, pag. 1-abstract [10] A REAL TIME TRAFFIC LIGHT RECOGNITION SYSTEM, XIAOLI YANG, ZHENPENG ZHAO,YOUN K. KIM,Department of Electrical and Computer Engineering, Purdue University Calumet, Hammond, Indiana 46323, USA, ABSTRACT Disponible en: http://www.worldscinet.com/ijia/05/0502/S0219878908001 569.html [11] White paper: Redes neuronales, White paper número 11 de la revista digital: las redes neuronales. Disponible en www.peiper.com.ar, pag.5 [12] OMG Unified Modeling Language Specification Version 1.3. Object Management Group, Inc. http://www.rational.com/uml/resources/documentation/inde x.jtmpl, June 1999. [13] Julián V.J., Botti V., Estudio de Métodos de Desarrollo de Sistemas Multiagente. Revista Iberoamericana de Inteligencia Artificial, nº 18 (2003) pp. 65-80. http://www.lcc.uma.es:8080/repository/fileDownloader? rfname=LCC1139.pdf [14] Aprendizaje Automático Con Weka – Césari Matilde http:// www.metaemotion.com/diego.garcia.morate/download/wek a.pdf [15] DESARROLLO DEL SISTEMA DE ADQUISICIÓN Y PROCESAMIENTO DE IMAGEN , Biblioteca de Ingeniería eléctrica y electrónica – Escuela Politécnica Nacional http://bieec.epn.edu.ec:8180/dspace/bitstream/123456789/1 218/4/T%2011089%20%20CAP%C3%8DTULO%204.pdf
  • 14. [16] PAGE SIZEANex All material on each page should fit within a rectangle of 18 x 23.5 cm (7" x 9.25"), centered on the page, beginning 2.54 cm (.75") from the top of the page and ending with 2.54 cm (1") from the bottom. The right and left margins should be 1.9 cm (.75”). The text should be in two 8.45 cm (3.33") columns with a .83 cm (.33") gutter. TYPESET TEXT Normal or Body Text Please use a 9-point Times Roman font, or other Roman font with serifs, as close as possible in appearance to Times Roman in which these guidelines have been set. The goal is to have a 9- point text, as you see here. Please use sans-serif or non- proportional fonts only for special purposes, such as distinguishing source code text. If Times Roman is not available, try the font named Computer Modern Roman. On a Macintosh, use the font named Times. Right margins should be justified, not ragged. a. Title and Authors The title (Helvetica 18-point bold), authors' names (Helvetica 12-point) and affiliations (Helvetica 10-point) run across the full width of the page – one column wide. We also recommend phone number (Helvetica 10-point) and e-mail address (Helvetica 12-point). See the top of this page for three addresses. If only one address is needed, center all address text. For two addresses, use two centered tabs, and so on. For more than three authors, you may have to improvise. 1 b. First Page Copyright Notice Please leave 3.81 cm (1.5") of blank text box at the bottom of the left column of the first page for the copyright notice. c. Subsequent Pages For pages other than the first page, start at the top of the page, and continue in double-column format. The two columns on the last 1