´ ´ ´ CLASIFICACION DE FRUTOS DE CAFE SEGUN SU ´ ETAPA DE MADURACION BASADA EN REDES NEURONALES ARTIFICIALES.
Jorge Eduardo Hern´ ndez Londo˜ o a n
Universidad Nacional de Colombia Sede Manizales Facultad de Ingenier´a y Arquitectura ı Departamento de Electricidad, Electr´ nica y Computaci´ n o o Manizales, Colombia 2004
´ ´ ´ CLASIFICACION DE FRUTOS DE CAFE SEGUN SU ´ ETAPA DE MADURACION BASADA EN REDES NEURONALES ARTIFICIALES.
Jorge Eduardo Hern´ ndez Londo˜ o a n
Tesis para optar al t´tulo de ı Ingeniero Electr´ nico o
Director Prof. Flavio Augusto Prieto Ortiz
Universidad Nacional de Colombia Sede Manizales Facultad de Ingenier´a y Arquitectura ı Departamento de Electricidad, Electr´ nica y Computaci´ n o o Manizales, Colombia 2004
A mis padres por su apoyo incondicional.
Agradecimientos
Quiero agradecer al director de este trabajo de grado, Flavio Prieto por su orientaci´ n, suo gerencias y colaboraci´ n durante este trabajo. A los integrantes del grupo de investigaci´ n o o Percepci´ n y Control Inteligente - PCI. o
4
Este trabajo se realiza en el marco del proyecto Desarrollo de algoritmos para la clasificaci´ n del caf´ cereza en el proceso de beneficio empleando t´ cnicas o e e de visi´ n artificial financiado por el DIMA-Manizales, Acta 38, Resoluci´ n o o CFIA-2000. 27 de Noviembre 2002.
´ Indice General
Portada ´ Indice General ´ Indice de Figuras ´ Indice de Tablas Resumen Abstract 1 Sistema de Visi´ n Artificial o 1.1 1.2 Definici´ n del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . o Sistema de Visi´ n Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.2.1 1.2.2 1.2.3 1.2.4 2 Adquisici´ n de las im´ genes . . . . . . . . . . . . . . . . . . . . . o a Segmentaci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Caracterizaci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Redes Neuronales Artificiales . . . . . . . . . . . . . . . . . . . .
1 i iii v viii ix 1 1 2 3 4 5 9 11
Herramienta de Clasificaci´ n o 2.1
Perceptr´ n Multi-Capa (MLP) . . . . . . . . . . . . . . . . . . . . . . . . 11 o 2.1.1 2.1.2 2.1.3 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Dise˜ o de Par´ metros . . . . . . . . . . . . . . . . . . . . . . . . 15 n a i
3
Herramienta de Clasificaci´ n sobre VHDL o 3.1
16
Red Neuronal Basada en Bloques (BBNN) [14] . . . . . . . . . . . . . . . 16 3.1.1 3.1.2 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Optimizaci´ n de la Estructura y los Pesos . . . . . . . . . . . . . . 19 o 24
4
Implementaci´ n del Sistema de Clasificaci´ n o o 4.1
Perceptr´ n Multi-Capa (MLP) . . . . . . . . . . . . . . . . . . . . . . . . 24 o 4.1.1 Entrenamiento y Validaci´ n . . . . . . . . . . . . . . . . . . . . . 24 o
4.2
Red Neuronal Basada en Bloques (BBNN) . . . . . . . . . . . . . . . . . . 29 4.2.1 4.2.2 4.2.3 4.2.4 Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Funci´ n de Activaci´ n . . . . . . . . . . . . . . . . . . . . . . . . 31 o o Funci´ n Mayor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 o 35
5
Resultados 5.1 5.2
Implementaci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 o Evaluaci´ n de Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 o 5.2.1 M´ tricas de Desempe˜ o . . . . . . . . . . . . . . . . . . . . . . . 37 e n 45 47 A–1
6
Conclusiones
Bibliograf´a ı A Sistema de transmisi´ n de datos del puerto paralelo a la tarjeta UP2 o
A.1 Puerto Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–1 A.2 Comunicaci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–2 o A.2.1 Modo de Operaci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . A–3 o ˜ B Matrices de Confusi´ n y M´ tricas de Desempeno o e C Conjunto de Redes Implementadas en VHDL B–1 C–1
´ Indice de Figuras
1.1 1.2 1.3 1.4 1.5
Inicio del Proceso de Beneficio [3]. . . . . . . . . . . . . . . . . . . . . . . . . . Etapas de un sistema de visi´ n artificial. . . . . . . . . . . . . . . . . . . . . . . . o (a)Imagen Normalizada, (b) Ventana de Segmentaci´ n. . . . . . . . . . . . . . . . . o Modelo de Color RGB
1 2 5 6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Imagen: (a) Normalizada, (b) Componente rojo, (c) Componente verde, (d) Componente azul.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.6
Muestras: (a)Espacio Azul-Rojo- Verde , (b) Plano Verde-Rojo, (c) Plano Azul-Rojo, (d) Plano Azul- Verde. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 9
1.7 2.1 2.2 3.1 3.2
Topolog´as m´ s comunes de RNA’s [17]. ı a Perceptr´ n Multi-Capa de una capa oculta. o
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 11 15 17
Distintas formas de las regiones generadas por un Perceptr´ n Multi-Capa. . . . . . . . . o Estructura del BBNN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuatro tipos diferentes configuraciones internas de bloques b´ sicos: (a) 1/3, (b) 3/1, (c) a 2/2, (d) 2/2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18 18 20
3.3 3.4 3.5 3.6 3.7
Funci´ n de activaci´ n lineal sim´ trica-saturada. . . . . . . . . . . . . . . . . . . . o o e Estructura de un Algoritmo Gen´ tico. . . . . . . . . . . . . . . . . . . . . . . . . e Proceso de Cruzamiento.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 21
Proceso de Mutaci´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Codificaci´ n Bidimensional: (a) Cromosoma de un bloque b´ sico, (b) Codificaci´ n de un o a o BBNN 2 × 2.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
iii
4.1 4.2 4.3 4.4
´ Error de entrenamiento vs No epocas vs rata inicial.
. . . . . . . . . . . . . . . . . 25 27 27
Clasificador1-MLP: Error de validaci´ n vs No de neuronas capa oculta. . . . . . . . . . o Clasificador2-MLP: Error de validaci´ n vs No de neuronas capa oculta. . . . . . . . . . o Clasificador2-MLP: Plano de Clasificaci´ n Rojo-Verde para Azul igual a 60 utilizando la o funci´ n Signo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o
28 30
4.5 4.6 4.7 4.8 4.9 5.1 5.2
Funci´ n de entrenamiento, Clasificador2-Etapa1. . . . . . . . . . . . . . . . . . . . o Estructura del BBNN con retardo. Funci´ n Activaci´ n Tipo M´ dulo. o o o
. . . . . . . . . . . . . . . . . . . . . . . . . 31 . . . . . . . . . . . . . . . . . . . . . . . . . 32 33 34 43 44
Se˜ al: Reloj (CLK), Salida con Registro (sr) y Salida sin Registro (sq). . . . . . . . . . n Clasificador2-Etapa1: (a) Bloques BBNN, (b) Implementaci´ n VHDL. . . . . . . . . . o Clasificador2-MLP: Plano de Clasificaci´ n Rojo-Verde para Azul igual a 60 . . . . . . . o Clasificador1-BBNN: Plano de Clasificaci´ n Rojo-Verde para Azul igual a 60 . . . . . . o
A.1 Puerto Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–1 A.2 Receptor de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–3 A.3 Receptor de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–4 C.1 Clasificador2-BBNN-Etapa1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–1 C.2 Clasificador2-BBNN-Etapa2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–2 C.3 Clasificador2-BBNN-Etapa3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–2 C.4 Clasificador2-BBNN-Etapa4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–3 C.5 Clasificador2-BBNN-Etapa5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–3 C.6 Clasificador2-BBNN-Etapa6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–4 C.7 Clasificador2-BBNN-Etapa8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–4 C.8 Clasificador1-BBNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–5
´ Indice de Tablas
1.1 1.2 1.3 1.4 3.1 4.1 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9
Relaci´ n entre: muestras, etapas de maduraci´ n y semanas. . . . . . . . . . . . . . . o o Base de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Porcentaje de Grano y No Grano dependiendo de la relaci´ n N s : N n. . . . . . . . . . o Criterio de Lambda de Wilks. . . . . . . . . . . . . . . . . . . . . . . . . . . . Par´ metros escogidos para la optimizaci´ n BBNN. . . . . . . . . . . . . . . . . . . a o Tiempos de propagaci´ n de la Funci´ n Mayor. . . . . . . . . . . . . . . . . . . . . o o Tiempo de ejecuci´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Tiempo de entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N´ mero de pesos utilizados por cada red. . . . . . . . . . . . . . . . . . . . . . . u N´ mero de bits utilizados por cada red. . . . . . . . . . . . . . . . . . . . . . . . u Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Clasificador2-MLP SubRedes Ensambladas: Matriz de Confusi´ n. . . . . . . . . . . . o Clasificador2-MLP SubRedes Ensambladas : Medidas de desempe˜ o. n
3 3 6 7 23 33 35 36 36 36 37 37 38
. . . . . . . . . 39 40
Clasificador1 BBNN: Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . o
5.10 Clasificador1-BBNN: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . 40 n 5.11 Clasificador1-BBNN: Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . 41 o 5.12 Clasificador1-BBNN: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . 41 n 5.13 Cuadro Comparativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 A.1 Configuraci´ n del Puerto Paralelo Estandar . . . . . . . . . . . . . . . . . . . . . A–2 o v
A.2 Registros del Puerto Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–2 A.3 Trama de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–3 A.4 Modo de Operaci´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–4 o B.1 A: Matriz de Confusi´ n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–2 o B.2 A: Medidas de desempe˜ o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–2 n B.3 C: Matrices de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–3 o B.4 C: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–3 n B.5 E: Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–4 o B.6 E: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–4 n B.7 B: Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–4 o B.8 B: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–5 n B.9 D: Matrices de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–5 o B.10 D: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–6 n B.11 F: Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–6 o B.12 F: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–6 n B.13 G: Matriz de Confusi´ n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–7 o B.14 G: Medidas de desempe˜ o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . B–7 n B.15 M´ tricas de desempe˜ o promedio . . . . . . . . . . . . . . . . . . . . . . B–7 e n
Resumen
Este trabajo presenta el desarrollo de un sistema para la clasificaci´ n de granos de caf´ o e seg´ n la etapa de maduraci´ n utilizando Redes Neuronales Artificiales (RNA’s). El proceu o so de clasificaci´ n se realiz´ con condiciones de iluminaci´ n controladas. o o o
Las RNA´s tienen varias aplicaciones como visi´ n por computador, restauraci´ n de im´ genes, o o a reconocimiento del lenguaje y clasificaci´ n de patrones. Las aplicaciones de clasificaci´ n o o de patrones utilizan frecuentemente la estructura Perceptr´ n Multi-Capa (MLP) usando el o algoritmo de aprendizaje con retro-propagaci´ n del error. Esta estructura fue dise˜ ada e o n implementada sobre C++. Por otro lado, la simulaci´ n sobre plataformas secuenciales no o proveen una velocidad de ejecuci´ n suficiente. o
Las implementaciones bajo dispositivos electr´ nicos han sido usadas para incrementar la o velocidad de ejecuci´ n utilizando su paralelismo natural. Los arreglos l´ gicos programo o ables (FPGA’s) son una excelente tecnolog´a para la implementaci´ n de la RNA´s [8]. El ı o modelo de red neuronal basado en bloques (BBNN) consiste en un arreglo bidimensional de bloques fundamentales y pesos enteros, dirigidos a la f´ cil implementaci´ n sobre disa o positivos electr´ nicos configurable como las FPGA’s. La optimizaci´ n de la estructura usa o o un algoritmo gen´ tico. Esta estructura ha sido implementada y sintetizada sobre la tarjeta e Altera Flex 10K FPGA’s.
El porcentaje de clasificaci´ n fue superior al 80%. o
vii
Abstract
This work presents the development of a system for the classification of coffee beans based on the maturity stages using Artificial Neural Network Systems (ANN’s). The whole classification system was implemented with illumination conditions controlled.
ANN’s have led to several applications such as computer-vision, image restoration, speech recognition, and pattern classification. Applications such as pattern classification use the multilayer perceptron (MLP) structure using the back-propagation learning algorithm. This structure has been designed and implemented on C++. The other hand, simulation on sequential platforms don’t provide enough execution speed.
Special purpose hardware has been used to increase the execution speed for ANN’s using natural parallelism. Field Programmable Gate Arrays (FPGA’s) are an excellent technology for implementing neural networking hardware [8]. The block-based neural network (BBNN) model consists of a two-dimensional (2-D) array of fundamental blocks and integer weights in order to allow easier implementation with reconfigurable hardware such as FPGA’s. The architecture is globally optimized using a genetic algorithm. This architecture has been implemented and synthesized on Altera Flex 10K FPGA’s.
The percentage of classification was superior to 80% out of the beans.
viii
Introducci´ n o
En nuestro pa´s la producci´ n de caf´ es de gran importancia en el sector econ´ mico, el ı o e o cual debe competir con el mercado mundial, con una buena calidad y precio para mantener los primeros lugares en exportaci´ n. Los costos de producci´ n de caf´ en Colombia o o e son muy altos debido principalmente a la mano de obra, por esta raz´ n se ha pensado en o desarrollar un sistema que permita mejorar la calidad sin aumentar notablemente el costo. En un principio se pens´ mejorar la recolecci´ n de caf´ , automatiz´ ndola, con la gran o o e a desventaja de recoger grandes cantidades de frutos indeseables, los cuales disminuyen considerablemente la calidad. Dicha calidad depende en gran parte de la clasificaci´ n de los o frutos verdes, maduros y excesivamente maduros. Con la clasificaci´ n del caf´ , seg´ n las o e u etapas de maduraci´ n en el proceso de beneficio, la calidad mejorar´ considerablemente o a manteni´ ndolo en uno de los mejores del mundo. Es de aclarar que la producci´ n del caf´ e o e en nuestro pais representa el 27% en las exportaciones [4] y la demanda de caf´ de alta e ´ calidad en los ultimos a˜ os ha aumentado en un 15% mientras el caf´ de calidad media en n e un 1% en el mercado mundial.
´ Los seres humanos son los unicos entes que clasifican en gran parte el caf´ de alta calidad. e Sin embargo, se puede pensar en un m´ todo que emule significativamente este proceso coe mo lo es un sistema de visi´ n artificial, utilizado un clasificador con redes neuronales artio ficiales (RNA’s). La vision artificial es una herramienta eficaz en el desarrollo de diferentes tareas, ya que la im´ genes digitales permiten la extracci´ n de caracter´sticas cualitativas de a o ı los objetos tales como la forma, tama˜ o y color [19]. Las RNA’s son capaces de entender n el significado de diferentes formas visuales o de distinguir entre varias clases de objetos a
ix
altas velocidades por su funcionamiento en paralelo, emulando el funcionamiento complejo del cerebro humano.
Las RNA’s logran su mayor rendimiento en plataformas paralelas que requieren gran capacidad de procesamiento, como lo son: los procesadores en paralelo y los dispositivos ´ l´ gicos programables (FPGA’s), entre otros. Estos ultimos presentan una alternativa viable o para la implementaci´ n de las RNA’s en hardware. o
Las RNA’s cl´ sicas, Perceptr´ n Multi-Capa, comprenden algunas operaciones que se cona o vierten en un problema a la hora de la implementaci´ n en hardware como lo son: el alo macenamiento de pesos reales (punto flotante), multiplicaci´ n sin´ ptica y la funci´ n de o a o actividad no-lineal, las cuales requieren una capacidad circuital muy grande [25]. Existen varias topolog´as de RNA’s, dise˜ adas para la implementaci´ n que se basan en diferentes ı n o t´ cnicas, por ejemplo: e
• Estructuras modulares con pesos sin´ pticos, valores enteros y funciones de activaci´ n a o lineales [14]. • Basadas en la modulaci´ n de frecuencia [8]. o • Basadas en la computaci´ n estoc´ stica. o a • Redes r´ pidas sin multiplicadores [13]. a
En un comienzo la aplicaci´ n se desarrolla en C++ bajo DOS en un procesador de 1.67Ghz, o con el fin de realizar el entrenamiento de las RNA’s, c´ lculo de los pesos sin´ pticos, los a a algoritmos de optimizaci´ n respectivos y las topolog´as empleadas antes de ser implemeno ı tadas en el FPGA; adem´ s tener un referente con el cual comparar los tiempos de ejecuci´ n, a o problemas de cuantizaci´ n y el desempe˜ o del sistema. El prototipo est´ implementado en o n a la tarjeta UP2 del programa universitario de Altera en el dispositivo de la familia FLEX10K
EPF10K70RC240-4 [7], que trabaja con un reloj de 25.175 MHz. El c´ digo para la proo gramaci´ n del FPGA es realizado en VHDL y simulado bajo el entorno MAX+PLUS II de o Altera Corporation [1] versi´ n 10.1. o
Este documento se encuentra organizado de la siguiente manera. En el cap´tulo 1 se reaı liza la descripci´ n general de las t´ cnicas y procedimientos empleados en cada uno de los o e m´ dulos que conforman el sistema. El cap´tulo 2 y 3 trata acerca de las topolog´as utio ı ı lizadas en el sistema de clasificaci´ n seg´ n la plataforma de implementaci´ n. El cap´tulo 4 o u o ı trata acerca de la implementaci´ n del sistema de clasificaci´ n. En el cap´tulo 5 se exponen o o ı los resultados del sistema de clasificaci´ n implementado. Finalmente, en el cap´tulo 6, se o ı presentan las conclusiones del trabajo.
Objetivos
General
Desarrollar un algoritmo clasificador de frutos de caf´ en cinco etapas de maduraci´ n basae o do en RNA’s, sobre im´ genes tomadas en condiciones controladas. a
Espec´ficos ı
´ • Desarrollar un clasificador empleando RNA’s utilizando las im´ genes con un unico a grano. • Comparar el desempe˜ o del clasificador con respecto a los resultados obtenidos por n el clasificador realizado por la estudiante Carolina Maya [12] • Implementar en VHDL la RNA para la clasificaci´ n de im´ genes de caf´ . o a e
xii
Cap´tulo 1 ı
Sistema de Visi´ n Artificial o
1.1 Definici´ n del Problema o
En la actualidad la recolecci´ n de caf´ es realizada de forma manual dando como resulo e tado un caf´ poco homog´ neo a la hora de iniciar el proceso de beneficio (Fig. 1.1). La e e poca selectividad del caf´ seg´ n su etapa de maduraci´ n; granos verdes, maduros y sobree u o maduros, entre otros, disminuye su calidad considerablemente. Dependiendo del estado de maduraci´ n en que se encuentra el caf´ se producen diferentes sabores y aromas [19]. o e Esta ca´da en la calidad da como consecuencia principal una ca´da en su precio frente al ı ı mercado mundial.
Figura 1.1: Inicio del Proceso de Beneficio [3]. 1
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
La clasificaci´ n de los granos antes del proceso de beneficio depende de la subjetividad del o recolector. Este proceso puede ser reemplazado por los sistemas de visi´ n artificial, dado o ´ que estos ultimos se basan en el an´ lisis de im´ genes digitales de diferentes caracter´sticas a a ı tales como el tama˜ o y el brillo del grano de caf´ . n e
Por esta raz´ n se propone un sistema de visi´ n artificial antes del proceso de beneficio para o o la clasificaci´ n de granos de cafe seg´ n la etapa de maduraci´ n utilizando como caraco u o ter´stica principal la intensidad del color de la epidermis del grano. ı
1.2
Sistema de Visi´ n Artificial o
A continuaci´ n describiremos cada una de las etapas de un sistema de visi´ n (Fig. 1.2). o o
Figura 1.2: Etapas de un sistema de visi´ n artificial. o
2
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
1.2.1
Adquisici´ n de las im´ genes o a
Este proceso de adquisici´ n fue realizado por la Ing. Zulma Liliana Sandoval, tomando o ´ im´ genes con un unico grano y diferentes condiciones de iluminaci´ n, fondo y c´ mara. a o a [19]. El estudio se realiz´ en 11 muestras que comprenden 8 semanas, las cuales se sepao raron en 8 etapas de maduraci´ n, como lo muestra la Tabla 1.1 . o Muestra Etapa de Maduraci´ n o Semana 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 5 7 6 6 8 7 6 9 7 7 10 8 7 11 8 8
Tabla 1.1: Relaci´ n entre: muestras, etapas de maduraci´ n y semanas. o o Se tomaron un total del 5800 im´ genes con: seis tipos de iluminaci´ n (i1-i6) [19], tres tipos a o de fondo (blanco (f1), azul oscuro (f2) y azul claro (f3)) y dos tipos de c´ mara (c´ mara de a a v´deo jvc (c1) y c´ mara fotogr´ fica digital logitec (c2)) distribuidas seg´ n la Tabla 1.2. ı a a u
Muestra 1 2 3 4 5 6 7 8 9 10 11
No . Im´ genes a 300 500 400 800 500 500 500 500 600 600 600
Condiciones de Adquisici´ n para cada 100 im´ genes o a i1f3c2, i2f3c2 e i3f3c2 i1f3c2, i2f3c2, i3f3c2, i1f1c1 e i2f2c1 i1f3c2, i2f3c1, i3f2c1 e i4f3c1 i1f1c1, i2f1c1, i3f2c1, i4f2c1, i5f3c1 ,i6f3c1 , i2f3c2 e i3f3c2 i1f1c1, i1f3c1, i2f3c1, i3f1c1 e i3f3c1 i1f1c1, i1f3c1, i2f3c1, i3f1c1 e i3f3c1 i1f1c1, i1f2c1, i1f3c1, i2f1c1 e i2f2c1 i1f1c1, i1f2c1, i1f3c1, i2f1c1 e i2f3c1 i1f1c1, i1f2c1, i1f3c1, i2f1c1, i2f2c1 e i2f3c1 i1f1c1, i1f2c1, i1f3c1, i2f1c1, i2f2c1 e i2f3c1 i1f1c1, i1f2c1, i1f3c1, i2f1c1, i2f2c1 e i2f3c1 Tabla 1.2: Base de Datos. 3
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
Teniendo en cuenta que la Etapa 1 consta de solo 300 im´ genes , se seleccionaron las dem´ s a a im´ genes de forma aleatoria para que cada clase tuviera la misma cantidad de im´ genes, a a tomando como referencia la Tabla 1.1 y la Tabla 1.2: • Etapa 1: Completa • Etapa 2: 60 por cada 100. • Etapa 3: 75 por cada 100. ´ • Etapa 4: 37 en las cuatro primeras 100 y 38 en las cuatro ultimas 100 . • Etapa 5: 60 por cada 100. • Etapa 6: 30 por cada 100. ´ • Etapa 7: 27 en las ocho primeras 100 y 28 en las tres ultimas 100 . • Etapa 8: 25 por cada 100. De esta forma se garantiza un total de 2400 im´ genes, 300 por etapa. a
Dado que las im´ genes digitales se adquirieron con diferentes tama˜ os; antes de realizar a n cualquier proceso se hace un recorte de la imagen del m´nimo paralelogramo que encierra ı completamente el grano y a partir de esta imagen se normaliza a una nueva de dimensiones N n x N n, utilizando un factor de normalizaci´ n dado por el ancho y el alto de la imagen o sobre cada par de coordenadas x y y.
1.2.2
Segmentaci´ n o
La segmentaci´ n es el proceso de agrupaci´ n de partes pertenecientes a una imagen o o gen´ rica en unidades que son homog´ neas en relaci´ n a uno o varios atributos de la imae e o gen en regiones con significado [5].
4
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
Como la imagen a segmentar es cuadrada y el grano se encuentra completamente centrado se toma un segmento cuadrado de la parte interna de la imagen, dicho cuadrado debe ´ tener un area N s x N s, m´ ltiplo de 2, para facilitar las operaciones digitales y operaciou nes de corrimiento presentes en plataformas digitales durante el proceso de caracterizaci´ n. o
Para establecer el valor de N n y N s (Fig. 1.3), se observa la variaci´ n N n mayor o igual a o ´ N s y N s cumpliendo las condiciones de area requeridas, el porcentaje de grano y no grano seleccionado por la ventana de segmentaci´ n. o
(a)
(b)
Figura 1.3: (a)Imagen Normalizada, (b) Ventana de Segmentaci´ n. o De esta forma se selecciona la relaci´ n N s:N n 1:2 (Tabla 1.3), dado que es la relaci´ n o o en la cual la ventana de segmentaci´ n toma el mayor porcentaje sin tomar informaci´ n o o err´ nea del fondo de la imagen (No Grano). Finalmente se tom´ una ventana cuadrada de o o normalizaci´ n de lado 32 y una ventana cuadrada de segmentaci´ n de lado 16. o o
1.2.3
Caracterizaci´ n o
La caracterizaci´ n se refiere al proceso de extracci´ n de algunas medidas num´ ricas de la o o e imagen segmentada. Para este caso el color de la epidermis del grano es la m´ s represena tativa y a partir de esta descomponerla en sus respectivas componentes del modelo RGB. Adem´ s se analiz´ sus respectivas transformaciones en los diferentes espacios de colores, a o aunque no se utilizaron finalmente por la falta de punto flotante en la FPGA. 5
Cap´tulo 1. Sistema de Visi´ n Artificial ı o N s:N n 1:1 1:1.25 1:1.5 1:1.75 1:2 1:2.25 1:2.5 1:2.75 1:3 1:3.25 % Grano 100 88.9904 67.9680 51.9506 41.1943 33.8147 28.5096 24.5552 21.5164 19.1221 %No Grano 29.1645 8.6339 1.8937 0.6090 0 0 0 0 0 0
Tabla 1.3: Porcentaje de Grano y No Grano dependiendo de la relaci´ n N s : N n. o
Modelo Color RGB Un modelo de color RGB (Fig. 1.4) es una especificaci´ n de un modelo de coordenadas o 3D y un subespacio dentro de este sistema donde cada punto corresponde a un color: rojo (Red), verde (Green) y azul (Blue) [23]. Se descompone la imagen normalizada de 32x32 en las componentes RGB (Fig. 1.5).
Figura 1.4: Modelo de Color RGB Para determinar cu´ ntas y cu´ les variables utilizar se analiza el poder discriminante [21] a a de cada componente del modelo RGB y sus posibles combinaciones a partir del criterio de 6
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
(a)
(b)
(c)
(d)
Figura 1.5: Imagen: (a) Normalizada, (b) Componente rojo, (c) Componente verde, (d) Componente azul.
Lambda de Wilks [11].
El criterio de la Lambda de Wilks (Λ) mide el poder discriminante del conjunto de caracter´sticas seleccionadas. El toma valores entre 0 y 1, cuanto m´ s cerca de 0 est´ , mayor es ı a e el poder discriminante de las variables seleccionadas. Esta dado por:
Λ= Donde:
|I| |I + E|
(1.1)
I es la matriz de la suma de los cuadrados de la variabilidad intra-grupos y E es la matriz de la suma de los cuadrados de la variabilidad entre-grupos.
Caracter´sticas ı R G B R, G R, B G, B R, G, B
Poder Discriminante 0.00783866081631 0.00517518580809 0.09405113322486 0.00000609099898 0.00008474553955 0.00002583203295 0.00000035649235
Tabla 1.4: Criterio de Lambda de Wilks. 7
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
(a)
(b)
(c)
(d)
Figura 1.6: Muestras: (a)Espacio Azul-Rojo- Verde , (b) Plano Verde-Rojo, (c) Plano Azul-Rojo, (d) Plano
Azul- Verde.
De esta forma se determina, Tabla 1.4, que las caracter´sticas a analizar son la densidad de ı ´ brillo de las tres componentes del modelo RGB sobre la secci´ n de area segmentada. En la o Fig. 1.6 se observan los espacios y planos de las caracter´sticas escogidas. ı
8
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
1.2.4
Redes Neuronales Artificiales
Los sistemas de c´ mputo actuales aunque realizan numerosas operaciones de punto flotante, o no son capaces de entender el significado de diferentes formas visuales o de distinguir entre varias clases de objetos. Por esta raz´ n, diferentes investigaciones han centrado su o atenci´ n en el desarrollo de nuevos sistemas de tratamiento de informaci´ n, emulando el o o funcionamiento complejo del cerebro humano. El cerebro humano es capaz de interpretar informaci´ n imprecisa suministrada por los sentidos a altas velocidades por su funo cionamiento en paralelo.
Teniendo en cuenta el funcionamiento del cerebro surgieron las RNA’s, una parte de la inteligencia artificial, las cuales presentan las caracter´sticas de: aprendizaje, funcionamiento ı paralelo, representaci´ n distribuida, generalizaci´ n, tolerante a fallos, entre otras. o o
Figura 1.7: Topolog´as m´ s comunes de RNA’s [17]. ı a
9
Cap´tulo 1. Sistema de Visi´ n Artificial ı o
Las RNA’s encuentran el patr´ n escondido presente en la caracter´sticas seleccionadas. o ı Las RNA’s presentan varias topolog´as (Fig. 1.7) dependiendo de la aplicaci´ n y la plataforı o ma de implementaci´ n entre otras. Para aplicaciones de clasificaci´ n y reconocimiento de o o patrones las topolog´as m´ s utilizadas son el Perceptr´ n Multi-Capa (MLP) y Redes de ı a o Funciones de Base Radial (RBFN). Para nuestra aplicaci´ n utilizamos una red MLP en la o simulaci´ n bajo software, ya que su tiempo de entrenamiento es mucho menor que una red o RBFN. Finalmente como la plataforma de implementaci´ n es una FPGA se sintetiz´ una o o red neuronal basada en bloques, Block Base Neural Networks (BBNN) [14], topolog´a ı dise˜ ada para la realizaci´ n sobre plataformas digitales. n o Perceptr´ n Multi-Capa o Estructura: El perceptr´ n multi-capa es una estructura jer´ rquica que consiste en varias o a capas de neuronas totalmente interconectadas, que admiten como entradas las salidas de los elementos de proceso (neuronas) de la capa anterior. Entrenamiento: Un conjunto de reglas bien definidas que describen el m´ todo de adaptaci´ n e o o modificaci´ n de los pesos sin´ pticos, que interconectan las capas, de acuerdo con o a el entorno mediante un algoritmo de aprendizaje. Red Neuronal Basada en Bloques (BBNN) Estructura: La arquitectura BBNN consiste en un arreglo bidimensional (2D) de bloques fundamentales con cuatro variables de entrada y/o salida y conectadas con pesos. Cada bloque se encuentra interconectado entre si, formando una estructura modular. Se profundizar´ m´ s a fondo en el cap´tulo 2 y cap´tulo 3 respectivamente sobre cada a a ı ı topolog´a utilizada. ı
10
Cap´tulo 2 ı
Herramienta de Clasificaci´ n o
2.1
2.1.1
Perceptr´ n Multi-Capa (MLP) o
Arquitectura
El perceptr´ n multi-capa es una estructura jer´ rquica que consiste en varias capas de neuo a ronas totalmente interconectadas, que admiten como entradas las salidas de los elementos de proceso (neuronas) de la capa anterior. Se caracteriza por la presencia de una o m´ s a capas ocultas (Fig. 2.1).
Figura 2.1: Perceptr´ n Multi-Capa de una capa oculta. o
11
Cap´tulo 2. Herramienta de Clasificaci´ n ı o
Capas Capa de Entrada: Es la capa que recibe los est´mulos del entorno. No suele tener asoı ciado un mecanismo de aprendizaje, es decir, sus pesos se mantienen constantes, y su misi´ n simplemente es la de distribuir dicha entrada al resto de los elementos de o proceso que constituyen la red. Capa de Salida: Es la capa sobre la que se forman las salidas de la red. Capas Ocultas: Son las dem´ s capas que no son ni de entrada ni de salida. Interconectan a la capa de entrada con la capa de salida. Funci´ n de activaci´ n o o La funci´ n de activaci´ n para este tipo de topolog´a depende principalmente del entreo o ı namiento al cual ser´ sometida. Para este caso se seleccion´ un funci´ n de activaci´ n a o o o continua en todo el intervalo de evaluaci´ n, curva suave, dado que el entrenamiento utiliza o las derivadas de la salida. Las funciones de activaci´ n m´ s comunes como curvas suaves o a son: Lineal: f (n) = n Sigmoidal Unipolar: f (n) = Sigmoidal Bipolar: f (n) = tanh (n) = en − e−n en + e−n (2.3) 1 1 + e−n (2.2) (2.1)
Para esta aplicaci´ n se utiliz´ la funci´ n de activaci´ n tangente hiperb´ lica (Ec. 2.3), deo o o o o bido a que las funciones bipolares facilitan el proceso de entrenamiento, haciendo que el algoritmo converja m´ s r´ pidamente. a a 12
Cap´tulo 2. Herramienta de Clasificaci´ n ı o
Funci´ n de integraci´ n o o Para esta aplicaci´ n se utiliz´ una funci´ n de integraci´ n lineal, Ec. 2.4. o o o o
Wji × ai
(2.4)
De esta forma, las ecuaciones que rigen la propagaci´ n de la se˜ al de entrada para el caso o n de una capa oculta son:
q
nj =
i=1
Wji × ai
(2.5)
aj = f (nj + bj )
(2.6)
m
nk =
i=1
Wkj × aj
(2.7)
ak = f (nk + bk ) Donde: • ai son las entradas de la red. • aj son las salidas de la capa oculta. • ak son las salidas de la red. • Wji son los pesos entre la capa de entrada y la capa oculta . • Wkj son los pesos entre la capa oculta y la capa de salida. • bj son los umbrales de la capa oculta . • bk son los umbrales de la capa de salida. 13
(2.8)
Cap´tulo 2. Herramienta de Clasificaci´ n ı o
2.1.2
Entrenamiento
El entrenamiento de una RNA es el m´ todo de adaptaci´ n o modificaci´ n de los pesos e o o sin´ pticos. Este puede ser de dos formas principalmente: a Supervisado: Estas redes se entrenan presentando, para cada combinaci´ n de entradas, o las salidas que se espera ellas produzcan. Los algoritmos de entrenamiento calculan pesos y umbrales nuevos de manera de minimizar el error entre la salida deseada y la obtenida realmente. Sin supervisi´ n: Los algoritmos de entrenamiento calculan nuevos pesos libremente. Eso tas redes se utilizan como clasificadores, pues se caracterizan por asociar una combinaci´ n de entradas especificas con una sola salida. o Para las redes MLP se utiliza com´ nmente un entrenamiento supervisado, para esto existen u diferentes algoritmos de entrenamiento como lo son: • Algoritmo de Retropropagaci´ n del error (BackPropagation [26]): o – Algoritmo de Gradiente Descendiente. – Algoritmo de Gradiente Conjugado. – Algoritmo de Levenberg-Marquardt [10]. • Algoritmos Gen´ ticos. e En esta aplicaci´ n se utiliz´ el algoritmo de Retropropagaci´ n del error por Gradiente Deso o o cendiente, con una rata de aprendizaje adaptativa [16] en funci´ n del error. o Algoritmo de Retropropagaci´ n del Error por Gradiente Descendiente o Las ecuaciones que rigen el entrenamiento para el caso de una red con una sola capa oculta son:
δk = (tk − ak ) ·
∂f (nk + bk ) = (tk − ak ) · 1 − a2 k ∂ (nk + bk ) 14
(2.9)
Cap´tulo 2. Herramienta de Clasificaci´ n ı o
δj = (Wkj × δk ) ·T
∂f (nj + bj ) = (Wkj × δk )T · 1 − a2 j ∂ (nj + bj )
(2.10)
Wkj = Wkj + α1 δk × (aj )T
(2.11)
Wji = Wji + α2 δj × (ai )T
(2.12)
2.1.3
˜ Diseno de Par´ metros a
La mayor´a de los dise˜ adores presentan problemas al determinar el n´ mero de capas oculı n u tas de la red y el n´ mero de neuronas en cada capa, lo cual solo depende de la experiencia u del dise˜ ador. Para determinar estos par´ metros se puede tener en cuenta los siguientes n a factores: tiempo de entrenamiento, formas de las regiones generadas (Fig. 2.2), error de validaci´ n. o
Figura 2.2: Distintas formas de las regiones generadas por un Perceptr´ n Multi-Capa. o
15
Cap´tulo 3 ı
Herramienta de Clasificaci´ n sobre o VHDL
Las RNA’s cl´ sicas comprenden algunas operaciones que se convierten en un problema a a la hora de la implementaci´ n en hardware como lo son: el almacenamiento de pesos reales o (punto flotante), multiplicaci´ n sin´ ptica y la funci´ n de actividad no-lineal, las cuales reo a o quieren una capacidad circuital muy grande [25].
Dadas las condiciones y las restricciones presentes sobre dispositivos l´ gicos, se opt´ por o o la implementaci´ n de una topolog´a de RNA que se adaptar´ a esas caracter´sticas, como o ı a ı lo es la topolog´a BBNN. ı
3.1
3.1.1
Red Neuronal Basada en Bloques (BBNN) [14]
Arquitectura
La arquitectura BBNN (Fig. 3.1) consiste en un arreglo bidimensional (2D) de tama˜ o n m × n con bloques fundamentales de cuatro variables de entrada y/o salida conectadas con pesos. Cada bloque puede tener una de las cuatro configuraciones escogidas dependiendo de la estructura Fig. 3.2. El modelo presenta pesos de tipo entero para f´ cil implementaci´ n a o en hardware reconfigurable como arreglos l´ gicos programables (FPGA’s) o
16
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
´ Cada bloque es etiquetado como Bij. La primera etapa (i = 1) y la ultima etapa (i = m) denotan las etapas de entrada y de salida respectivamente. El m×n BBNN puede tener hasta n entradas y salidas redundantes, las cuales toman valores de constantes en las entradas y en las salidas no importa. Los bloques intermedios son interconectados directamente con sus bloques vecinos. La flecha entrante denota una entrada y la flecha saliente denota una salida. El bloque tiene cuatro tipos diferentes de configuraciones internas dependiendo de las conexiones entrada-salida de la estructura de la red. La Fig. 3.2 muestra las cuatro diferentes estructuras internas. Las Fig. 3.2(a) y Fig. 3.2(b) muestran una entrada /tres salidas y tres entradas / una salida, respectivamente. Las Fig. 3.2(c) y Fig. 3.2(d) corresponde a dos entradas / dos salidas pero con conexiones internas diferentes. xi y yi indican entradas y salidas del bloque. Todos los pesos y umbrales son valores enteros. Un caso extremo puede ser que el bloque posea cero entradas y cuatro salidas o cuatro entradas cero salidas, lo cual es una de sus limitantes.
Figura 3.1: Estructura del BBNN. Cada nodo es caracterizado por una funci´ n de activaci´ n g(). El nodo de entrada usa una o o funci´ n de activaci´ n lineal con pendiente 1, mientras el nodo de salida usa una funci´ n o o o de activaci´ n lineal, sim´ trica y saturada para implementaci´ n en hardware. La Fig. 3.3 o e o 17
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
(a)
(b)
(c)
(d)
Figura 3.2: Cuatro tipos diferentes configuraciones internas de bloques b´ sicos: (a) 1/3, (b) 3/1, (c) 2/2, a
(d) 2/2.
muestra la forma de la funci´ n de activaci´ n sim´ trica, saturada y lineal con una pendiente o o e de 1/d.
Figura 3.3: Funci´ n de activaci´ n lineal sim´ trica-saturada. o o e El BBNN est´ dise˜ ado para la implementaci´ n usando hardware digital como FPGA y a n o otros chips reconfigurables que permiten una parcial reorganizaci´ n. La estructura BBNN o 18
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
tiene caracter´sticas modulares. El tama˜ o puede ser expandido adicionando m´ s bloques ı n a b´ sicos. La estructura de la red simplemente corresponde a la determinaci´ n de las se˜ ales a o n de flujo. Los pesos de conexi´ n son entrenados por el proceso de optimizaci´ n basado en o o algoritmos gen´ ticos (AG’s). e
3.1.2
Optimizaci´ n de la Estructura y los Pesos o
La optimizaci´ n del BBNN est´ compuesta de dos partes: optimizaci´ n de la estructura y o a o optimizaci´ n de los par´ metros. La optimizaci´ n de la estructura corresponde a la detero a o minaci´ n de la configuraci´ n interna de cada bloque. La optimizaci´ n de los par´ metros o o o a o proceso de aprendizaje que determina el valor de los pesos entre las conexiones entradasalida. El AG encuentra la soluci´ n m´ s optima en busca de un espacio discreto consistente, o a ´ de cromosomas de acuerdo con la funci´ n de aptitud “fitness”. o Operadores gen´ ticos [6] e Los AG’s son un entrenamiento supervisado, a partir de la salida deseada para una entrada determinada, de esta forma se compara con las salida resultante para determinar un error.
Siguiendo con la estructura del AG (Fig.3.4), y se genera una poblaci´ n inicial de n indio viduos. Cada individuo es un cromosoma el cu´ l representa una soluci´ n [20], de tal forma a o que para el algoritmo a dise˜ ar el cromosoma ser´ un vector, cuyo tama˜ o depender´ de n a n a la cantidad de variables de decisi´ n m. Dado un X = (x1 ,x2 ,x3 ,...,xi ,...xm ); en donde cada o xi representa un gen del cromosoma o variable del problema espec´fico, siendo la unidad ı b´ sica para aplicar las operaciones. Despu´ s de establecer la poblaci´ n inicial, se procede a e o a realizar un proceso iterativo con los siguientes pasos: • Evaluaci´ n: Para cada cromosoma i se calculan las salidas mediante el conjunto de o entrenamiento. Se asocia a cada poblaci´ n su correspondiente error promedio de o todas las salidas. • Selecci´ n: Existen varios m´ todos de selecci´ n entre los que tenemos el proporcional o e o (ruleta), el ranking, el torneo. El m´ todo utilizado es el ranking [22]; el cual a partir e 19
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
Figura 3.4: Estructura de un Algoritmo Gen´ tico. e
del error promedio que produce en la salida cada poblaci´ n se ordenan en forma o ascendente agrup´ ndolos en pares. De esta forma los primeros pares ser´ n los m´ s a a a aptos (menor error) para dejar descendencia. • Cruzamiento: Los n/2 primeros individuos forman n/4 parejas (el primer individuo con el segundo, el tercero con el cuarto y as´ sucesivamente). Se realiza el “cruzaı miento en un punto” (seg´ n una probabilidad) . Los n/2 nuevos individuos obtenidos, u sustituir´ n a los n/2 peores individuos no seleccionados para el cruce, Fig. 3.5. a Corte Padres ↓ Hijos Figura 3.5: Proceso de Cruzamiento. 20 ↓ Corte
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
• Mutaci´ n: Con cierta probabilidad, se muta a los individuos (excepto el primero que o es el m´ s apto). Como son bits la mutaci´ n consiste en el complemento del bit, Fig. a o 3.6. Para el caso especial de la estructura BBNN existe una probabilidad de mutaci´ n o para la estructura y para los pesos diferente. El proceso de mutaci´ n es necesario para o la rapidez del algoritmo. Antes
Despu´ s e Figura 3.6: Proceso de Mutaci´ n. o • Se repiten los pasos anteriores hasta cumplir el criterio de parada. Los criterios de parada m´ s utilizados son: n´ mero de generaciones y m´nimo error permitido a u ı (funci´ n de adaptaci´ n). o o Codificaci´ n o La estructura del BBNN determina las se˜ ales de flujo entre los bloques, y la se˜ al de flun n jo entre los bloques determina la configuraci´ n interna o el modo entrada-salida de cada o bloque. La estructura y los pesos de conexi´ n se optimizan simult´ neamente, la estructura o a y los pesos de la red deben ser codificados en un cromosoma al mismo tiempo. Por esta raz´ n es necesario utilizar una codificaci´ n multidimensional, donde cada gen es asignado o o a una dimensi´ n. En este modelo (BBNN 2-D), la estructura y los pesos de la red de cada o bloque son asignados a un cromosoma bidimensional lo cual mejora la ejecuci´ n del opeo rador de cruce en el AG.
La Fig. 3.7(a) representa un cromosoma de un bloque b´ sico de una estructura BBNN. La a Fig. 3.7(b) muestra el resultado bidimensional de una estructura de 2 × 2. Por ejemplo en la Fig. 3.7 todos los pesos son codificados por n´ meros binarios de cuatro bits. u
21
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
(a)
(b)
Figura 3.7: Codificaci´ n Bidimensional: (a) Cromosoma de un bloque b´ sico, (b) Codificaci´ n de un o a o
BBNN 2 × 2.
La estructura BBNN es definida por la direcci´ n de la se˜ al de flujo. El valor “0” indica o n flujo bajante ↓ e izquierdo ← y, mientras el valor de “1” indica flujo ascendente ↑ y derecho →. La se˜ al de flujo es com´ n para los bloques vecinos. La primera etapa del BBNN tiene n u ´ nodos entrada, los cuales corresponden a las se˜ ales de flujo “0”, y el ultimo estado tambi´ n n e contiene “0” para flujo de se˜ al de salida. Los pesos tienen valores ω desde − 2l−1 − 1 n a 2l−1 − 1 . La ecuaci´ n 3.1 transforma los enteros positivos ωb expresados por n´ meros o u enteros positivos de l-bits a valores enteros − 2l−1 − 1 a 2l−1 − 1
ω = ωb − 2l−1 + s (ωb ) Donde:
(3.1)
1 si ω < 2l−1 b s (ωb ) = 0 en otro caso
(3.2)
El modelo BBNN tiene restricciones comparado con otros modelos conocidos de redes neuronales.
22
Cap´tulo 3. Herramienta de Clasificaci´ n sobre VHDL ı o
El AG para la optimizaci´ n del BBNN requiere cuatro par´ metros principales. La Tabla o a 3.1 muestra los par´ metros y los valores recomendados. a
Par´ metro a Probabilidad de cruce (pc ) Prob. de mutaci´ n de pesos (pmw ) o Prob. de mutaci´ n de estructura (pms ) o Poblaci´ n o
Valor 0.35 0.001 0.005 100
Tabla 3.1: Par´ metros escogidos para la optimizaci´ n BBNN. a o
23
Cap´tulo 4 ı
Implementaci´ n del Sistema de o Clasificaci´ n o
4.1
4.1.1
Perceptr´ n Multi-Capa (MLP) o
Entrenamiento y Validaci´ n o
Se utilizar´ la t´ cnica de validaci´ n cruzada para estimar el error [15]. En la t´ cnica de a e o e validaci´ n cruzada, los elementos del grupo total de muestras T , en este caso todas las o im´ genes, se divide aleatoriamente en V conjuntos disjuntos T1 , T2 , ...TV de un tama˜ o a n similar (Ti ≈
T V
i = 1, 2, ..., V ). El procedimiento puede plantearse como sigue:
• Para todo v, v = 1, 2, ..., V, construir un clasificador usando T − Tv , como conjunto de aprendizaje. Sea dv el clasificador construido as´. Como ninguno de los elementos ı del grupo de Tv se ha usado para construir dv , el estimador de error para dv se hace mediante el conjunto de prueba Tv , as´: ı
Error(dv ) =
1 Tv
∆(Imai , categi )
(Imai ,categi ) Tv
(4.1)
donde ∆ se eval´ a sobre dv . Al finalizar este paso obtenemos V clasificadores, dv , u con sus correspondientes estimaciones de error, Error(dv ) (4.1).
24
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
• Formalmente, el estimador por validaci´ n cruzada con V conjuntos, Error(d), se o calcula con (4.2),
1 Error(d) = V
V
Error(dv )
v=1
(4.2)
Finalmente se utiliza la red que presente el menor error de validaci´ n. Con este tipo de o entrenamiento se evita el sobre entrenamiento de la red. Par´ metros de entrenamiento a ´ En la Fig.4.1 se observa la variaci´ n del error de entrenamiento entre el n´ mero de epocas o u y la rata de aprendizaje inicial (α0 ) empleando el algoritmo de entrenamiento retropropagaci´ n del error por gradiente descendiente. o
´ Figura 4.1: Error de entrenamiento vs No epocas vs rata inicial.
25
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
Cuando α0 es cercana a uno, el error disminuye r´ pidamente, pero se estabiliza en un valor a sin grandes variaciones. Al disminuir α0 , el error es mucho menor a comparaci´ n con el o ´ caso anterior, necesitando un numero mayor de epocas. Por estas razones los par´ metros a de entrenamiento escogidos son: ´ • Max. epocas: 1000. • Rata inicial de aprendizaje (α0 ): 0,1. • Tipo de entrenamiento: Retropropagaci´ n del error por Gradiente Descendiente. o Se implementaron dos clasificadores diferentes a partir de la topolog´a MLP seleccionada ı en el cap´tulo 2. El primer clasificador consiste en una red de 8 salidas con correspondencia ı directa a cada clase, el segundo clasificador consiste en 8 redes con una salida para cada clase. Clasificador 1: Una red con: • N´ mero de Neuronas en la capa de entrada: 3. u • N´ mero de Neuronas en la capa oculta: 50. u • N´ mero de Neuronas en la capa de salida: 8. u • Salida: Funci´ n mayor de las neuronas de salida. o
Clasificador 2: Ocho redes, red por clase, con: • N´ mero de Neuronas en la capa de entrada: 3. u • N´ mero de Neuronas en la capa oculta: 6. u • N´ mero de Neuronas en la capa de salida: 1. u • Salida: Funci´ n Mayor de la salida con las subredes ensambladas. o El n´ mero de neuronas de la capa de entrada lo determina el n´ mero de caracter´sticas que u u ı se tomaron, el n´ mero de neuronas en la capa de salida lo determina el n´ mero de etapas de u u maduraci´ n del caf´ y finalmente el n´ mero de neuronas en la capa oculta fue determinado o e u por un an´ lisis del error logrado en la validaci´ n de la red seleccionada. a o 26
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
An´ lisis del Menor Error Logrado a El aumento del n´ mero de neuronas en la capa oculta reduce considerablemente el error de u entrenamiento y de validaci´ n hasta cierto limite y a partir de este punto se estabiliza sin o presentar mayores diferencias.
Teniendo en cuenta este desempe˜ o se opt´ por 50 neuronas en la capa oculta para el Clasin o ficador1 y 6 neuronas en la capa oculta para el Clasificador2, el cual es el punto donde se presenta el 90% del error m´nimo logrado (Fig. 4.2 y Fig. 4.3) . ı
Figura 4.2: Clasificador1-MLP: Error de validaci´ n vs No de neuronas capa oculta. o
Figura 4.3: Clasificador2-MLP: Error de validaci´ n vs No de neuronas capa oculta. o
27
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
Adem´ s de la red neuronal se debe implementar otra funci´ n para determinar cual de las a o neuronas de salidas se encuentra activada. Varios dise˜ adores sugieren el uso de la funci´ n n o signo, pero para esta aplicaci´ n la funci´ n signo a la salida de la red no es suficiente para o o realizar una buena discriminaci´ n. Por esta raz´ n, a la salida se agreg´ una etapa de seleco o o ci´ n seg´ n la funci´ n mayor. La funci´ n mayor le coloca un 1 al mayor y -1 a los otros o u o o valores -1. Cuando dos o m´ s valores mayores son iguales, la funci´ n mayor coloca un 1 a a o la salida de menor orden.
En la Fig. 4.4 se observa el resultado de una red utilizando la funci´ n signo, la cual no o puede determinar a que etapa de clasificaci´ n pertenece cuando m´ s de dos neuronas de o a salida se encuentran activadas (Indefinida).
Etapa
[]
1 2 3 4 5 6 7 8 Indefinida
[]
[]
[]
[]
[]
* * *
Figura 4.4: Clasificador2-MLP: Plano de Clasificaci´ n Rojo-Verde para Azul igual a 60 utilizando la o
funci´ n Signo. o
28
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
4.2
Red Neuronal Basada en Bloques (BBNN)
Teniendo en cuenta que el entrenamiento de dicha estructura se realiza a partir de algoritmos gen´ ticos, se desarroll´ la topolog´a BBNN bajo C++ antes de realizar una implee o ı mentaci´ n sobre VHDL. De esta forma se dise˜ o un estructura lo m´ s cercana posible al o n´ a desarrollo bajo VHDL, utilizando funciones de desborde y de acarreo presentes en plataformas digitales.
Se implementaron dos clasificadores diferentes a partir de la topolog´a BBNN. El n´ mero ı u de filas se determin´ a partir n´ mero de capas implementadas en la topolog´a MLP. El o u ı n´ mero columnas se determin´ observando el m´ ximo valor entre el n´ mero de salidas y u o a u el n´ mero de entradas. u Clasificador 1: Una red con: • N´ mero Columnas: 8. u • N´ mero Filas: 3. u • Ocho entradas: R, G, B, R, G, B, R y G. ´ • Salida: Funci´ n Mayor de los ocho bloques de la ultima fila. o
Clasificador 2: Ocho redes con: • N´ mero Columnas: 3. u • N´ mero Filas: 3. u • Tres entradas: R, G y B. ´ • Salida: Funci´ n signo de la ultima fila, columna del medio. o
29
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
4.2.1
Entrenamiento
Durante el proceso de entrenamiento se tomaron poblaciones de n individuos, de esta forma el criterio de parada fue el punto donde el error promedio de los n/2 individuos m´ s aptos a era igual al error del individuo m´ s apto. La Fig. 4.5 muestra el error m´nimo dado por el a ı individuo m´ s apto y el error promedio dado por los n/2 individuos m´ s aptos. a a
Error ——Promedio M´nimo ı
Figura 4.5: Funci´ n de entrenamiento, Clasificador2-Etapa1. o
4.2.2
Estructura
Al simular la estructura con el proceso de entrenamiento, algunos flujos de la red formaban trayectorias cerradas, las cuales presentaban caracter´sticas de sistemas inestables . No ı obstante, la utilizaci´ n de un retardo en un flujo de la trayectoria cerrada reduce la inestao bilidad con el rompimiento de los lazos algebraicos [9]. Sobre VHDL el retardo se realiza con un registro, siendo necesario la utilizaci´ n de una se˜ al de reloj. En la Fig. 4.6 se o n observa una red inestable con dos trayectorias cerradas con un flujo en com´ n, sobre este u flujo se debe colocar el retardo.
30
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
Figura 4.6: Estructura del BBNN con retardo.
4.2.3
Funci´ n de Activaci´ n o o
Por otro lado, con la funci´ n de activaci´ n lineal, sim´ trica y saturada, el clasificador preo o e sentaba transiciones muy fuertes en los cambios de clase, debida a su parte de saturaci´ n o (Fig. 3.3), en la funci´ n de activaci´ n. Por esta raz´ n, se implement´ una funci´ n de aco o o o o tivaci´ n con la operaci´ n m´ dulo de 2*n bits, y la pendiente de la secci´ n lineal se regula o o o o con una funci´ n de corrimiento [24] (Fig. 4.7). El n´ mero de bits del corrimiento se eso u tableci´ con varias pruebas en el entrenamiento, dando como resultado una dependencia o muy directa con el n´ mero de bits utilizados en la codificaci´ n de los pesos. Es decir, si los u o pesos son de 8 bits, los bits de corrimiento son 8, dando una pendiente 1/256.
g (net) =
mod (net, 2 ∗ nbits ) 2nbits
(4.3)
Teniendo en cuenta el tipo de funci´ n de activaci´ n, se puede simplificar la sintetizaci´ n o o o de la estructura en la FPGA, si el n´ mero de bits utilizados en la funci´ n de corrimiento u o es par. Se procede intercambiando el orden de la operaci´ n m´ dulo con la operaci´ n de o o o 31
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
Figura 4.7: Funci´ n Activaci´ n Tipo M´ dulo. o o o
corrimiento, de esta forma se aplica la operaci´ n de corrimiento a la entrada del bloque, o utilizando as´ la mitad de los bits requeridos. A la salida se usa la operaci´ n de m´ dulo. ı o o
Para el caso de un bloque con dos entradas y una salida, se puede observar el procedimiento en las ecuaciones 4.4, 4.5, 4.6 y 4.7 .
net = x0 ω0 + x1 ω1 + ω2
(4.4)
net x0 ω0 + x1 ω1 + ω2 = 2nbits 2nbits
(4.5)
net x0 ω0 x1 ω1 ω2 = n + n + n nbits bits bits 2 2 2 2 bits
(4.6)
x1 ω1 ω2 net x0 ω0 = nbits nbits + nbits nbits + nbits nbits 2 2 2 2 2 2 2 2 2 2 2 estabilidad, que presentan las trayectorias cerradas.
(4.7)
Adem´ s, este tipo de funci´ n de activaci´ n, mejora considerablemente los problemas de a o o
No obstante, se sugiere el uso de un registro en la salida de cada red, para evitar la presencia de los estados transitorios producto de la estructura (Fig. 4.8). 32
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
Figura 4.8: Se˜ al: Reloj (CLK), Salida con Registro (sr) y Salida sin Registro (sq). n
4.2.4
Funci´ n Mayor o
Para la funci´ n mayor, presente en la salida de cada clasificador, se propusieron dos formas o de implementaci´ n; la secuencial y la paralela. Siendo la paralela la que ofrece mejores o resultados en los tiempos de propagaci´ n (Tabla 4.1). o Secuencial Tiempos (ns) 65.7 Paralela 24.6
Tabla 4.1: Tiempos de propagaci´ n de la Funci´ n Mayor. o o Por otra parte, en la implementaci´ n sobre VHDL, la asignaci´ n de bits y espacio en memoo o ria debe ser muy riguroso para la sintetizaci´ n sobre la FPGA, por esta raz´ n los valores o o iniciales de los bloque laterales se hace igual cero. De esta forma los pesos entre esas entradas y sus respectivas salidas son redundantes y pueden ser ahorrados a la hora de realizar la implementaci´ n. o
Ya sintetizado, los datos de la caracterizaci´ n se enviaron desde el puerto paralelo del como putador hacia la FPGA, a trav´ s de un sistema de transmisi´ n de datos (Ap´ ndice A). e o e
En la Fig. 4.9(a) se observa la implementaci´ n de la subred de la Etapa 1 del Clasificador2o BBNN (Ver ap´ ndice C). Esta subred presenta dos ciclos cerrados (c´an y rojo). Estos dos e ı ciclos se encuentran unidos en dos flujos. Por esta raz´ n, solo se utiliz´ un registro en la o o sintetizaci´ n sobre VHDL (Fig. 4.9(b)). Adem´ s, a la hora de la sintetizaci´ n 14 pesos no o a o fueron implementados por ser redundantes (- - - -). 33
Cap´tulo 4. Implementaci´ n del Sistema de Clasificaci´ n ı o o
(a)
(b)
Figura 4.9: Clasificador2-Etapa1: (a) Bloques BBNN, (b) Implementaci´ n VHDL. o 34
Cap´tulo 5 ı
Resultados
5.1 Implementaci´ n o
Los resultados presentados sobre C++ de la estructura BBNN son iguales que los resultados obtenidos en la simulaci´ n sobre VHDL, a diferencia de sus tiempos de ejecuci´ n (Tabla o o 5.1). Clasificador1 MLP (µs) BBNN (µs) BBNN (ns) 156.25 932.75 598.72 Clasificador2 65.41 644.5 215.36 Plataforma Athlon 1.67 GHz Athlon 1.67 GHz FPGA 25.175 MHz
Tabla 5.1: Tiempo de ejecuci´ n. o En la Tabla 5.1 se muestran los tiempos de ejecuci´ n de cada estructura implementada. o Sobre C++, la topolog´a MLP presenta menores tiempos de ejecuci´ n que la topolog´a ı o ı BBNN, esto se debe a los lazos de realimentaci´ n presentados en la topolog´a BBNN. Al o ı comparar la plataforma utilizada los tiempos de ejecuci´ n son mucho menores en la FPGA. o
Por lo anterior, el tiempo de entrenamiento de la redes implementadas, presenta una gran diferencia entre la metodolog´a utilizada en la estructura aplicada (Tabla 5.2). En estos ı tiempos se ve reflejado el proceso de evaluaci´ n que requiere cada entrenamiento y el o n´ mero de veces a evaluar en cada iteraci´ n. u o
35
Cap´tulo 5. Resultados ı Clasificador1 MLP (s/epoca) BBNN (s/generaci´ n) o 23.20 81.75 Clasificador2 0.582 244.44 Plataforma Athlon 1.67 GHz Athlon 1.67 GHz
Tabla 5.2: Tiempo de entrenamiento.
Otro aspecto a resaltar es el n´ mero de bytes utilizados por cada red. La cantidad de bytes u la determina el n´ mero de pesos (Tabla 5.3) utilizados por la red y el tama˜ o de cada peso. u n Para las redes implementadas en C++ (MLP) los pesos son de tipo flotante de 8 bytes, mientras para las redes implementadas en VHDL (BBNN) son de tipo entero y tienen una longitud de 7 bits para el Clasificador1 y de un byte para el Clasificador 2. Clasificador1 MLP BBNN 608 114 Clasificador2 228 432
Tabla 5.3: N´ mero de pesos utilizados por cada red. u En la Tabla 5.4 se observa la poca cantidad en memoria utilizada por la topolog´a BBNN, ı a comparaci´ n de la topolog´a MLP. o ı Clasificador1 MLP BBNN 38912 912 Clasificador2 14592 3024
Tabla 5.4: N´ mero de bits utilizados por cada red. u Por otro lado, las operaciones necesitan una gran cantidad de compuertas en la FPGA, a diferencia de los procesos utilizados en los procesadores secuenciales.
5.2
Evaluaci´ n de Resultados o
La evaluaci´ n de resultados se realiza a partir de la matriz de confusi´ n [2], tambi´ n llao o e mada matriz de contingencia, la cual es una herramienta muy utilizada para la presentaci´ n o 36
Cap´tulo 5. Resultados ı
y el an´ lisis del resultado de una clasificaci´ n. Es una matriz cuadrada de orden n igual al a o n´ mero de clases. En las filas se representan las clases reales mientras que en las columnas u se representan las clases asignadas por el clasificador. Para un clasificador entre dos clases la matriz de confusi´ n ser´ : o a
Clase1 (Obtenida) Clase1 (Real) Clase2 (Real) Verdaderos Clase1 Falsos Clase1
Clase2 (Obtenida) Falsos Clase2 Verdaderos Clase2
Tabla 5.5: Matriz de Confusi´ n. o
5.2.1
˜ M´ tricas de Desempeno e
Para realizar un mejor an´ lisis del clasificador se cambia la notaci´ n de la matriz de cona o fusi´ n (Tabla 5.6) y se determinan las m´ tricas de desempe˜ o [18]. La transformaci´ n o e n o se realiza as´: Los valores que son clasificados correctamente toman la notaci´ n de verı o daderos y los clasificados incorrectamente toman la notaci´ n de falsos; adem´ s, si los vao a lores pertenecen a la clase a analizar son positivos y si pertenecen a las otras clases son negativos. Finalmente se obtiene la Tabla 5.6.
Positivo Verdadero Falso Verdadero Positivo (VP) Falso Positivo (FP)
Negativo Falso Negativo (FN) Verdadero Negativo (VN) Falso Verdadero
Tabla 5.6: Matriz de Confusi´ n. o ´ Las m´ tricas de desempe˜ o toman valores de 0-1 o de 0%-100%. Para la efectividad, la e n especifidad y la precisi´ n el valor ideal es del 100%, y para las m´ tricas, error positivo y o e error negativo el valor ideal es del 0%.
37
Cap´tulo 5. Resultados ı
Efectividad (PVP):
Proporci´ n de verdaderos positivos o
VP (V P + F N ) FN (V P + F N ) VN (V N + F P ) FP (V N + F P ) VP (V P + F P )
Error Positivo (PFN):
Proporci´ n de falsos negativos o
Especificidad (PVN):
Proporci´ n de verdaderos negativos o
Error Negativo (PFP):
Proporci´ n de falsos positivos o
Precisi´ n (VPP): o
Valor predictivo positivo
En este cap´tulo se observa las matrices de confusi´ n y las m´ tricas de desempe˜ o de los ı o e n clasificadores que presentaron mayor efectividad para cada topolog´a (Ver ap´ ndice B). ı e
Para la topolog´a MLP, el clasificador que present´ mayor efectividad fue el clasificador imı o plementado con 8 sub-redes de una salida, ensambladas con una funci´ n mayor (Clasificador2o MLP).
Etapa 1 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 80.00% 3.67% 0.00% 0.00% 0.00% 0.00% 2.33% 4.00%
Etapa 2 10.00% 76.33% 5.67% 0.00% 2.67% 0.00% 8.00% 0.67%
Etapa 3 0.00% 7.67% 81.33% 3.67% 3.00% 5.00% 0.00% 0.33%
Etapa 4 0.00% 0.00% 5.00% 89.33% 18.00% 4.00% 1.00% 0.00%
Etapa 5 0.00% 0.33% 0.67% 6.67% 64.00% 11.33% 1.00% 1.00%
Etapa 6 0.00% 1.67% 4.33% 0.33% 11.33% 79.33% 0.00% 0.00%
Etapa 7 2.00% 5.67% 3.00% 0.00% 1.00% 0.33% 84.33% 2.67%
Etapa 8 8.00% 4.67% 0.00% 0.00% 0.33% 0.00% 3.00% 91.33%
Tabla 5.7: Clasificador2-MLP SubRedes Ensambladas: Matriz de Confusi´ n. o 38
Cap´tulo 5. Resultados ı
En la Tabla 5.7 se muestra la matriz de confusi´ n del Clasificador2-MLP. En todas las etao pas de clasificaci´ n se observa un traslape entre las etapas adyacentes, siendo mucho m´ s o a significativa entre las etapas intermedias, Etapa 5. Adem´ s un mejor desempe˜ o de las a n etapas inicial y final, Etapas 1 y 8.
Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 80.00 20.00 98.57 1.43 88.89
Etapa 2 76.33 23.67 96.14 3.86 73.87
Etapa 3 81.33 18.66 97.19 2.81 80.52
Etapa 4 89.33 10.67 96.00 4.00 76.13
Etapa 5 63.78 36.21 96.99 3.01 76.13
Etapa 6 79.33 20.67 97.47 2.53 81.79
Etapa 7 84.61 15.38 97.91 2.09 85.78
Etapa 8 91.33 8.67 98.27 1.73 86.09
Tabla 5.8: Clasificador2-MLP SubRedes Ensambladas : Medidas de desempe˜ o. n En la Tabla 5.8 se muestran las m´ tricas de desempe˜ o del Clasificador2-MLP para todas e n la etapas. Se observa la tendencia presente en la matriz de confusi´ n donde, la Etapa 8 preo senta la mayor efectividad, la Etapa 1 presenta la mayor especificidad y precisi´ n seguida o de la Etapa 8. Adem´ s, la Etapa 5 y 4 (etapas intermedias) presenta el mayor error positivo a y error negativo respectivamente.
Para la topolog´a BBNN, el clasificador que present´ mayor efectividad fue el clasifiı o cador implementado con una sola red de 8 salidas, ensambladas con una funci´ n mayor o (Clasificador1-BBNN).
En la Tabla 5.9 y 5.10 se muestra la matriz de confusi´ n y las m´ tricas de desempe˜ o o e n respectivamente del Clasificador1-BBNN. Este clasificador presenta una clasificaci´ n nula o de la Etapa 4, presentando la misma tendencia de traslape entre las etapa adyacentes, dando como resultado una medida de precisi´ n media. Sin embrago, presenta una alta efectividad o y especificidad promedio.
39
Cap´tulo 5. Resultados ı Etapa 1 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 98.33% 36.0% 1.0% 5.67% 0.0% 0.0% 0.0% 0.0% Etapa 2 0.33% 42.33% 5.67% 7.0% 5.0% 0.0% 0.0% 0.0% Etapa 3 1.0% 19.33% 93.33% 73.0% 3.33% 0.0% 0.0% 0.0% Etapa 4 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% Etapa 5 0.33% 2.0% 0.0% 14.0% 61.67% 3.0% 0.33% 0.0% Etapa 6 0.0% 0.0% 0.0% 0.33% 29.67% 87.0% 8.00% 0.33% Etapa 7 0.0% 0.0% 0.0% 0.33% 0.33% 10.0% 78.33% 18.0% Etapa 8 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 13.33% 81.67%
Tabla 5.9: Clasificador1 BBNN: Matriz de Confusi´ n. o Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 98.33 1.67 93.90 6.01 69.74 Etapa 2 42.48 57.52 97.43 2.57 70.17 Etapa 3 93.33 6.66 86.19 13.81 49.12 Etapa 4 0 100 100 0 100 Etapa 5 61.67 38.33 97.19 2.81 75.82 Etapa 6 87.00 13.00 94.53 5.47 69.41 Etapa 7 78.33 21.67 95.90 4.09 73.20 Etapa 8 81.67 18.33 98.10 1.90 85.96
Tabla 5.10: Clasificador1-BBNN: Medidas de desempe˜ o. n
Al observar que los resultados con la topolog´a BBNN no fueron los esperados, se procede ı a fusionar la Etapa 1 y 2 en una sola etapa y la Etapa 3 y 4 de igual forma. Obteniendo por esta raz´ n un clasificador en 6 etapas de maduraci´ n con la misma estructura ya impleo o mentada.
En la Tabla 5.11 y 5.12 se muestra la matriz de confusi´ n y las metidas de desempe˜ o o n respectivamente del Clasificador1-BBNN para 6 etapas de clasificaci´ n. En todas las etao pas de clasificaci´ n se observa un traslape entre las etapas adyacentes, siendo mucho m´ s o a significativa entre las etapas intermedias, Etapa 5. Adem´ s, se observa el aumento de la a efectividad, especificidad y precisi´ n promedio. o
40
Cap´tulo 5. Resultados ı
Etapa 1 y 2 Etapa 1 y 2 Etapa 3 y 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 98.33% 12.08% 0.0% 0.0% 0.0% 0.0%
Etapa 3 y 4 1.33% 80.2% 8.33% 0.0% 0.0% 0.0%
Etapa 5 0.33% 7.5% 61.67% 3.0% 0.33% 0.0%
Etapa 6 0.0% 0.17% 29.67% 87.0% 8.00% 0.33%
Etapa 7 0.0% 0.17% 0.33% 10.0% 78.33% 18.0%
Etapa 8 0.0% 0.0% 0.0% 0.0% 13.33% 81.67%
Tabla 5.11: Clasificador1-BBNN: Matriz de Confusi´ n. o Etapa 1 y 2 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 98.33 1.67 97.58 2.42 89.06 Etapa 3 y 4 80.10 19.90 98.06 1.94 89.23 Etapa 5 61.67 38.33 97.77 2.23 84.67 Etapa 6 87.00 13.00 92.37 7.63 69.50 Etapa 7 78.33 21.67 94.30 5.70 73.22 Etapa 8 81.67 18.33 97.33 2.66 85.96
Tabla 5.12: Clasificador1-BBNN: Medidas de desempe˜ o. n En las Fig. 5.1 y Fig. 5.2 se observan los planos (RG) de clasificaci´ n del Clasificador2o MLP y Clasificador1-BBNN respectivamente para 8 etapas de clasificaci´ n. o
Finalmente, la comparaci´ n entre los resultados obtenidos en el clasificador implementao do con redes neuronales y los obtenidos por la estudiante Carolina Maya [12] se hacen de forma cualitativa y utilizando una medida de efectividad promedio, dado que las caracter´sticas ni las etapas son las mismas. ı
La Tabla5.13 es un cuadro comparativo, donde la primera columna nombra el m´ todo de e clasificaci´ n utilizado, la segunda columna el n´ mero de etapas de clasificaci´ n, la tercera o u o 41
Cap´tulo 5. Resultados ı
´ columna las caracter´sticas utilizadas y la ultima columna la efetividad promedio obteniı da de cada clasificador. Finalmente, muestra como la caracter´stica de tama˜ o, ofrece el ı n mejor desempe˜ o implementando un clasificador Bayesiano. Con respecto a los otros clasin ficadores, la topolog´a MLP y BBNN presentan un 80% aproximadamente de efectividad ı con un n´ mero mayor de etapas de clasificaci´ n. Vale destacar que el proceso de caracteru o izaci´ n presentado en este trabajo es mucho m´ s simple, que el proceso presentado por la o a estudiante Carolina Maya.
M´ todo e Bayesiano Bayesiano Isodata MLP BBNN MLP BBNN
No Etapas 4 4 4 8 8 6 6
Caracter´sticas ı Media y desviaci´ n del tono o Media del tono y tama˜ o n Media del tono y tama˜ o n R, G y B R, G y B R, G y B R, G y B
Efectividad 66.8% 94.5% 65.6% 80.8% 67.9% 82.3% 81.2%
Tabla 5.13: Cuadro Comparativo. En todos los casos el clasificador implementado con la topolog´a MLP presenta mayor ı efectividad, que el clasificador implementado en la topolog´a BBNN. ı
42
Cap´tulo 5. Resultados ı
Etapa *
[]
1 2 3 4 5 6 7 8
[]
[]
[]
[]
* *
Figura 5.1: Clasificador2-MLP: Plano de Clasificaci´ n Rojo-Verde para Azul igual a 60 o
43
Cap´tulo 5. Resultados ı
Etapa *
[]
1 2 3 4 5 6 7 8
[]
[]
[]
[]
* *
Figura 5.2: Clasificador1-BBNN: Plano de Clasificaci´ n Rojo-Verde para Azul igual a 60 o
44
Cap´tulo 6 ı
Conclusiones
Las condiciones de iluminaci´ n tienen un efecto importante en el resultado de la clasifio caci´ n. Aunque las im´ genes adquiridas no est´ n totalmente libres de brillos y sombras se o a a elimino la etapa de Preproceso (Fig. 1.2). Adem´ s, la falta de informaci´ n sobre el tama˜ o a o n del grano (Tabla 5.13)y una medida cuantitativa de la iluminaci´ n desfavorece el proceso o de clasificaci´ n. o
La discriminaci´ n entre clase fue realizada a partir de la informaci´ n ofrecida por cao o da componente de brillo del espacio RGB. La caracter´stica y el plano de caracter´sticas ı ı m´ s discriminante fue la componente Verde (G) y Rojo-Verde(R,G) respectivamente (Tabla a 1.4).
El traslape de las muestras en las caracter´sticas (Fig. 1.6) se present´ debido a que el criı o terio de clasificaci´ n era la semana de la toma de las muestras y no la etapa de maduraci´ n o o exactamente.
El clasificador con redes neuronales ofrece ventajas tales como: capacidad para aprender de los patrones, separaci´ n de clases que no son linealmente separables (Fig. 5.1 y 5.2) , o adaptabilidad, procesamiento paralelo, entre otras.
Los lenguajes de descripci´ n de hardware presentan una ventaja inherente frente a la alta o ´ integraci´ n de dispositivos y componentes en una reducida area, adem´ s de la versatilidad o a
45
Cap´tulo 6. Conclusiones ı
para la modificaci´ n, reutilizaci´ n e interconexi´ n de los dise˜ os digitales. No obstante, la o o o n falta de punto flotante es una gran debilidad en la dise˜ o de topolog´as robustas. n ı
La falta de punto flotante es una consecuencia directa de las limitaciones de espacio y memoria, presentes en el plataforma. La FLEX10K EPF10K70RC240 [7] solo cuenta con 70.000 compuertas y 2Mb de memoria RAM.
El desarrollo de un clasificador basado en redes neuronales utilizando una topolog´a dise˜ ada ı n para la implementaci´ n en arreglos l´ gicos programables (FPGA) explota al m´ ximo el o o a paralelismo de la plataforma. Por esta raz´ n, el modelo utilizado para realizar la clasifio caci´ n sobre VHDL, muestra un menor tiempo de ejecuci´ n (Tabla 5.1), con respecto a las o o plataformas seriales, sin embargo la efectividad disminuye (Tabla 5.13) considerablemente por la falta de punto flotante. La disminuci´ n del tiempo de ejecuci´ n es aproximadamente o o 3 ordenes menor en magnitud. Es de aclarar que la frecuencia del reloj de la plataforma serial es mayor en 2 ordenes de magnitud.
La t´ cnica de algoritmos gen´ ticos (Fig. 3.4), al igual que en la naturaleza, es de gran e e utilidad pues se selecciona al individuo m´ s apto, a partir de una poblaci´ n inicial. Luego a o por medio de la reproducci´ n y mutaciones se llega a la mejor soluci´ n, sin la necesidad o o de realizar grandes c´ lculos que pueden llevar demasiado tiempo. a
Los mejores resultados se presentaron con le clasificador formados con subredes de la topolog´a MLP con una efectividad promedio del 80.8% para 8 clases y con la topolog´a ı ı BBNN completa con una efectividad promedio 81.2% para 6 clases.
46
Bibliograf´a ı
[1] A LTERA , C. Documentation Library. March 2003. [2] B ON , F. J. C. Estimaci´ n del error de clasificaci´ n y verificaci´ n de resultados. o o o www-etsi2.ugr.es/depar/ccia/rf/www/tema1 (Oct 2001). [3] C ENICAFE. Beneficio Ecol´ gico del Caf´ . Cenicafe Centro Nacional de Investigao e ciones de Caf´ ., Chinchina, 1999. e [4]
DE
´ ´ C OOPERACI ON T E CNICA , S. Identificacion de mercados y tecnologia para pro-
ductos agricolas tradicionales de exportacion. [5]
DE
T EGNOLOGIA I NDUTRIAL , G. Visi´ n por Computador. Universidad Miguel o
Hern´ ndez. a [6] G UITIERREZ , J. M. Cantabria. [7] H ANDLEN , J. O.,
AND
Introducci´ n a la inteligencia aritificial. o
Universidad de
F URMAN , M. D. Rapid Prototyping of Digital Systems Tu-
torial Approach. 2003. [8] H IKAWA , H. Frecuency-based multilayer neural network on-chip learning and enhanced neuron characteristics. IEEE Transactions On Neural Networks 10, 3 (May 1999), 545–553. [9] K RISHNAN , S.,
AND
M ANOCHA , D. Algebraic Loop Detection and Evaluation Al-
gorithms. Canadian Human-Computer Communications Society, 1996.
47
´ BIBLIOGRAFIA
[10] L ERA , G., AND P INZOLAS , M. Neighborhood based levenberg–marquardt algorithm for neural network training. IEEE Transactions On Neural Networks 13, 5 (September 2002), 1200–1204. [11] M., S. F. An´ lisis discriminante. www.5campus.com/lecci´ n/discri. a o [12] M AYA , C. Desarrollo de algoritmos para la caracterizaci´ n y clasificaci´ n de granos o o de caf´ . Universidad Nacional de Colombia, Manizales, 2001. e [13] M ICHELE M ARCHESI , G IANNI O RLANDI , F. P.,
AND
U NCINI , A. Fast neural net-
works without multipliers. IEEE Transactions On Neural Networks 4, 1 (Jan 1993), 53–62. [14] M ON , S.-W.,
AND
S EONG -G ON. Block-base neural networks. IEEE Transactions
On Neural Networks 12, 2 (March 2001), 307–316. [15] M OORE , A. Cross-validation for detecting and preventing overfitting. School of Computer Science Carneigie Mellon University (2001). [16] P. V. S. P ONNAPALLI , K. C. H.,
AND
T HOMSON , M. A formal selection and prun-
ing algorithm for feedforward artificial neural network optimization. IEEE Transactions On Neural Networks 10, 3 (July 1999), 964–969. [17] PASCUAL , C. E. V., AND S ANCHOI , Q. I. M. Redes Neuronales Artificiales. Espa˜ a, n Abril 2001. [18] S ALIDO , C. F. J. H.-O. M. Volume under the roc surface for multi-class problems. exact computation and evaluation of approximations. Dep. Sistemes Inform` tics i a Computaci´ , Univ. Polit` cnica de Val` ncia (Spain) (April 2003). o e e [19] S ANDOVAL , Z.,
AND
P RIETO , F. Caracterizaci´ n y clasificaci´ n de caf´ cereza por o o e
medio de visi´ n artificial. 2003. o [20] S ARDI , J. L. D. Algoritmos gen´ ticos y optimizaci´ n en la investigaci´ n de opee o o raciones. caso: Problema de optimizaci´ n con objetivos m´ ltiples expresado como o u 48
´ BIBLIOGRAFIA
un modelo de programaci´ n no – lineal por metas. Departamento de Computaci´ n, o o Facultad de Ciencias y Tecnolog´a, Universidad de Carabobo, Valencia, Venezuela.. ı [21] T USELL , F. An´ lisis Multivariante. Noviembre 2003. a [22] VALENCIA , P. E. Optimizaci´ n mediante algoritmos gen´ ticos. Instituto de Ingeo e nieros de Chile, 83–92 (Agosto 1997). [23] VALIENTE , J. M.,
AND
A NDREU , G. Visi´ n por Computador. o
[24] WAKERLY, J. F. Digital Design. Tom Robbins, 2001. [25] W HITE , B.,
AND
E LMASRY, M. The dig-neocognitron: A digital neocognitron neu-
ral model for vlsi. IEEE Transactions On Neural Networks 3 (Jan 1992), 73–85. [26] X INGHUO Y U , M. O. E.,
AND
K AYNAK , O. A general backpropagation algorithm
for feedforward neural networks learning. IEEE Transactions On Neural Networks 13, 1 (January 2002), 251–255.
49
Ap´ ndice A e
Sistema de transmisi´ n de datos del o puerto paralelo a la tarjeta UP2
A.1 Puerto Paralelo
El puerto paralelo (Fig. A.1) tiene 12 l´neas de salida (8 l´neas de datos, strobe, autofeed, ı ı init, y select input) y 5 de entrada (acknowledge, busy, falta de papel, select y error).
Figura A.1: Puerto Paralelo ´ Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, estas direcciones pertenecen al registro de datos (BASE), el registro de estado (STATUS) y el registro de control (CONTROL). A–1
Cap´tulo A. Sistema de transmisi´ n de datos del puerto paralelo a la tarjeta UP2 ı o PIN 1 2-9 10 11 12 13 14 15 16 17 18-25 E/S Salida E/S Entrada Entrada Entrada Entrada Salida Salida Entrada Entrada Polaridad Activa 0 0 0 1 1 0 0 0 0 Descripci´ n o Strobe L´neas de Datos ı L´nea acknowledge ı L´nea busy ı L´nea Falta de papel ı L´nea Select ı L´nea Autofeed ı L´nea Error ı L´nea Init ı L´nea Select input ı Tierra El´ ctrica e
Tabla A.1: Configuraci´ n del Puerto Paralelo Estandar o Bit 7 6 5 4 3 2 1 0 BASE Dato 7 Dato 6 Dato 5 Dato 4 Dato 3 Dato 2 Dato 1 Dato 0 STATUS Busy Acknowledge Falta de papel Select In Error IRQ (Not) Reservado Reservado CONTROL No usado No usado Flag bidireccional IRQ a trav´ s acknowledge e Selecciona impresora Inicializa impresora Nueva l´nea autom´ tica ı a Strobe
Tabla A.2: Registros del Puerto Paralelo
A.2
Comunicaci´ n o
La secuencia de transmisi´ n se coordina por medio de un pin de enable y dos pines de o selecci´ n, los cuales indican que componente de color se est´ enviando por los pines de o a datos (Tabla A.3)). A–2
Cap´tulo A. Sistema de transmisi´ n de datos del puerto paralelo a la tarjeta UP2 ı o Enable Sel 0 Sel 1 Dato 0 Dato 1 Dato2 Dato 3 Dato 4 Dato 5 Dato 6 Dato 7
Tabla A.3: Trama de Datos Sobre la FPGA se sintetiz´ un registro (Fig. A.2)), el cual recibe los datos provenientes o del puerto paralelo. Este registro cuneta con tres buffers internos con dependencia directa a cada salida.
Figura A.2: Receptor de Datos
Entradas: 11 Bits • ENT : Dato de 8 bits. • SEL : Dato de 2 bits. Selecciona a que buffer interno se le asigna la entrada y habilita el paso de los buffers a salida. • Enable : Habilita o deshabilita todas la asignaciones • CLK : Sincroniza la se˜ ales con el reloj de la tarjeta. n 24 Bits Salidas : R, G y B.
A.2.1
Modo de Operaci´ n o
El modo de operaci´ n radica en los bits de enable y CLK. Mientras el bit de enable se o encuentre activado y la se˜ al de CLK presente un flanco de subida, el registro de entrada n funciona seg´ n el proceso descrito en la Tabla A.4 dependiendo de la entrada SEL. u El proceso descrito se puede observar en la Fig. A.3 A–3
Cap´tulo A. Sistema de transmisi´ n de datos del puerto paralelo a la tarjeta UP2 ı o
SEL 0 1 2 3
Proceso La entrada se asigna al buffer correspondiente a la componente R La entrada se asigna al buffer correspondiente a la componente G La entrada se asigna al buffer correspondiente a la componente B Cada buffer se asigna a su salida respectiva. Tabla A.4: Modo de Operaci´ n o
Figura A.3: Receptor de Datos
A–4
Ap´ ndice B e
Matrices de Confusi´ n y M´ tricas de o e ˜ Desempeno
En la Tablas se puede observar las matices de confusi´ n y las m´ tricas de desempe˜ o de o e n los clasificadores implementados donde: A: Clasificador1, topolog´a MLP. 8 Etapas. ı B: Clasificador1, topolog´a BBNN. 8 Etapas. ı C: Arreglo de 8 redes, topolog´a MLP, utilizando la funci´ n signo a la salida de cada red. ı o D: Arreglo de 8 redes, topolog´a BBNN, utilizando la funci´ n signo a la salida de cada ı o red. E: Clasificador2, topolog´a MLP, sub redes ensambladas con la funci´ n mayor. 8 Etapas. ı o F: Clasificador2, topolog´a MLP, sub redes ensambladas con la funci´ n mayor. 8 Etapas. ı o G: Clasificador1, topolog´a BBNN. 6 Etapas. ı Los arreglos C y D solo son puntos referencia para analizar cada red independientemente, las cuales conforman el clasificador. Por lo tanto, el clasificador como tal es el E y F respectivamente para cada topolog´a. ı
B–1
Cap´tulo B. Matrices de Confusi´ n y M´ tricas de Desempe˜ o ı o e n
Etapa 1 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 77.66% 7.00% 0.00% 0.00% 1.00% 0.00% 2.66% 3.33%
Etapa 2 18.33% 75.00% 4.33% 0.00% 1.66% 1.00% 5.66% 1.00%
Etapa 3 0.00% 12.66% 84.00% 4.33% 0.33% 2.00% 0.00% 0.00%
Etapa 4 0.00% 0.33% 9.66% 86.00% 13.33% 1.33% 2.33% 0.33%
Etapa 5 0.00% 0.00% 0.00% 9.33% 60.33% 18.33% 0.00% 0.00%
Etapa 6 0.00% 1.33% 2.00% 0.00% 14.33% 66.00% 0.00% 0.00%
Etapa 7 3.33% 2.66% 0.33% 0.00% 6.66% 11.00% 78.33% 4.33%
Etapa 8 0.66% 1.00% 0.00% 0.00% 2.66% 0.00% 11.00% 91.00%
Tabla B.1: A: Matriz de Confusi´ n o
Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 77.67 22.33 98.00 2.00 84.72
Etapa 2 75.00 25.00 95.43 4.57 70.09
Etapa 3 83.72 16.28 97.23 2.76 81.29
Etapa 4 86.28 13.71 96.09 3.90 75.88
Etapa 5 60.14 39.86 96.04 3.95 68.56
Etapa 6 66.22 33.78 97.47 2.53 78.88
Etapa 7 78.33 21.67 95.95 4.05 73.44
Etapa 8 91.00 9.00 97.81 2.19 85.58
Tabla B.2: A: Medidas de desempe˜ o n
B–2
Cap´tulo B. Matrices de Confusi´ n y M´ tricas de Desempe˜ o ı o e n
Etapa 1 Etapa 1 Otras Etapas 81.67% 18.33%
Otras Etapas 1.04% 98.96% Etapa 2 Otras Etapas
Etapa 2 82.00% 18.00%
Otras Etapas 3.04% 96.96%
Etapa 3 Etapa 3 Otras Etapas 85.67% 14.33%
Otras Etapas 1.90% 98.10% Etapa 4 Otras Etapas
Etapa 4 90.33% 9.67%
Otras Etapas 1.86% 98.14%
Etapa 5 Etapa 5 Otras Etapas 67.33% 33.67%
Otras Etapas 3.33% 96.67% Etapa 6 Otras Etapas
Etapa 6 86.00% 14.00%
Otras Etapas 2.05% 97.95%
Etapa 7 Etapa 7 Otras Etapas 84.67% 15.33%
Otras Etapas 1.38% 98.62% Etapa 8 Otras Etapas
Etapa 8 94.33% 5.67%
Otras Etapas 0.53% 99.47%
Tabla B.3: C: Matrices de Confusi´ n. o
Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 91.76 8.24 97.42 2.58 81.67
Etapa 2 79.35 20.65 97.41 2.59 82.00
Etapa 3 86.53 13.47 97.96 2.04 85.67
Etapa 4 87.41 12.58 98.61 1.38 90.33
Etapa 5 74.26 25.74 95.35 4.65 67.10
Etapa 6 85.72 14.28 98.00 2.00 86.00
Etapa 7 89.43 10.56 97.87 2.13 84.95
Etapa 8 96.26 3.74 99.19 0.28 94.33
Tabla B.4: C: Medidas de desempe˜ o. n
B–3
Cap´tulo B. Matrices de Confusi´ n y M´ tricas de Desempe˜ o ı o e n
Etapa 1 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 80.00% 3.67% 0.00% 0.00% 0.00% 0.00% 2.33% 4.00%
Etapa 2 10.00% 76.33% 5.67% 0.00% 2.67% 0.00% 8.00% 0.67%
Etapa 3 0.00% 7.67% 81.33% 3.67% 3.00% 5.00% 0.00% 0.33%
Etapa 4 0.00% 0.00% 5.00% 89.33% 18.00% 4.00% 1.00% 0.00%
Etapa 5 0.00% 0.33% 0.67% 6.67% 64.00% 11.33% 1.00% 1.00%
Etapa 6 0.00% 1.67% 4.33% 0.33% 11.33% 79.33% 0.00% 0.00%
Etapa 7 2.00% 5.67% 3.00% 0.00% 1.00% 0.33% 84.33% 2.67%
Etapa 8 8.00% 4.67% 0.00% 0.00% 0.33% 0.00% 3.00% 91.33%
Tabla B.5: E: Matriz de Confusi´ n. o Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 80.00 20.00 98.57 1.43 88.89 Etapa 2 76.33 23.67 96.14 3.86 73.87 Etapa 3 81.33 18.66 97.19 2.81 80.52 Etapa 4 89.33 10.67 96.00 4.00 76.13 Etapa 5 63.78 36.21 96.99 3.01 76.13 Etapa 6 79.33 20.67 97.47 2.53 81.79 Etapa 7 84.61 15.38 97.91 2.09 85.78 Etapa 8 91.33 8.67 98.27 2.73 85.09
Tabla B.6: E: Medidas de desempe˜ o. n Etapa 1 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 98.33% 36.0% 1.0% 5.67% 0.0% 0.0% 0.0% 0.0% Etapa 2 0.33% 42.33% 5.67% 7.0% 5.0% 0.0% 0.0% 0.0% Etapa 3 1.0% 19.33% 93.33% 73.0% 3.33% 0.0% 0.0% 0.0% Etapa 4 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% Etapa 5 0.33% 2.0% 0.0% 14.0% 61.67% 3.0% 0.33% 0.0% Etapa 6 0.0% 0.0% 0.0% 0.33% 29.67% 87.0% 8.00% 0.33% Etapa 7 0.0% 0.0% 0.0% 0.33% 0.33% 10.0% 78.33% 18.0% Etapa 8 0.0% 0.0% 0.0% 0.0% 0.0% 0.3% 13.33% 81.67%
Tabla B.7: B: Matriz de Confusi´ n. o B–4
Cap´tulo B. Matrices de Confusi´ n y M´ tricas de Desempe˜ o ı o e n
Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 98.33 1.67 93.90 6.01 69.74
Etapa 2 42.48 57.52 97.43 2.57 70.17
Etapa 3 93.33 6.66 86.19 13.81 49.12
Etapa 4 0 100 100 0 100
Etapa 5 61.67 38.33 97.19 2.81 75.82
Etapa 6 87.00 13.00 94.53 5.47 69.41
Etapa 7 78.33 21.67 95.90 4.09 73.20
Etapa 8 81.67 20.66 98.10 1.90 85.96
Tabla B.8: B: Medidas de desempe˜ o. n
Etapa 1 Etapa 1 Otras Etapas 94.00% 6.00%
Otras Etapas 1.52% 98.48% Etapa 2 Otras Etapas
Etapa 2 20.67% 79.33%
Otras Etapas 0.19% 99.81%
Etapa 3 Etapa 3 Otras Etapas 38.67% 61.33%
Otras Etapas 4.00% 96.00% Etapa 4 Otras Etapas
Etapa 4 38.00% 62.00%
Otras Etapas 3.61% 96.39%
Etapa 5 Etapa 5 Otras Etapas 69.33% 30.67%
Otras Etapas 4.19% 95.89% Etapa 6 Otras Etapas
Etapa 6 87.00% 13.00%
Otras Etapas 3.71% 96.29%
Etapa 7 Etapa 7 Otras Etapas 100.0% 0.0%
Otras Etapas 100.0% 0.0% Etapa 8 Otras Etapas
Etapa 8 80.67% 19.33%
Otras Etapas 2.38% 97.62%
Tabla B.9: D: Matrices de Confusi´ n. o
B–5
Cap´tulo B. Matrices de Confusi´ n y M´ tricas de Desempe˜ o ı o e n
Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 94.63 5.37 98.29 1.71 94.00
Etapa 2 96.88 3.12 81.49 18.51 20.67
Etapa 3 73.42 26.58 84.56 15.44 38.67
Etapa 4 75.00 25.00 84.47 15.53 38.00
Etapa 5 82.54 17.46 91.62 8.38 69.33
Etapa 6 22.22 77.78 0 100 100.0
Etapa 7 89.43 10.56 97.87 2.13 84.95
Etapa 8 90.64 9.36 94.64 5.36 80.67
Tabla B.10: D: Medidas de desempe˜ o. n
Etapa 1 Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 98.67% 77.33% 54.00% 56.67% 35.67% 10.67% 88.00% 24.00%
Etapa 2 0.00% 20.33% 0.00% 1.67% 13.67% 2.00% 0.33% 0.67%
Etapa 3 0.00% 0.00% 38.67% 9.67% 0.00% 0.00% 0.00% 0.00%
Etapa 4 1.33% 0.00% 7.33% 32.00% 4.00% 0.00% 0.00% 0.00%
Etapa 5 0.00% 2.00% 0.00% 0.33% 35.00% 10.33% 0.00% 0.00%
Etapa 6 0.00% 0.00% 0.00% 0.00% 11.67% 77.00% 7.67% 0.00%
Etapa 7 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00%
Etapa 8 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 4.00% 75.00%
Tabla B.11: F: Matriz de Confusi´ n. o
Etapa 1 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 98.67 1.33 50.47 49.53 22.15
Etapa 2 20.40 79.60 97.38 2.61 52.58
Etapa 3 38.67 61.33 98.61 1.38 80.00
Etapa 4 31.89 68.11 97.90 2.10 68.57
Etapa 5 35.00 65.00 98.48 1.52 76.64
Etapa 6 77.00 23.00 97.23 2.76 79.93
Etapa 7 0.00 100.0 100.0 0.00 0.00
Etapa 8 75.00 25.00 99.43 0.57 94.94
Tabla B.12: F: Medidas de desempe˜ o. n
B–6
Cap´tulo B. Matrices de Confusi´ n y M´ tricas de Desempe˜ o ı o e n
Etapa 1 y 2 Etapa 1 y 2 Etapa 3 y 4 Etapa 5 Etapa 6 Etapa 7 Etapa 8 98.33% 12.08% 0.0% 0.0% 0.0% 0.0%
Etapa 3 y 4 1.33% 80.2% 8.33% 0.0% 0.0% 0.0%
Etapa 5 0.33% 7.5% 61.67% 3.0% 0.33% 0.0%
Etapa 6 0.0% 0.17% 29.67% 87.0% 8.00% 0.33%
Etapa 7 0.0% 0.17% 0.33% 10.0% 78.33% 18.0%
Etapa 8 0.0% 0.0% 0.0% 0.0% 13.33% 81.67%
Tabla B.13: G: Matriz de Confusi´ n. o
Etapa 1 y 2 PVP (%) PFN (%) PVN (%) PFP (%) VPP (%) 98.33 1.67 97.58 2.42 89.06
Etapa 3 y 4 80.10 19.90 98.06 1.94 89.23
Etapa 5 61.67 38.33 97.77 2.23 84.67
Etapa 6 87.00 13.00 92.37 7.63 69.50
Etapa 7 78.33 21.67 94.30 5.70 73.22
Etapa 8 81.67 18.33 97.33 2.66 85.96
Tabla B.14: G: Medidas de desempe˜ o. n
Promedio Efectividad (%) Error Positivo (%) Especifidad (%) Error Negativo (%) Precisi´ n (%) o
A 77.29 22.71 96.75 3.25 77.30
B 66.05 33.95 95.15 4.85 77.40
C 86.34 13.66 97.73 2.27 84.00
D 86.07 13.93 91.62 8.37 53.28
E 80.76 19.24 97.25 2.75 81.03
F 47.08 82.92 92.48 7.52 69.38
G 81.18 18.02 96.23 3.765 81.94
Tabla B.15: M´ tricas de desempe˜ o promedio e n
B–7
Ap´ ndice C e
Conjunto de Redes Implementadas en VHDL
⇐
----
Retardo Pesos Redundantes
Figura C.1: Clasificador2-BBNN-Etapa1
C–1
Cap´tulo C. Conjunto de Redes Implementadas en VHDL ı
Figura C.2: Clasificador2-BBNN-Etapa2
Figura C.3: Clasificador2-BBNN-Etapa3
C–2
Cap´tulo C. Conjunto de Redes Implementadas en VHDL ı
Figura C.4: Clasificador2-BBNN-Etapa4
Figura C.5: Clasificador2-BBNN-Etapa5
C–3
Cap´tulo C. Conjunto de Redes Implementadas en VHDL ı
Figura C.6: Clasificador2-BBNN-Etapa6
Figura C.7: Clasificador2-BBNN-Etapa8
C–4
Cap´tulo C. Conjunto de Redes Implementadas en VHDL ı
Figura C.8: Clasificador1-BBNN C–5