Anda di halaman 1dari 391

UNIVERSIDAD TECNOLOGICA EQUINOCCIAL FACULTAD DE INGENIERA ESCUELA DE INFORMTICA Y CIENCIAS DE LA COMPUTACIN

TESIS DE GRADO PREVIA LA OBTENCIN DEL TTULO DE INGENIERIA EN INFORMTICA Y CIENCIAS DE LA COMPUTACIN

APLICACIN DE REDES NEURONALES ARTIFICIALES EN EL RECONOCIMIENTO DE HUELLAS DACTILARES


ELABORADO POR: JUAN PABLO PONCE VSQUEZ

DIRECTOR DE TESIS Ing. Renato Erazo

QUITO ECUADOR

Marzo 2007

Yo, Juan Pablo Ponce Vsquez, soy el responsable de la elaboracin e investigacin de esta tesis, para la cual he utilizado procedimientos tcnicos, debidamente autorizados.

En tal virtud declaro que el contenido, las conclusiones y los efectos legales y acadmicos que se desprenden del trabajo propuesto son de exclusiva responsabilidad del autor.

Juan Pablo Ponce Vsquez C.C.: 171068539-5

XXXXXXXX

DEDICATORIA

A mi esposa, Mara Beln, por ser una fuente interminable de dulzura, comprensin y amor. A mis hijos, Ismael y Ariana, que con una sonrisa, un abrazo o un beso hacen que todo est bien. Especialmente a mis padres, por su paciencia inagotable.

XXXX

AGRADECIMIENTO

Expreso mi profundo agradecimiento a quienes hicieron posible llegar a terminar la presente tesis:

Al Departamento Acadmico del IDIC. A mi director de tesis. A mis profesores.

Juan Pablo Ponce Vsquez

TABLA DE CONTENIDOS

CAPTULO I: PROPUESTA
1.1. TTULO 1.2. OBJETIVOS
1.2.1. Objetivo General 1.2.2. Objetivos Especficos

13
13 13
13 13

1.3. ALCANCE
1.3.1. Control de acceso 1.3.1.1. Adquisicin de huellas digitales 1.3.1.2. Bsqueda y comparacin a travs de la Red Neuronal Artificial 1.3.1.3. Simulacin de la Activacin de una puerta. 1.3.2. Administracin de la aplicacin 1.3.2.1. Administracin de usuarios 1.3.2.2. Administracin de la Red Neuronal Artificial 1.3.2.3. Reporte de acceso del recurso humano

14
14 15 15 16 16 16 16 17

1.4. JUSTIFICACIN
1.4.1. Conveniencia 1.4.2. Impacto Social 1.4.3. Impacto Terico 1.4.4. Impacto Metodolgico 1.4.5. Implicancia Prctica 1.4.6. Viabilidad 1.4.6.1. Viabilidad Econmica 1.4.6.2. Viabilidad Tecnolgica

17
17 18 19 19 20 20 20 21

CAPTULO II: MARCO TERICO


2.1. SISTEMAS BIOMTRICOS
2.1.1. SISTEMAS BIOMTRICOS 2.1.2. COMPARACIN DE DISTINTOS IDENTIFICADORES BIOMTRICOS

22
22
25 32

2.2. HUELLAS DACTILARES

40

2.2.1. HISTORIA 40 2.2.2. FORMACIN DE LAS HUELLAS DACTILARES 43 2.2.3. INDIVIDUALIDAD DE LAS HUELLAS DACTILARES 44 2.2.4. DETECCIN Y ALMACENAJE DE LA HUELLA DACTILAR 46 2.2.5. REPRESENTACIN DE LA HUELLA DIGITAL Y EXTRACCIN DE SUS CARACTERSTICAS 49 2.2.6. EMPAREJAMIENTO DE LA HUELLA DACTILAR 52 2.2.7. CLASIFICACIN E INDEXAMIENTO DE HUELLAS DACTILARES 55 2.2.8. EL DISEO DE SISTEMAS DE RECONOCIMIENTO DE HUELLAS DACTILARES 56 2.2.9. ASEGURAR UN SISTEMA DE RECONOCIMIENTO DE HUELLAS DACTILARES 60 2.2.10. APLICACIONES DE LOS SISTEMAS DE RECONOCIMIENTO DE HUELLAS DACTILARES 62

2.3. RECONOCIMIENTO DE PATRONES


2.3.1. LOS PROBLEMAS DEL RECONOCIMIENTO DE PATRONES

65
66

2.3.1.1. Reconocimiento vs. Clasificacin 2.3.1.2. El proceso de Reconocimiento 2.3.2. UN ACERCAMIENTO AL RECONOCIMIENTO Y A LA CLASIFICACIN 2.3.2.1. Una clasificacin de metodologas 2.3.2.2. Reconocimiento y clasificacin de patrones automtico 2.3.3. LAS CARACTERSTICAS Y SUS DISTRIBUCIONES 2.3.3.1. Caractersticas como atributos no redundantes 2.3.3.2. Distribuciones probabilsticas de caractersticas 2.3.4. SEPARACIN DE OBJETOS EN EL ESPACIO DE CARACTERSTICAS 2.3.5. ENTRENAMIENTO Y MODOS DE OPERACIN 2.3.5.1. Modos 2.3.5.2. Entrenamiento supervisado y aprendizaje auto-organizativo 2.3.5.3. Algoritmo de alto nivel para el aprendizaje y entrenamiento 2.3.5.4. Algoritmo de alto nivel para aprendizaje auto-organizativo (una pasada) 2.3.6. EL CONCEPTO DE CLUSTERING COMO EL APRENDIZAJE DE CLASES 2.3.6.1. Clusters 2.3.6.2. Algoritmo generalizado de Clustering de Fu 2.3.7. SEPARACIN LINEAL CLSICA 2.3.7.1. Ejemplo 1 2.3.7.2. Ejemplo 2 2.3.8. SIMILITUD EN UN ESPACIO DE CARACTERSTICAS 2.3.8.1. Medidas de semejanza 2.3.8.2. Convexidad y separacin de clsteres 2.3.8.2.1. Proposicin 1: 2.3.8.2.2. Prueba: 2.3.9. LOS PRINCIPIOS PARA CLUSTERING 2.3.9.1. El principio del vecino ms cercano 2.3.9.2. El principio de representacin optima 2.3.9.3. El principio de la asignacin de la mnima distancia 2.3.10. Redes linealmente discriminantes

66 67 69 69 70 71 71 72 73 76 76 77 78 78 79 79 79 80 80 82 85 85 91 92 92 93 93 93 95 95

2.4. REDES NEURONALES ARTIFICIALES


2.4.1. NEURONAS BIOLGICAS 2.4.2. NEURONAS ARTIFICIALES 2.4.2.1. Funcin de Red 2.4.2.2. Funcin de Transferencia 2.4.2.3. Entradas Ponderadas 2.4.2.4. Salida 2.4.3. REDES NEURONALES ARTIFICIALES 2.4.3.1. Caractersticas 2.4.3.2. Clasificacin de las Redes Neuronales 2.4.3.2.1. Por su topologa 2.4.3.2.2. Por su mecanismo de aprendizaje 2.4.3.2.3. Por la informacin de entrada y salida 2.4.4. RESOLVER PROBLEMAS CON REDES NEURONALES 2.4.4.1. Problemas en los que las RNA no son apropiadas 2.4.4.1. Problemas en los que las RR.NN. si son apropiadas

100
100 101 103 103 104 104 104 105 105 106 107 108 109 109 110

2.5. ARQUITECTURAS DE REDES NEURONALES


2.5.1. LA NEURONA DE MCCULLOCH-PITTS 2.5.2. NEURONAS DE HEBB Y FUNCIONES DE ACTIVACIN 2.5.2.1. Pesos sinpticos ajustables

112
112 113 113

2.5.2.2. Umbrales y otras funciones de activacin 115 2.5.3. SNARK Y EL PERCEPTRN MARK I 119 2.5.4. UN PERCEPTRN LINEAL COMO DISCRIMINADOR LINEAL 120 2.5.4.1. El perceptrn como separador de hiperplanos 120 2.5.5. UNA CAPA DE PERCEPTRONES 121 2.5.5.1. Caractersticas mltiples de la separacin 121 2.5.5.2. El ejemplo Minsky-Papert 124 2.5.6. REDES ALIMENTADAS HACIA ADELANTE DE CAPAS DE NEURONAS 125 2.5.6.1. Perceptrones en multicapas 125 2.5.6.2. Ejemplo: Clasificacin del problema XOR con dos capas de perceptrones 127 2.5.6.3. La utilidad de las funciones de activacin 131 2.5.7. LA OPERACIN DE PERCEPTRONES MULTICAPA 133 2.5.7.1. Entradas y activaciones de la capa intermedia 133 2.5.7.2. Activacin de la capa de salida 134 2.5.7.3. Los rangos de datos y pesos 135 2.5.8. PERCEPTRONES MULTICAPAS COMO RECONOCEDORES DE PATRONES 136 2.5.8.1. Operacin y modos de entrenamiento 136 2.5.8.2. Algoritmo para el entrenamiento como el ajuste de pesos iterativo 138 2.5.9. EL TEOREMA DE HORNIK-STINCHCOMBE-WHITE Y EL MODELO MLP 139 2.5.9.1. El teorema 139 2.5.9.2. Principio 140 2.5.9.3. Arquitectura 140 2.5.10. REDES VINCULADAS FUNCIONALES (FLN - FUNCTIONAL LINK NETS) 142 2.5.10.1. Las redes de Pao 142 2.5.10.2. El problema XOR con FLNs 144 2.5.10.3. Un algoritmo FLN 146 2.5.10.4. Separacin polinmica de espacios de caractersticas 147 2.5.11. REDES CON FUNCIONES EN BASE RADIAL (RBF RADIAL BASIS FUNCTION NETWORKS) 148 2.5.11.1. Un algoritmo rpido de entrenamiento 154 2.5.12. MAPAS DE CARACTERSTICAS AUTO-ORGANIZATIVOS Y APRENDIZAJE DE CUANTIZACIN DE VECTORES 156 2.5.12.1. Concepto de la red bsica de Kohonen 156 2.5.12.2. Algoritmo para un mapa de caractersticas auto-organizativo 159 2.5.12.3. Algoritmo para el aprendizaje de cuantizacin de vectores 160 2.5.13. LAS REDES NEURONALES RECURRENTES DE AMARI-HOPFIELD 162 2.5.13.1. El modelo de Amari 162 2.5.13.2. El modelo de Hopfield 164 2.5.14. REDES NEURONALES ARTIFICIALES RECURRENTES COMO RECONOCEDORES DE PATRONES 165

2.6. REDES NEURONALES RECURRENTES


2.6.1. LA ARQUITECTURA DE LA RED DE HOPFIELD 2.6.1.1. El modelo discreto de Amari-Hopfield 2.6.1.2. Modos de operacin serial aleatorio y completamente paralelo 2.6.2. LAS REDES DE HOPFIELD COMO AUTMATAS FINITOS 2.6.2.1. Estados, atractores y ciclos 2.6.2.2. Autmatas finitos 2.6.3. CLCULO DE LOS PESOS 2.6.3.1. Una regla de aprendizaje simple: La formula computacional 2.6.3.2. Un ejemplo de clculo de estados y actualizacin de estados

167
167 167 169 171 171 173 175 175 176

2.6.4. LOS TEOREMAS DE HOPFIELD Y BRUCK: UN ANLISIS DE LA CONVERGENCIA 178 2.6.4.1. La trayectoria de la transicin y el teorema de Hopfield 178 2.6.4.1.1. Teorema de Hopfield 179 2.6.4.1.2. Prueba 179 2.6.4.2. Teoremas de Bruck 183 2.6.4.2.1. Teorema de Bruck 183 2.6.4.2.2. Los teoremas de contraejemplo de Bruck 183 2.6.5. UN ALGORITMO PARA LAS REDES DE HOPFIELD 184 2.6.6. INCREMENTAR LA CAPACIDAD DE LAS REDES DE HOPFIELD 187 2.6.6.1. Capacidad 187 2.6.6.2. Sobrerrelajacin sucesiva 188 2.6.7. REDES DE HOPFIELD COMO MEMORIA DE CONTENIDO DIRECCIONABLE 190 2.6.7.1. Memoria de contenido direccionable 190 2.6.7.2. El anlisis de Aiyer-Niranjan-Fallside 191 2.6.7.3. Una regla de aprendizaje simple 194 2.6.7.4. La regla de aprendizaje de Venkatesh-Psaltis-Dembo 195 2.6.8. REDES DE HOPFIELD EXTENDIDAS: MEMORIA ASOCIATIVA BIDIRECCIONAL DE KOSKO 196

2.7. MICROSOFT SOLUTIONS FRAMEWORK


2.7.1. FASE DE PREVISIN 2.7.1.1. Hitos 2.7.1.2. Entregables 2.7.1.3. La visin y el alcance 2.7.1.3.1. Visin 2.7.1.3.2. Alcance 2.7.1.4. El Equipo 2.7.2. FASE DE PLANEACIN 2.7.2.1. Hitos 2.7.2.2. Entregables 2.7.2.3. El Equipo 2.7.2.4. Culminacin 2.7.3. FASE DE DESARROLLO 2.7.3.1. Hitos 2.7.3.2. Entregables 2.7.3.3. El Equipo 2.7.3.4. Culminacin 2.7.4. FASE DE ESTABILIZACIN 2.7.4.1. Hitos 2.7.4.2. Entregables 2.7.4.3. El Equipo 2.7.4.4. Conclusin: El hito de liberacin

200
203 203 204 205 205 205 205 207 207 207 210 211 212 212 213 214 215 216 216 216 217 219

2.8. ESTUDIO DE LA PLATAFORMA SELECCIONADA


2.8.1. WINDOWS XP SERVICE PACK 2 2.8.1.1. Requerimientos de hardware bsicos 2.8.1.2. Ventajas de utilizar Windows XP Service Pack 2 2.8.2. SQL SERVER 2005 2.8.2.1. Requerimientos de hardware bsicos 2.8.2.2. Requerimientos de software bsicos 2.8.2.3. Ventajas de utilizar SQL Server 2005 Standard Edition

220
220 220 220 222 222 222 222

2.8.3. FRAMEWORK .NET 2.0 2.8.3.1. Conjunto de lenguajes 2.8.3.2. Biblioteca de clases base 2.8.3.3. Entorno comn de ejecucin de lenguajes 2.8.4. VISUAL C# 2.0 2.8.4.1. Ventajas de utilizar C# 2.0

224 224 225 225 226 226

CAPTULO III: DESARROLLO DEL SISTEMA


3.1. DOCUMENTO DE ENVISIONAMIENTO
3.1.1. DECLARACIN DE LA VISION 3.1.2. DECLARACIN DE OPORTUNIDADES 3.1.3. ALCANCE 3.1.3.1. Control de acceso 3.1.3.1.1. Adquisicin de huellas digitales 3.1.3.1.2. Bsqueda y comparacin a travs de la Red Neuronal Artificial 3.1.3.1.3. Simulacin de la Activacin de una puerta. 3.1.3.2. Administracin de la aplicacin 3.1.3.2.1. Administracin de usuarios 3.1.3.2.2. Administracin de la Red Neuronal Artificial 3.1.3.2.3. Reporte de acceso del recurso humano 3.1.4. META 3.1.4.1. Concepto de Solucin 3.1.4.2. Perfiles de Usuario 3.1.4.3. Resumen de uso 3.1.4.4. Resumen de Requerimientos 3.1.4.4.1. Requerimientos del Negocio 3.1.4.4.2. Requerimientos Operacionales 3.1.5. CRITERIOS DE XITO 3.1.5.1. Aplicacin Windows 3.1.5.2. Aplicacin Web 3.1.6. DEFINICIN DE RIESGOS

228
228
228 228 229 229 230 230 231 231 231 231 232 232 232 233 234 234 235 235 235 235 236 236

3.2. DISEO CONCEPTUAL


3.2.1. ESPECIFICACIONES FUNCIONALES 3.2.1.1. Especificaciones de Casos de Uso 3.2.1.1.1. UC1: Adquirir la huella dactilar 3.2.1.1.2. UC2: Ingresar cdigo de usuario 3.2.1.1.3. UC3: Extraer las minucias 3.2.1.1.4. UC4: Alimentar la RNA 3.2.1.1.5. UC5: Obtener resultado de la RNA 3.2.1.1.6. UC6: Permitir o denegar acceso 3.2.1.1.7. UC7: Entrenar la RNA 3.2.1.1.8. UC8: Almacenar log 3.2.1.1.9. UC9: Lectura / Escritura en BDD 3.2.1.1.10. UC10: Mantener usuarios 3.2.1.1.11. UC11: Leer reportes 3.2.1.1.12. UC12: Aprender huella dactilar 3.2.1.2. Escenarios de uso 3.2.1.2.1. Pantalla 1: Red Neuronal Artificial 3.2.1.2.2. Pantalla 2: Entrenamiento 3.2.1.2.3. Pantalla 3: Recursos Humanos 3.2.1.2.4. Pantalla 4: Reportes

237
237 237 237 238 238 242 243 243 243 244 244 244 245 245 245 246 246 247 248

3.2.1.2.5. Pantalla 5: Cliente 3.2.1.2.6. Pantalla 6: Almacenar una huella dactilar

249 250

3.3. DISEO LGICO


3.3.1. DIAGRAMA DE PAQUETES 3.3.2. DIAGRAMA DE CLASES 3.3.2.1. Diagrama de clases para FINGERPRINT.Aplicacion 3.3.2.2. Diagrama de clases para ANN.Libreria 3.3.2.3. Diagrama de clases para ANN.ModeloDatos 3.3.2.4. Diagrama de clases para FINGERPRINT.Componentes 3.3.3. DIAGRAMA DE SECUENCIAS 3.3.1. CLASES BSICAS DE LA LIBRERA ANN.Libreria 3.3.1.1. Clase IEstrategiaNeurona 3.3.1.2. Clase IFabricaRed 3.3.1.3. Clase INeurona 3.3.1.4. Clase IRedNeuronal 3.3.1.5. Clase EstrategiaRED 3.3.1.6. Clase FabricaRED 3.3.1.7. Clase Neurona 3.3.1.8. Clase RedHelper 3.3.1.9. Clase RedNeuronal 3.3.1.10. Clase Serializador_Red 3.3.2. CLASES BSICAS DE LA LIBRERA FINGERPRINT.Componentes 3.3.2.1. Clase clsOperaciones 3.3.2.2. Clase clsBDD 3.3.2.3. Clase clsPlantilla

251
251 251 251 252 252 252 253 254 254 254 254 256 257 259 260 265 272 280 284 284 294 298

3.3. DESCRIPCIN DE LIBRERAS Y SUS COMPONENTES PRINCIPALES 254

3.4. DESCRIPCIN DE USO


3.4.1. ADMINISTRACIN DE LA APLICACIN 3.4.2. RECURSOS HUMANOS 3.4.2.1. Mantenimiento de usuarios 3.4.2.2. Reportes 3.4.3. APLICACIN CLIENTE

300
302 304 304 306 307

CAPTULO IV: CONCLUSIONES Y RECOMENDACIONES


4.1. CONCLUSIONES 4.2. RECOMENDACIONES

308
308 312

BIBLIOGRAFA ANEXOS

313 318

10

TABLA DE ILUSTRACIONES

ILUSTRACIN 1: SISTEMA DE VERIFICACIN Y SISTEMA DE IDENTIFICACIN. 26 ILUSTRACIN 2: EJEMPLOS DE HUELLAS DACTILARES OBTENIDAS A TRAVS DE VARIOS MTODOS. 47 ILUSTRACIN 3: TIPOS DE PATRONES COMUNES PARA HUELLAS DACTILARES. 51 ILUSTRACIN 4: PROCESO DE RECONOCIMIENTO DE UN OBJETO. 67 ILUSTRACIN 5: DISTRIBUCIONES PROBABILSTICAS DE CARACTERSTICAS. 72 ILUSTRACIN 6: SEPARACIN DE OBJETOS EN EL ESPACIO DE CARACTERSTICAS POR UN HIPERPLANO. 74 ILUSTRACIN 7: DOS CLASES DE CARACTERSTICAS QUE NO PUEDEN SER SEPARADAS POR UN HIPERPLANO. 74 ILUSTRACIN 8: SEPARACIN DE VARIAS CLASES POR VARIOS HIPERPLANOS EN EL ESPACIO DE CARACTERSTICAS. 76 ILUSTRACIN 9: EJEMPLO DE SEPARACIN LINEAL CLSICA (1). 81 ILUSTRACIN 10: EJEMPLO DE SEPARACIN LINEAL CLSICA (2). 83 ILUSTRACIN 11: DISCRIMINACIN LINEAL. 85 ILUSTRACIN 12: NORMA EL BLOQUE DE LA CIUDAD PARA MEDIR LA DISTANCIA. 87 ILUSTRACIN 13: NORMA DE TSHEBYSHEV PARA MEDIR LA DISTANCIA. 88 ILUSTRACIN 14: LA DISTANCIA DE MAHALANOBIS. 88 ILUSTRACIN 15: HIPRBOLA EN EL PLANO CON CENTRO EN EL VECTOR Z Y CON RADIO R, PARA VARIAS DISTANCIAS EN EL PLANO (1). 90 ILUSTRACIN 16: HIPRBOLA EN EL PLANO CON CENTRO EN EL VECTOR Z Y CON RADIO R, PARA VARIAS DISTANCIAS EN EL PLANO (2). 90 ILUSTRACIN 17: CONJUNTOS CONVEXO Y NO CONVEXO. 91 ILUSTRACIN 18: CUALQUIER CONJUNTO DISJUNTO CERRADO CONVEXO EN UN ESPACIO VECTORIAL NORMALIZADO PUEDE SER SEPARADO POR HIPERPLANOS. 92 ILUSTRACIN 19: RED PARA EL PROCESO DE TOMA DE DECISIONES. 97 ILUSTRACIN 20: RED MULTILINEAL. 98 ILUSTRACIN 21: APLICACIN DE REDES PARA TOMA DE DECISIONES. 99 ILUSTRACIN 22: NEURONA BIOLGICA. 101 ILUSTRACIN 23: REPRESENTACIN DE UNA NEURONA ARTIFICIAL. 102 ILUSTRACIN 24: RECORRIDO DE LAS SEALES A TRAVS DE UNA NEURONA ARTIFICIAL. 103 ILUSTRACIN 25: LA NEURONA DE MCCULLOCH PITTS. 112 ILUSTRACIN 26: NEURONAS CON PESOS AJUSTABLES. 114 ILUSTRACIN 27: FUNCIN DE ACTIVACIN UNIPOLAR. 115 ILUSTRACIN 28: FUNCIN DE ACTIVACIN BIPOLAR. 116 ILUSTRACIN 29: FUNCIN SIGMOIDE UNIPOLAR. 117 ILUSTRACIN 30: FUNCIN SIGMOIDE BIPOLAR. 117 ILUSTRACIN 31: PERCEPTRN. 120 ILUSTRACIN 32: CAPA DE PERCEPTRONES. 121 ILUSTRACIN 33: REGIONES PARA LOS HIPERPLANOS CUANDO EXISTEN 4 PERCEPTRONES EN UNA CAPA. 122 ILUSTRACIN 34: HIPERPLANOS PARALELOS. 123 ILUSTRACIN 35: EJEMPLO DE MINSKY PAPERT. 124 ILUSTRACIN 36: PERCEPTRONES MULTICAPAS. 126 ILUSTRACIN 37: RED NEURNOAL RETROALIMENTADA. 128

11

ILUSTRACIN 38: RESULTADO DE UNA RED FANN. 128 ILUSTRACIN 39: UTILIDAD DE LAS FUNCIONES DE ACTIVACIN. 131 ILUSTRACIN 40: ENTRADAS Y ACTIVACIONES DE LA CAPA INTERMEDIA. 133 ILUSTRACIN 41: SITUACIN PARA APLICACIN DE LAS REDES DE PAO. 142 ILUSTRACIN 42: MODELO DE TENSOR DE SEGUNDO ORDEN. 144 ILUSTRACIN 43: DATOS XOR PARA DOS DIMENSIONES. 145 ILUSTRACIN 44: RED FLN PARA LA FUNCIN LGICA XOR. 146 ILUSTRACIN 45: RED GENERAL RBF. 149 ILUSTRACIN 46: RED RBF EN UN PLANO. 150 ILUSTRACIN 47: CORTE DE UN RBF EN EL M-SIMO NEURO-NODO. 151 ILUSTRACIN 48: PORCIN DE UN ESPACIO DE CARACTERSTICAS BIDIMENSIONAL CUBIERTO POR RBFS 153 ILUSTRACIN 49: RED DE KOHONEN. 157 ILUSTRACIN 50: EL CASO DE UN ARREGLO UNIDIMENSIONAL. 158 ILUSTRACIN 51: EL CASO DE UN ARREGLO BIDIMENSIONAL. 159 ILUSTRACIN 52: RED PARA CUANTIZACIN DE VECTORES. 160 ILUSTRACIN 53: MODELO DE AMARI. 162 ILUSTRACIN 54: EL MODELO DE HOPFIELD. 164 ILUSTRACIN 55: EL MODELO DISCRETO DE AMARI - HOPFIELD. 167 ILUSTRACIN 56: ESTADOS, ATRACTORES Y CICLOS. 172 ILUSTRACIN 57: MQUINA DE ESTADOS FINITOS. 174 ILUSTRACIN 58: FUNCIN DE LIAPUNOV E CONSTANTE. 192 ILUSTRACIN 59: MEMORIA ASOCIATIVA DE DOS VIAS. 197 ILUSTRACIN 60: HITOS EN EL PROCESO MSF. 201 ILUSTRACIN 61: ENFOQUE DEL NEGOCIO Y ENFOQUE TECNOLGICO EN MSF. 203 ILUSTRACIN 62: FASE DE DESARROLLO. 212

12

CAPTULO I: PROPUESTA

1.1. TTULO

Aplicacin de Redes Neuronales Artificiales en el reconocimiento de huellas dactilares.

1.2. OBJETIVOS
1.2.1. Objetivo General

Disear, a nivel de prototipo, un sistema amigable de reconocimiento de huellas dactilares que sea aplicable a procesos de control de acceso del recurso humano.

1.2.2. Objetivos Especficos

1. Investigar los diferentes modelos de redes neuronales artificiales existentes o disponibles en la Comunidad Acadmica Mundial.

13

2. Realizar un anlisis comparativo de las ventajas y desventajas de cada uno de los modelos de redes neuronales artificiales. 3. Seleccionar un modelo especfico a utilizar en el diseo amigable de reconocimiento de huellas dactilares. 4. Investigar el procedimiento de lectura de un lector biomtrico y las tcnicas de almacenamiento del resultado de dicha lectura en una base de datos. 5. Implementar, a nivel de prototipo, el modelo de redes neuronales artificiales seleccionado para el reconocimiento de las huellas dactilares.

1.3. ALCANCE

La aplicacin a disear estar compuesta de dos grandes partes: Control de acceso. Administracin de la aplicacin.

1.3.1. Control de acceso

Est enfocado a tres puntos bsicos: Adquisicin de las huellas digitales. Bsqueda y comparacin a travs de la Red Neuronal Artificial. Simulacin de la activacin de una puerta.

14

1.3.1.1. Adquisicin de huellas digitales

Este proceso se lo realiza a travs de un lector biomtrico conectado al servidor de la aplicacin. Una vez adquirida la huella digital se tienen dos opciones: la primera es la del almacenamiento del patrn que representa esa huella en la base de datos, en el registro que corresponda a la persona propietaria de dicha huella. La segunda opcin es la adquisicin del patrn con el fin de realizar la comparacin dentro de la Red Neuronal para encontrar una coincidencia.

1.3.1.2. Bsqueda y comparacin a travs de la Red Neuronal Artificial

Es donde se aplicar el modelo de red neuronal seleccionado tras la investigacin en busca del ms adecuado para este tipo de problemas, para almacenar y hacer llamadas de las imgenes ya disponibles. A travs de este proceso, la aplicacin podr realizar la comparacin de dos imgenes aunque la informacin leda est corrompida o incompleta. Cuando se ha adquirido un patrn correspondiente a una huella dactilar se debe realizar el barrido de la informacin almacenada en la base de datos, esta informacin ser introducida en la Red Neuronal Artificial, la cual arrojar un resultado positivo en el caso de encontrar una coincidencia o negativo en el caso de no hacerlo. En cualquier caso se almacenar en la base de datos un registro con la fecha, la hora, el resultado de la bsqueda, y en el caso de ser positiva la respuesta, la identificacin de la persona.

15

1.3.1.3. Simulacin de la Activacin de una puerta.

En el caso de una bsqueda exitosa, el sistema deber abrir una puerta. Para ste proyecto, se realizar una simulacin en pantalla para abrir la puerta de acceso.

1.3.2. Administracin de la aplicacin

Consta de tres partes: Administracin de usuarios. Administracin de la Red Neuronal Artificial. Reporte de acceso del recurso humano.

1.3.2.1. Administracin de usuarios

Se podr crear nuevos usuarios, los cuales tendrn su asociacin directa con su huella dactilar. Adems de agregar usuarios se podr borrarlos o actualizarlos.

1.3.2.2. Administracin de la Red Neuronal Artificial

Se podr configurar a la red neuronal, definiendo el nmero de nodos, el nmero de patrones que podrn ser reconocidos, adems del entrenamiento de la red neuronal.

16

1.3.2.3. Reporte de acceso del recurso humano

En una pgina Web, a la que tendr acceso un usuario administrador nicamente se podr acceder a un reporte de las personas que abrieron la puerta que est controlada por la aplicacin.

1.4. JUSTIFICACIN

Con ste proyecto se materializa la investigacin tecnolgica de la Inteligencia Artificial, especialmente en el campo de las Redes Neuronales Artificiales. En los mercados europeo y americano se encuentran altamente desarrollados sistemas de reconocimiento de huellas dactilares cuyo costo comercial est en el rango de cien a quinientos mil dlares. La investigacin a realizar ser de bajo costo comparativo. Demostrar que tecnolgicamente es posible realizar trabajos de ste tipo en el pas, lo que evidenciar un importante desarrollo tecnolgico originado en la Universidad.

1.4.1. Conveniencia

Este proyecto ser un aporte a los procesos de control en actividades productivas que demandan seguridad, confiabilidad y oportunidad.

17

La potencialidad de la Inteligencia Artificial, especialmente el rea de Redes Neuronales Artificiales, tiene aplicaciones en los procesos productivos industriales, de servicios y comerciales, ya que los controles, utilizados como instrumento de logro de eficiencia, sern amplios, rpidos, oportunos y confiables. El desarrollo de un prototipo de reconocimiento de huellas dactilares acercar al pas a la tecnologa de punta con baja inversin comparativa con los mercados americano y europeo.

1.4.2. Impacto Social

La sociedad del conocimiento demanda el desarrollo de procesos informticos propios, seguros, que eviten o al menos mitiguen la dependencia monoplica de los grandes trusts internacionales. La presente propuesta de Tesis de Investigacin es aporte a esta necesidad social. La Universidad, es el campo frtil para implementar desarrollos informticos; las empresas de tecnologa que requieren manejo confidencial de sus productos y procesos; las instituciones que deben controlar actividades productivas tomando el factor tiempo como el elemento fundamental; los departamentos de recursos humanos, son los mayores beneficiarios del sistema propuesto ya que el reconocimiento de huellas en los lugares de trabajo comparados con los rendimientos productivos diarios permitirn establecer la relacin costo (el valor que se paga) y beneficio (el trabajo que se espera sea cumplido en forma cabal)

18

1.4.3. Impacto Terico

En el Universo de la Informtica existen software y hardware altamente sofisticados que permiten controles de alta seguridad. Gobiernos, instituciones militares, industrias de alta tecnologa basan sus procesos de seguridad en teoras muy desarrolladas para evitar ataques de hackers o espionaje. Esta tesis pretende adaptar la teora existente y ponerla en prctica a travs de una aplicacin acorde a la realidad nacional. La experiencia seala que no todo software desarrollado en el exterior es aplicable en nuestro pas as como nos ensea que muchas implementaciones forzadas resultan traumticas.

1.4.4. Impacto Metodolgico

La metodologa existente, los sistemas de control implementados en las grandes corporaciones internacionales, la bibliografa disponible, los trabajos realizados como temas de investigacin en clases regulares, contribuyen al desarrollo de una metodologa de estudio y aplicacin de Redes Neuronales Artificiales. El prototipo a desarrollar ser el aporte de una metodologa de aplicacin del conocimiento, de adaptacin de procesos ya existentes de alto costo a otro de costo menor al que puedan acceder empresas de nuestro pas sin necesidad de realizar inversiones que afecten significativamente su Capital de Trabajo.

19

1.4.5. Implicancia Prctica

Uno de los mayores problemas que tiene la empresa ecuatoriana es el control de la Mano de Obra ya que por efectos de la legislacin, el salario se convierte en costo fijo ligado exclusivamente a la presencia fsica del empleado en su lugar de trabajo y no a su produccin y peor a su productividad. La aplicacin de Redes Neuronales Artificiales en la identificacin de huellas dactilares permitir estructurar adecuadamente los controles a efectos de medir el rendimiento del recurso humano en un proceso productivo sea comercial, industrial o de servicios.

1.4.6. Viabilidad

1.4.6.1. Viabilidad Econmica

Por cuanto el proponente de ste plan de tesis cuenta con los recursos econmicos necesarios para cubrir el presupuesto (Punto 10), posee los equipos de hardware necesarios (servidores y computadoras), los dispositivos necesarios (lector biomtrico), las licencias para el software necesario (SQL Server 2005 Standard Edition, Windows Server 2003, Visual Studio 2005 Standard Edition) y la bibliografa suficiente (libros, acceso al Internet 24/7, informacin de la IEEE), se puede afirmar que el proyecto es econmicamente viable. El proyecto no contempla el uso de hardware y software de la Universidad.

20

1.4.6.2. Viabilidad Tecnolgica

Se dispone de los equipos de hardware necesarios para el desarrollo de la tesis (servidores, computadoras, lector biomtrico), adems se dispone del software necesario para el desarrollo de la aplicacin y el conocimiento del uso del mismo. Se cuenta con el apoyo tcnico de ingenieros en sistemas e informtica con experiencia en el rea de Inteligencia Artificial y Procesamiento de Imgenes. Se dispone de la bibliografa necesaria, que consta de libros propios, libros de la Universidad Tecnolgica Equinoccial, libros y tesis de grado de la Pontificia Universidad Catlica del Ecuador e informacin disponible para miembros de las reas de inteligencia artificial y de procesamiento de imgenes de la IEEE. Adems el proponente de ste plan de tesis cuenta con los fundamentos matemticos y tericos para inteligencia artificial y reconocimiento de imgenes. Tomando en cuenta lo anteriormente descrito se afirma que el proyecto es tecnolgicamente viable.

21

CAPTULO II: MARCO TERICO

2.1. SISTEMAS BIOMTRICOS

Ms de un siglo ha pasado desde que Alphonse Bertillon concibi la idea de utilizar medidas del cuerpo para resolver crmenes. Cuando su idea iba ganando popularidad, se disolva gracias al descubrimiento, mucho ms prctico y significante, de la individualidad de las huellas dactilares humanas. En 1893 se acepta que no existen dos individuos con las mismas huellas dactilares, y desde ah los mayores departamentos de ley y orden a nivel mundial adoptaron la idea de ir almacenando las huellas dactilares de los criminales, para que estos registros estn disponibles y utilizando tcnicas de levantamiento de las mismas determinar la idea de los criminales. Estas agencias auspiciaron rigorosos estudios en el campo de las huellas dactilares y desarrollaron mtodos cientficos para poder cotejar dos huellas visualmente1. A pesar de los ingeniosos mtodos improvisados para incrementar la eficiencia del indexamiento y bsqueda manuales de huellas digitales, la siempre creciente demanda del reconocimiento de huellas dactilares rpidamente se volvi devastadora. El mtodo manual de indexacin result en una distribucin retorcida de huellas en tipos (bins): muchas de ellas caan en algunos tipos y esto no brindaba mucha eficiencia. Los procedimientos de

Biometrics history Looking at biometrics Technologies from the past to the present. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.video-surveillanceguide.com/biometrics-history.htm

22

entrenamiento para el reconocimiento tomaban mucho tiempo, adems el tedio propio de un trabajo montono, las cargas de trabajo cada da crecan ms, y otros problemas llevaron a las agencias gubernamentales que utilizaban esta informacin a iniciar las investigaciones sobre cmo adquirir las huellas digitales a travs de medios electrnicos y automatizar el reconocimiento de las mismas, todo esto basado en la representacin digital de las huellas. Estos esfuerzos llevaron al desarrollo de los Sistemas de Identificacin Automtica de Huellas Dactilares (AFIS por sus siglas en ingls, Automatic Fingerprint Identification Systems)2. Las agencias de la ley y el orden fueron las primeras en adoptar esta tecnologa, sin embargo el creciente nmero de fraudes de identidad ha creado la necesidad de tecnologas biomtricas para el reconocimiento de personas en un gran nmero de aplicaciones no forenses. El reconocimiento biomtrico se refiere al uso de distintas caractersticas fisiolgicas (huellas dactilares, rostro, retina, iris) y comportamentales (la manera de caminar o la firma) a las que se les llama identificadores biomtricos, y se los usa para el reconocimiento automtico de individuos. Por ejemplo, las huellas dactilares pueden ser fisiolgicas de naturaleza, pero el uso de el dispositivo de entrada (cmo el usuario presenta su dedo al lector de huellas dactilares) depende del comportamiento de la persona. As, la entrada al motor de reconocimiento es una combinacin de caractersticas fsicas y

comportamentales. De manera similar, el habla est determinada en parte por la estructura biolgica que la produce y por otra parte por la manera en que la persona habla3. A menudo, se pueden encontrar similitudes entre padres, hijos o familiares en la voz, manera

The History of Fingerprints . En lnea. Internet 1 de Agosto del 2006. Disponible WWW htmhttp://www.onin.com/fp/fphistory.html
3

Voice Security Systems - Biometric Technology En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.voice-security.com/Biomet.html

23

de caminar e inclusive en la firma. El mismo argumento se aplica al rostro, las caras de gemelos idnticos pueden ser extremadamente similares al momento de nacer, pero durante el desarrollo cambian basadas en el comportamiento de la personas (por ejemplo, por diferencias en los estilos de vida, que llevan a una diferencia en los pesos corporales). El reconocimiento biomtrico nos sirve para responder a preguntas importantes4 para negocios u organizaciones gubernamentales, estas preguntas podran ser: Esta persona est autorizada a entrar a este lugar?, Esta persona est autorizada a leer esta informacin confidencial? O Este servicio se lo est brindando exclusivamente a los usuarios autorizados? Ya que los identificadores biomtricos no son fcilmente olvidados o prestados son considerados ms confiables para el reconocimiento de personas que los mtodos basados en conocimiento de informacin (usuarios y contraseas). Los objetivos del reconocimiento biomtrico son: 1. La conveniencia del usuario, por ejemplo poder retirar dinero sin una tarjeta ATM o un PIN. 2. Mayor seguridad, ya que provee un mtodo difcil de pasar. 3. Alta eficiencia. Existe un mal entendido muy popular en la comunidad acadmica de reconocimiento de patrones y de procesamiento de imgenes, ste es que el reconocimiento automtico de huellas dactilares es un problema completamente resuelto, ya que fue una de las primeras aplicaciones del reconocimiento de patrones hace ms de 50 aos. Al contrario, el reconocimiento de huellas digitales todava es un reto para los problemas de reconocimientos de patrones.

Biometric Engine - Defining Identity. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/Bio21st.pdf

24

2.1.1. SISTEMAS BIOMTRICOS

Un sistema biomtrico es esencialmente un sistema de reconocimiento de patrones que reconoce a una persona al determinar la autenticidad de una caracterstica fisiolgica y/o comportamental5. Un punto importante en el diseo de un sistema biomtrico prctico est en determinar cmo el individuo es reconocido, dependiendo del contexto de la aplicacin, un sistema biomtrico puede ser de verificacin o de identificacin6: Un sistema de verificacin autentica la identidad de una persona al compara la caracterstica biomtrica capturada con su propia plantilla biomtrica guardada previamente en el sistema. Conduce una comparacin uno a uno para determinar si la identidad que el individuo dice tener es la verdadera. Un sistema de verificacin acepta o rechaza la aseveracin de identidad (en verdad soy quien digo ser?). Un sistema de identificacin reconoce a un individuo al buscar en la base de datos de plantillas por una coincidencia. Conduce una comparacin de uno a muchos para establecer la identidad del individuo. En un sistema de identificacin, ste establece la identidad de un sujeto (o falla si el sujeto no est enrolado en la base de datos) sin que el sujeto tenga que decir quin se supone que es (quin soy yo?). El trmino autenticacin tambin utilizado frecuentemente en el campo biomtrico como sinnimo de verificacin; en el lenguaje de tecnologas de la informacin, autenticar un usuario significa dejar al sistema saber la identidad del usuario sin tomar en cuenta la forma (verificacin o identificacin).

Biometrics 101. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/guide3.html
6

Identification versus Verification. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/guide4.html

25

En el siguiente grfico se muestran a forma de diagrama de bloques un sistema de verificacin y un sistema de identificacin.

NOMBRE (PIN) Verificador de Calidad Interfaz de Usuario INSCRIPCIN O SUSCRIPCIN Extractor De Crctrstcs.

Nombre de Plantilla

BDD DEL SISTEMA

NOMBRE (PIN) Extractor De Crctrstcs. Interfaz de Usuario VERIFICACIN

Identidad reclamada

Emparejador (1 result) Una Plantilla Verdadero / Falso BDD DEL SISTEMA

Extractor De Crctrstcs. Interfaz de Usuario IDENTIFICACIN

Emparejado r (N result) N Plantillas Identidad del Usuario o Usuario no identificado BDD DEL SISTEMA

Ilustracin 1: Sistema de verificacin y Sistema de identificacin.

La inscripcin del usuario, que es comn para las dos tareas, tambin consta en el grfico anterior. El mdulo de inscripcin es responsable de registrar individuos en la base de datos del sistema biomtrico (BDD del sistema). Durante esta fase, la caracterstica biomtrica del individuo es escaneada por un lector biomtrico para producir una representacin digital cruda de la misma. Generalmente se realiza un chequeo de calidad para asegurarse que la muestra adquirida pueda ser procesada confiablemente en las siguientes etapas. Para facilitar el proceso de bsqueda de coincidencias (matching), la representacin digital cruda es procesada por un extractor de caractersticas para generar una representacin compacta

26

pero expresiva, llamada plantilla. Dependiendo de la aplicacin, la plantilla puede ser almacenada en una base de datos central del sistema biomtrico o guardada en una tarjeta magntica o tarjeta inteligente que se la entrega al usuario. La tarea de verificacin es la responsable de la verificacin de los individuos en el punto de acceso. Durante la fase de operacin, el nombre del usuario o su PIN es ingresado a travs de un teclado; el lector biomtrico captura la caracterstica del individuo que deber ser reconocido y la convierte a un formato digital, el que es procesado posteriormente por el extractor de caractersticas para producir una representacin digital compacta. El resultado es alimentado al comparador de caractersticas, el que va a la plantilla de un nico usuario (obtenido de la base de datos del sistema a travs del PIN del usuario). En la tarea de identificacin, no se provee ningn PIN y el sistema compara la representacin de la entrada biomtrica contra las plantillas de todos los usuarios en la base de datos del sistema; la salida es la identidad de un usuario o una alerta sobre un usuario no reconocido. Ya que la identificacin en bases de datos grandes es muy cara computacionalmente hablando, se utilizan tcnicas de clasificacin e indexamiento para limitar el nmero de plantillas con las que la entrada debe ser comparada. Dependiendo del dominio de la aplicacin, un sistema biomtrico puede operar en lnea o no. Un sistema en lnea requiere que el reconocimiento ser realizado de manera rpida y una respuesta inmediata es requerida, por ejemplo, para una aplicacin de ingreso a una red. Por otra parte, un sistema fuera de lnea usualmente no requiere que el reconocimiento sea realizado inmediatamente y es permitido un tiempo de respuesta relativamente alto, por ejemplo, una comprobacin del estado de un empleado. Tpicamente, los sistemas en lnea son completamente automatizados y requieren que la caracterstica biomtrica sea capturada utilizando un escner tipo live-scan, que el

27

proceso de inscripcin sea desatendido, que no exista control de calidad manual y que la comparacin y la decisin sean automticas. Los sistemas fuera de lnea, son tpicamente semiautomticos, donde la adquisicin biomtrica puede ser a travs de un escner fuera de lnea, por ejemplo, obtener una imagen de una huella digital de una foto; el proceso de inscripcin puede ser supervisado, por ejemplo, cuando a un criminal se le obtienen sus huellas dactilares, un polica u otra persona debe guiar el proceso de la adquisicin de las mismas; un chequeo de calidad manual puede ser realizado para asegurarse de que sea de buena calidad la adquisicin; y el comparador podra retornar una lista de candidatos que son examinados de manera manual por un experto forense para obtener una decisin (humana) final. Una aplicacin puede operar ya sea en modo de reconocimiento positivo o negativo7: En una aplicacin de reconocimiento positivo, el sistema establece si la persona es quin dice ser (implcitamente o explcitamente). El propsito de un reconocimiento positivo es el de prevenir que varias personas utilicen la misma identidad. Por ejemplo, si nicamente A est autorizado a entrar a un rea segura, entonces el sistema le permitir nicamente a A hacerlo. Si el sistema falla al encontrar la plantilla de A o falla en la comparacin el resultado es una negacin, caso contrario, el resultado es una aceptacin. En una aplicacin de reconocimiento negativo, el sistema establece si la persona es quin niega ser (implcitamente o explcitamente). El propsito de un reconocimiento negativo es el de prevenir a una sola persona utilizar varias identidades. Por ejemplo, si B ha recibido ya sus beneficios corporativos y ahora

Biometric Recognition: Security and Privacy concerns. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.csun.edu/~deb53351/Papers/Prabhakar_Biometric_recognition.pdf

28

dice ser C para reclamar los beneficios de C, el sistema establecer que C no es quien dice ser. Si el sistema falla en la comparacin y reconocimiento de la entrada biomtrica de C con la base de datos de la gente que ya ha recibido sus beneficios, el resultado es una aceptacin, caso contrario, es una negacin. Ntese que aunque los mtodos tradicionales de autenticacin de usuarios como claves o PINs pueden funcionar para el reconocimiento positivo, el reconocimiento negativo puede ser alcanzado nicamente a travs de la biometra. Yendo ms all, las aplicaciones con reconocimiento positivo pueden operar en el modo de verificacin o de identificacin, pero las aplicaciones de reconocimiento negativo no pueden trabajar en un modo de verificacin, de hecho, el sistema tiene que buscar todos los registros archivados para probar que la entrada dada no est presente en los mismos. Un sistema biomtrico puede ser clasificado de acuerdo al nmero de otras caractersticas dependientes de la aplicacin. Varios investigadores han sugerido que todas las aplicaciones biomtricas sean clasificadas en categoras basadas en sus caractersticas: 1. Cooperativos versus no cooperativos. 2. Abiertos versus secretos. 3. Habituados versus no habituados. 4. Atendidos versus no atendidos. 5. Estndar versus un ambiente de operacin no estndar. 6. Pblicos versus privados 7. Abiertos versus cerrados. La dicotoma cooperativos versus no cooperativos se refiere al comportamiento del impostor cuando interacta con el sistema. Por ejemplo, en un sistema de reconocimiento positivo es del inters del impostor el cooperar con el sistema para ser aceptado como un

29

usuario vlido. Por otro lado, en un sistema de reconocimiento negativo, al impostor no le interesa cooperar con el sistema para que no pueda ser reconocido. La banca electrnica es un excelente ejemplo de una aplicacin cooperativa mientras que una aplicacin aeroportuaria que identifique terroristas que traten de pasar sobre el sistema es un ejemplo de una aplicacin no cooperativa. Si el usuario conoce que es sujeto de reconocimiento biomtrico, la aplicacin es abierta. Caso contrario es una aplicacin secreta. El reconocimiento facial puede ser utilizado en una aplicacin secreta, mientras que el reconocimiento de huellas dactilares no puede ser utilizado en este modo. Muchos usos comerciales de la biometra son abiertas, mientras que las aplicaciones gubernamentales, forenses o de vigilancia son tpicamente secretas. Adems, muchas de las aplicaciones de verificacin son abiertas, mientras que las aplicaciones de identificacin generalmente caen en la categora de secretas. El uso de un sistema biomtrico habituado o no habituado se refiere a que tan a menudo los usuarios inscritos son sujetos de reconocimiento biomtrico. Por ejemplo, en una aplicacin de ingreso a un computador se tienen generalmente usuarios habituados (luego de un periodo inicial de habituacin) ya que utilizan en sistema con regularidad. Sin embargo, una aplicacin para el reconocimiento de los poseedores de una licencia de conducir tiene usuarios no habituados ya que la licencia se renueva una vez cada varios aos. Esta dicotoma es un punto importante a ser considerado cuando se disea un sistema biomtrico ya que la familiaridad de los usuarios con el sistema afecta la efectividad del reconocimiento. El reconocimiento atendido versus el no atendido se refiere a si el proceso de la adquisicin de los datos biomtricos en una aplicacin es observada, guiada o supervisada por un humano. Una aplicacin podra tener un proceso de inscripcin atendido pero el proceso de

30

reconocimiento ser desatendido. Por ejemplo, una aplicacin bancaria puede tener un proceso atendido de inscripcin cuando se le entrega a un usuario una tarjeta ATM, pero los usos subsecuentes del sistema biomtrico de las transacciones ATM no sern atendidas. Las aplicaciones no cooperativas generalmente requieren de una operacin atendida. Los ambientes estndares contra los no estndares se refiere a si el sistema es operado en un ambiente controlado (por ejemplo temperatura, presin, humedad, condiciones lumnicas, etc.). Tpicamente, las aplicaciones que funcionan bajo techo, como un sistema de ingreso a computadoras, operan en ambientes controlados, mientras que las que funcionan fuera, como un sistema de encendido de un automvil a travs de la huella digital, funcionan en un ambiente no estndar. Esta clasificacin tambin es importante para el diseador del sistema ya que se necesita de un sensor biomtrico ms robusto para un ambiente no estndar. La dicotoma pblica o privada se refiere a si los usuarios del sistema son clientes o empleados de la organizacin que ha montado el sistema biomtrico. Por ejemplo, una aplicacin de ingreso a una red de datos es utilizada por los empleados y administrada por el administrador de tecnologa de la informacin de la misma compaa. As esta es una aplicacin privada. El uso de datos biomtricos en conjuncin con tarjetas de identidad electrnica es un ejemplo de una aplicacin pblica. Los sistemas abiertos o cerrados se refieren a si la plantilla biomtrica de una persona es utilizada en una o varias aplicaciones. Por ejemplo, un usuario podra usar el reconocimiento basado en huellas dactilares para ingresar a su computadora, para la banca electrnica y para ATM. La pregunta es, deben todas estas aplicaciones utilizar diferentes plantillas (bases de datos) para cada aplicacin, o deben acceder todas a la misma plantilla (base de datos)? Una aplicacin cerrada debera estar basada en una plantilla propietaria,

31

mientras que un sistema abierto necesitara formatos de datos y mtodos de compresin estndares para intercambiar y comparar informacin entre diferentes sistemas, comnmente desarrollados por diferentes fabricantes. La mayora de las aplicaciones comerciales de xito tienen los siguientes atributos: son cooperativas, no son secretas, son habituadas, tienen una inscripcin atendida y el reconocimiento es no atendido, trabajan en un ambiente estndar, son cerradas y por ltimo, son privadas.

2.1.2. COMPARACIN DE DISTINTOS IDENTIFICADORES BIOMTRICOS Cualquier caracterstica humana fisiolgica y/o comportamental puede ser utilizada como identificador biomtrico para reconocer a una persona siempre y cuando satisfaga los siguientes requerimientos8: 1. Universal, todas las personas deben tener este identificador. 2. Singular, que indica que dos personas cualesquiera deben ser lo suficientemente diferentes en trminos de sus identificadores biomtricos. 3. Permanente, el identificador debe ser suficientemente invariable sobre un periodo de tiempo. 4. Cuantitativo, un indicador puede ser medido cuantitativamente. Sin embargo, en un sistema biomtrico prctico existen algunos otros puntos que deben ser considerados, como por ejemplo:

The 123 of biometric technology. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.itsc.org.sg/synthesis/2002/biometric.pdf

32

1. Rendimiento, que se refiere a la precisin de reconocimiento, a la velocidad, a la robustez, a los requerimientos de recursos para alcanzar la efectividad y velocidad deseadas, as como tambin a factores ambientales que afecten a la efectividad de reconocimiento y velocidad. 2. Aceptabilidad, que indica que tanto las personas pueden aceptar un identificador biomtrico en particular en sus vidas diarias. 3. Vulnerabilidad, que refleja que tan fcil sera burlar al sistema con mtodos fraudulentos. Un sistema biomtrico prctico debe tener una efectividad de reconocimiento y velocidad aceptables con requerimientos de recursos razonables, debe ser inofensivo para los usuarios y debe ser bien aceptado por la poblacin objetivo. Adems debe ser muy robusto para varios mtodos fraudulentos. Existen varios identificadores biomtricos en uso actualmente. Cada uno tiene sus fortalezas y sus debilidades, y la seleccin de uno u otro depende de la aplicacin. Es lgico decir que no hay un identificador que cumpla efectivamente los requerimientos de todas las aplicaciones, y la habilidad de poder escoger uno est determinada por las caractersticas de la aplicacin y las propiedades del identificador biomtrico. Cuando se selecciona un identificador biomtrico para una aplicacin se deben tomar en cuenta los siguientes puntos bsicos: 1. La aplicacin necesita verificacin o identificacin? Si la aplicacin requiere la identificacin de un sujeto de una base de datos grande, se necesita un identificador escalable y relativamente ms distintivo, por ejemplo la huella dactilar, el iris o el ADN.

33

2. Cules son los modos operacionales de la aplicacin? Por ejemplo, determinar si la aplicacin es atendida (semiautomtica) o desatendida (completamente

automtica), si los usuarios estn habituados (o desean estarlo) a los identificadores seleccionados, si la aplicacin es abierta o secreta, si los sujetos son cooperativos o no, etc. 3. Cules son los requerimientos de almacenamiento de la aplicacin? Por ejemplo, si una aplicacin realiza el reconocimiento en un servidor remoto requerira un tamao de plantilla pequeo. 4. Qu tan rigurosos son los requerimientos de rendimiento? Por ejemplo, una aplicacin que requiere una gran certeza necesita un identificador biomtrico ms distintivo. 5. Qu tipos de identificadores biomtricos son aceptables para los usuarios? Diferentes identificadores son aceptables en aplicaciones instaladas en diferentes sitios geogrficos y demogrficos dependiendo de los estndares culturales, ticos, sociales, religiosos e higinicos de esa sociedad en especfico. Que un identificador sea aceptado en una aplicacin usualmente es un compromiso entre la sensibilidad de una comunidad a varias percepciones o tabes y el valor/conveniencia ofrecidos por el reconocimiento basado en biometra. A continuacin se brinda una breve introduccin a los identificadores biomtricos ms comunes: 1. ADN: El cido desoxirribonucleico es el cdigo nico unidimensional que identifica a una persona, excepto por el hecho de que los gemelos idnticos tienen idnticos patrones de ADN. Sin embargo, es actualmente utilizado mayormente en el contexto de las aplicaciones forenses para el reconocimiento de una persona.

34

Existen algunos factores que limitan el uso de este identificador en otras aplicaciones: a. Contaminacin y sensibilidad. Es fcil robar una pieza de ADN de un sujeto descuidado. b. Problemas de reconocimiento automtico en tiempo real. La tecnologa actual para la comparacin de cadenas de ADN requiere mtodos qumicos que involucran a un experto y no estn pensados para un reconocimiento en vivo y no invasivo. c. Problemas de privacidad, ya que estara disponible informacin sobre susceptibilidades de una persona a ciertas enfermedades a travs de su ADN y existe a nivel mundial la preocupacin de que el abuso del cdigo gentico pueda resultar en discriminacin, por ejemplo en la contratacin de empleados. 2. Oreja: Es conocido de que la forma de la oreja y que la estructura del tejido cartilaginoso del pabelln de la oreja son distintivos. Las tcnicas de

reconocimiento a travs de la oreja estn basadas en la comparacin de la distancias de algunos puntos del pabelln hasta un punto fijo en la oreja, aunque no se espera que estas caractersticas sean nicas para un solo individuo. 3. Rostro: El rostro es uno de los indicadores biomtricos ms aceptables ya que es uno de los ms comunes mtodos que los humanos utilizan para reconocerse en sus interacciones visuales. Adems, el mtodo de adquirir imgenes de la cara son no intrusivas. Ya que el reconocimiento a travs del rostro est ubicado dentro de las aplicaciones desatendidas, es un gran desafo el desarrollar tcnicas de reconocimiento que toleren los efectos de la edad, las expresiones faciales, ligeras variaciones en el ambiente, y variaciones en la pose de la cara con respecto a la cmara. 35

4. Termogramas del rostro, de la mano y de las venas de la mano: El patrn del calor irradiado por el cuerpo humano es caracterstico de cada cuerpo y puede ser capturado por una cmara infrarroja es una manera no intrusiva en lugar de una fotografa regular. Un sistema basado en Termogramas no tiene contacto con el usuario, no es invasivo, pero presenta grandes retos en ambientes no controlados donde superficies que emanen calor cerca del cuerpo, como calentadores de cuartos y tuberas de desfogue de maquinaria pueden afectar drsticamente a la fase de la adquisicin de la imagen. Los sensores infrarrojos son muy caros, lo que es un factor inhibitorio para usar esta tecnologa. 5. El andar: es la manera peculiar que tiene una persona, y es un indicador biomtrico complejo. El andar no es muy distintivo, pero es lo suficiente caracterstico para permitir la verificacin en aplicaciones de baja seguridad. Es una biomtrica comportamental y puede no permanecer invariante, especialmente sobre un largo periodo de tiempo, gracias a grandes fluctuaciones en el peso corporal, lesiones mayores que incluyan las articulaciones o el cerebro o a intoxicaciones o embriaguez. La adquisicin del andar es similar a adquirir fotos del rostro y por lo tanto puede ser un indicador aceptable. Ya que los sistemas basados en el andar utilizan una secuencia de video de una persona caminante para medir varios movimientos diferentes de cada articulacin, es bastante intenso para los sistemas computacionales. 6. La geometra de la mano y los dedos: Algunas caractersticas relacionadas con la mano humana son relativamente invariables y peculiares a un individuo. Los sistemas de adquisicin de la imagen requieren de la cooperacin del sujeto y captura vistas laterales y frontales de la palma colocada plana sobre un panel con los dedos extendidos. Los requerimientos representacionales de la mano son muy pequeos, de alrededor de nueve bytes, que es una caracterstica interesante para 36

sistemas que tienen ancho de banda y memoria limitados. Gracias a su limitada distincin, los sistemas basados en la geometra de la mano son utilizados para verificacin ya que no escalan bien a aplicaciones de identificacin. Los sistemas basados en la geometra de los dedos, que miden uno o dos nicamente, pueden ser preferidos gracias a su tamao compacto. 7. Iris: La textura visual del iris humano es determinado por el proceso morfogentico catico que se da durante el desarrollo embrionario y se supone que es distintivo para cada persona y cada ojo. Una imagen del iris es tpicamente capturada utilizando un proceso de no contacto, requiere de la cooperacin del usuario tanto para almacenar la imagen como para asegurarse de que la captura ha sido realizada adecuadamente. 8. Olor: Es conocido que cada objeto exuda un olor que es caracterstico a su composicin qumica y puede ser utilizado para distinguirlo de entre varios otros objetos. Un poco del olor que rodea a un objeto es soplado hacia un arreglo de sensores qumicos, cada uno sensible a un cierto grupo de componentes aromticos. Un componente del olor emitido por un cuerpo humano es distintivo a un individuo en particular. 9. Escaneo de la retina: la vasculatura retinal tiene una estructura muy rica y se supone que es caracterstica a cada individuo en cada ojo. Se supone que es el indicador biomtrico ms seguro ya que no es fcil de cambiar o replicar dicha vasculatura. La captura de la imagen requiere que la persona mire fijamente en un escner y fije su mirada en un punto especfico en el campo visual para que una parte determinada de la vasculatura retinal sea capturada. La adquisicin de la imagen involucra la cooperacin del sujeto, exige el contacto con el ojo y requiere de un esfuerzo consiente por parte del usuario. Todos estos factores pueden

37

revelar alguna condicin mdica, que es otro factor para que el pblico en general no acepte a esta tcnica. 10. Firma: La manera en que una persona firma su nombre es caracterstica a ese individuo. Aunque el firmar requiere el contacto y el esfuerzo con un instrumento de escritura, parece que es un sistema muy aceptado en muchas transacciones como mtodo de verificacin. La firma es un indicador biomtrico comportamental que cambia a travs del tiempo y que es influenciado por condiciones fsicas y emocionales. 11. Voz: La captura de la voz no es intrusiva y su impresin es un identificador biomtrico aceptable en casi todas las sociedades. La voz puede ser la nica tcnica de reconocimiento posible en aplicaciones que requieren hacerlo a travs del telfono. La voz no se espera que sea lo suficiente distintiva para permitir una identificacin de un individuo en bases de datos grandes de identidades, adems la voz es degradada por el micrfono, el canal de comunicacin y las caractersticas del digitalizador. La voz tambin es afectada por la salud de una persona, por el estrs, sus emociones, etc. Estos identificadores son comparados en la siguiente tabla, donde A significa alto, M para medio y B para bajo:

38

Permanencia

Rendimiento

Cuantitativo

Identificador Biomtrico

ADN Oreja Rostro Termograma facial Huella dactilar Andar Geometra de la mano Iris Olor Retina Firma Voz

A M A A M M M A A A B M

A M B A A B M A A A B B

A A M B A B M A A M B B

B M A A M A A M B B A M

A M B M A B M A B A B B

B A A A M A M B M B A A

B M A B M M M B B B A A

Tabla 1: Comparacin entre identificadores biomtricos.

Ntese que el reconocimiento de huellas dactilares tiene un buen balance entre todas las propiedades deseables. Cada humano posee huellas dactilares, con excepcin de aquellos que tienen una discapacidad relacionada con las manos. Las huellas digitales son muy distintivas; sus detalles son permanentes, aun cuando cambien de manera ligera temporneamente debido a cortes o golpes en la piel o a condiciones climticas. Los escneres en vivo para huellas digitales pueden capturar fcilmente imgenes de alta calidad. Sin embargo, este indicador biomtrico no es el indicado para aplicaciones de vigilancia ya que no se lo puede adquirir a distancia y sin el conocimiento del sujeto. Ya que las huellas digitales tienen una larga historia y en todo este tiempo han sido asociadas a la deteccin de criminales, tienen ste estigma, sin embargo esto poco a poco va cambiando con la gran demanda de aplicaciones para evitar fraudes que tengan que ver con robos de identidad.

Vulnerable

Aceptable

Distintivo

Universal

39

2.2. HUELLAS DACTILARES

2.2.1. HISTORIA9 Huellas dactilares humanas han sido descubiertas en un gran nmero de artefactos arqueolgicos e tems histricos. Aunque estos encuentros proveen evidencia que muestra que la gente conoca sobre la individualidad de las huellas digitales. No fue hasta el siglo diez y seis hasta cuando las tcnicas cientficas modernas para las huellas que fueron iniciadas. En 1684, el ingls Nehemiah Grew public su estudio cientfico reportando sus estudios sistemticos sobre la estructura de los poros, los surcos y los cantos de las huellas dactilares. A raz de aquello, un gran nmero de investigadores realizado un gran esfuerzo en los estudios sobre huellas dactilares. En 1788, una descripcin detallada de las formaciones anatmicas de las huellas dactilares en la cual fueron identificadas y caracterizadas un nmero de caractersticas de los cantos de las huellas. A inicios de 1809, Thomas Bewik inici a utilizar su huella dactilar como su marca personal, lo que se piensa que es uno de los hitos ms importantes en el estudio cientfico del reconocimiento de huellas dactilares. Ms tarde, en 1823, Purkinje propuso el primer esquema de reconocimiento de huellas digitales, que las clasificaba en nueve categoras de acuerdo a la configuracin de los cantos.

The history of fingerprints. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.onin.com/fp/fphistory.html

40

En 1880, Henry Fauld, sugiri cientficamente la individualidad de las huellas digitales basado en observaciones empricas. Mientras que Herschel aseguraba que l haba predicho el reconocimiento basado en huellas dactilares hacia ms de 20 aos. Estos encuentros establecieron los fundamentos del reconocimiento de huellas dactilares moderno. Terminando el siglo 19, Sir Francis Galton condujo en estudio extensivo de las huellas dactilares, e introdujo las caractersticas de las minucias para el emparejamiento de huellas dactilares en 1888. En 1899 se hizo un avance importante en el reconocimiento de huellas dactilares de la mano de Edward Henry, quien estableci en Sistema Henry para la clasificacin de huellas dactilares. Para inicios del siglo 20, las formaciones de las huellas estaban bien comprendidas, y los principios biolgicos de ellas son: 1. Los cantos y los surcos epidrmicos individuales tienen diversas caractersticas para diversas huellas digitales. 2. Los tipos de la configuracin son individualmente variables, pero varan dentro de los lmites que permiten una clasificacin sistemtica. 3. Las configuraciones y los detalles ms minuciosos de cantos y de surcos individuales son permanentes e invariables. El primer principio constituye el fundamento del reconocimiento de huellas dactilares y el segundo constituye el fundamento de la clasificacin de huellas digitales. A inicios del siglo 20, el reconocimiento de huellas dactilares era formalmente aceptado como un mtodo vlido de identificacin personal y se volvi en un estndar de rutina en las ciencias forenses. Las agencias de identificacin de huellas dactilares fueron

41

reproducindose a nivel mundial y se establecieron las bases de datos de huellas de criminales, por ejemplo, la divisin de identificacin de huellas digitales del FBI fue creada en 1924 con una base de datos de ms de ochocientas mil tarjetas que contenan huellas dactilares. Con la rpida expansin del reconocimiento de huellas dactilares en las ciencias forenses, las bases de datos se volvieron descomunales, que hacan que la identificacin manual sea completamente inviable. Por ejemplo el nmero total de las tarjetas (cada una contiene la impresin de cada uno de los diez dedos de una persona) con huellas digitales del FBI actualmente es superior a los dos cientos millones y sigue creciendo continuamente. Si diariamente se reciben miles de requerimientos, aun con un equipo de ms de 1300 expertos en reconocimiento de huellas dactilares no se podra dar abasto. Por esta razn, a inicios de la dcada de los 60, el FBI, el Home Office del Reino Unido y el Departamento de Polica de Paris iniciaron la investigacin para el desarrollo de sistemas de identificacin de huellas dactilares automticos basados en las observaciones de cmo los expertos humanos realizan el reconocimiento. Se encontraron tres problemas fundamentales en el desarrollo de este tipo de sistemas: la adquisicin, la extraccin de las caractersticas y el emparejamiento de estos patrones obtenidos; estos problemas fueron resueltos exitosamente, de tal manera que hoy en da cualquier departamento de polica contiene un sistema de identificacin de huellas dactilares, lo que ha mejorado la productividad operacional de las agencias de la ley y el orden. La tecnologa de reconocimiento de huellas dactilares ha crecido rpidamente, de tal manera que actualmente ya no es utilizada nicamente por agencias gubernamentales sino que se la usa en aplicaciones civiles, de hecho, los sistemas basados en el identificador biomtrico de la huella dactilar se ha vuelto tan popular que prcticamente se han convertido en un sinnimo para sistemas biomtricos.

42

2.2.2. FORMACIN DE LAS HUELLAS DACTILARES

Las huellas dactilares estn completamente formadas cuando el feto ha alcanzado los siete meses en su desarrollo, y las caractersticas de sus surcos y cantos no cambian a travs de la vida de un individuo, por lo que se vuelve un identificador biomtrico muy atractivo. Los organismos biolgicos, en general, son la consecuencia de la interaccin de los genes y el ambiente, se asume que el fenotipo es determinado nicamente por la interaccin de un genotipo especfico y un ambiente especfico. La apariencia fsica y las huellas dactilares son, en general, una parte del fenotipo de un individuo. La formacin de las huellas es similar al crecimiento de los capilares y los vasos sanguneos en el proceso de la angiognesis. Las caractersticas generales de las huellas dactilares emergen a la vez que la piel de las yemas de los dedos empieza a diferenciarse, este proceso de diferenciacin es iniciado por el crecimiento de los cojinetes de las palmas de las manos, los dedos, las plantas de los pies y los dedos de los pies. Sin embargo, el flujo de los fluidos amniticos alrededor del feto y su posicin en el tero cambian durante el proceso de diferenciacin, as, las clulas en la yema de los dedos crecen en un micro ambiente que es ligeramente distinto de mano a mano y de dedo a dedo, por lo que se puede asegurar que los ms ligeros detalles de la huella dactilar son determinados por este micro ambiente cambiante. Entonces, una mnima diferencia en este ambiente es amplificado por el proceso de diferenciacin de las clulas, y existen tantas variaciones durante la formacin de las huellas dactilares que sera virtualmente imposible para dos de ellas ser exactamente iguales. Es importante mencionar, sin embargo, que ya que las huellas dactilares son diferenciadas desde los mismos genes no son completamente aleatorias en sus patrones.

43

Por definicin, los gemelos idnticos no pueden ser distinguidos a travs de su ADN; adems, muchas de las caractersticas fsicas como el tipo del cuerpo, la voz, el rostro son tpicamente similares en este caso, por lo que el reconocimiento automtico basado en el rostro o la geometra de la mano fallarn para diferenciarlos. Aunque los mnimos detalles en las huellas digitales de gemelos idnticos son diferentes, existen varios estudios que han demostrado una correlacin significante en la clase de las huellas dactilares de los dedos de estos gemelos. En estudios dermatolgicos se ha encontrado que la mxima diferencia gentica de huellas digitales est entre individuos de diferentes razas. Personas que no son relacionadas de la misma raza tienen una muy pequea similitud genrica en sus huellas dactilares, los padres y sus hijos tienen algunas similitudes ya que comparten la mitad de sus genes, los hermanos tienen ms similitud, y la mxima similitud se encuentra en gemelos monocigticos, que es la relacin gentica ms cercana.

2.2.3. INDIVIDUALIDAD DE LAS HUELLAS DACTILARES Aunque las palabras huellas dactilares son percibidas popularmente como sinnimo de individualidad, la unicidad de ellas no se ha establecido como un hecho observacin emprica. Con el hecho de que cada vez se utiliza ms a este identificador biomtrico, ha ido creciendo una preocupacin pblica sobre la base cientfica de la individualidad de las huellas dactilares. Dar una legitimidad errnea a estas observaciones tendra consecuencias desastrosas, especialmente si las huellas dactilares son utilizadas de manera ubicua para establecer un reconocimiento positivo de personas por razones de eficiencia, conveniencia, y confiabilidad en la pelea contra el crimen de fraude de identidad. Adems, los sistemas 44 sino por

automatizados de emparejamiento de huellas dactilares no utilizan la informacin discriminatoria entera de la huella, sino nicamente una representacin extrada por una mquina no supervisada por expertos en el reconocimiento de huellas dactilares humanas. La cantidad de la informacin distintiva disponible en una huella digital tambin ha sido cuestionada, por ejemplo en un artculo publicado en el New York Times por Simon Smith, el autor aseguraba que las huellas dactilares podran ser nicas en el sentido de que todos los objetos naturales pueden ser diferenciados si son examinados en suficiente detalle. Argumenta adems que la unicidad podra ser vlida cuando las impresiones completas sean comparadas, pero no con pequeas porciones de un dedo. En otro artculo publicado en el Wall Street Journal por D. Costello, se especula que las huellas dactilares de gemelos idnticos son similares en un 95%. Adems se menciona que gemelos idnticos podran pasar muchas de las pruebas biomtricas, incluyendo a las de pruebas dactilares. La unicidad de las huellas dactilares entonces, no es una conclusin ya obtenida y probada ni ha sido estudiada sistemticamente. Obviamente, existe un enorme inters pblico es este tpico crucial en seguridad.

45

2.2.4. DETECCIN Y ALMACENAJE DE LA HUELLA DACTILAR Basado en el modo de la adquisicin, la imagen de una huella dactilar puede ser clasificada como fuera de lnea o escaneada en vivo10. Una imagen fuera de lnea es tpicamente pintar con tinta la yema del dedo y creando una impresin en el papel. La impresin luego es digitalizada al escanear el papel utilizando un escner ptico o una cmara de alta calidad y resolucin. Una imagen escaneada en vivo es adquirida al colocar la yema del dedo directamente en el sensor que es capaz de digitalizar la huella dactilar a su contacto. Un tipo especial de imgenes fuera de lnea, que es extremadamente importante en las aplicaciones forenses, son las llamadas huellas dactilares latentes que se encuentran en las escenas de crimen. La naturaleza aceitosa de la piel da como resultado la impresin de una huella en una superficie que haya sido tocada por el dedo. Los parmetros principales que caracterizan una imagen digital de una huella dactilar son: La resolucin. El rea. El nmero de pxeles. Exactitud geomtrica. Contraste Distorsin geomtrica.

10

About Fingerprint Scanning. En lnea. Internet 10 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/fingerprint_articles/fingerprint_1.html

46

Para maximizar la compatibilidad entre imgenes digitales de huellas dactilares y para asegurar una buena calidad de las impresiones adquiridas los Servicios informativos criminales de la justicia de los EE.UU. (el servicio ms grande del FBI) publicaron un conjunto de especificaciones que regulan la calidad y el formato de las imgenes de huellas dactilares. Muchos de los dispositivos comerciales para escanear huellas dactilares, diseados para aplicaciones de seguridad no gubernamental no cumplen con las especificaciones del FBI, pero son ms amigables al usuario, compactos y baratos. Existen varios mecanismos para la adquisicin de huellas dactilares que pueden ser utilizados para detectar los cantos y los valles presentes en la huella dactilar. En la siguiente figura se muestran ejemplos de imgenes de huellas dactilares.

Ilustracin 2: Ejemplos de huellas dactilares obtenidas a travs de varios mtodos.

En la parte (a) se muestra una huella obtenida por un escner basado en tecnologa FTIR; en la (b) una imagen obtenida con un escner basado en corriente elctrica; en la (c) una

47

imagen obtenida con un escner piezoelctrico; en (d) una imagen obtenida con un escner termal; en la (e) se muestra una impresin con tinta; y en la (f) una huella dactilar latente. Aunque los escneres pticos tienen una larga historia, los nuevos sensores de estado slido estn ganando una gran popularidad gracias a su tamao compacto y la facilidad de colocarlos en dispositivos como laptops, celulares, esferogrficos y otros dispositivos electrnicos comunes en la vida moderna. Almacenar imgenes sin procesar de huellas dactilares puede ser problemtico para sistemas grandes. En 1995 el tamao del archivo de tarjetas del FBI contena cerca de dos cientos millones de tems, e iba aumentando a una razn de entre treinta y cincuenta mil tarjetas nuevas por da. Aunque la digitalizacin de las tarjetas de huellas dactilares pareca ser la opcin ms obvia, el archivo digital resultante podra resultar enorme. De hecho, cada tarjeta al ser digitalizada a una resolucin de 500 dpi requiere alrededor de 10 MB de espacio de almacenamiento y realizando una simple multiplicacin por los dos cientos millones conduce a un tamao total de ms de dos mil terabytes para almacenar toda la base de datos. Entonces se ve necesaria obtener de manera urgente una tcnica efectiva de compresin. Desafortunadamente ninguno de los mtodos bien conocidos de compresin de imgenes eran satisfactorios, por lo que se obtuvo una nueva tcnica de compresin llamada Wavelet Scalar Quantization (WSQ) que se convirti rpidamente en el estndar del FBI para la compresin de imgenes de huellas dactilares de 500 dpi.

48

2.2.5. REPRESENTACIN DE LA HUELLA DIGITAL Y EXTRACCIN DE SUS CARACTERSTICAS El problema de la representacin constituye la esencia en el diseo de los sistemas de reconocimiento de huellas dactilares y tiene implicaciones de gran envergadura para el resto del sistema.11 Los valores de la intensidad del pxel en la imagen de la huella dactilar son tpicamente invariantes a travs del tiempo de captura y existe la necesidad de determinar las caractersticas salientes de la imagen de la huella digital de entrada que puede discriminar entre identidades as como se mantiene invariante para un individuo dado. As, el problema de la representacin est en determinar un espacio de la medida en el que las imgenes de las huellas que pertenecen al mismo dedo forman un clster compacto y aquellas que pertenecen a diferentes dedos ocupan diferentes porciones del espacio (variaciones intra-clases bajas y variaciones intra-clases altas). Una buena representacin de una huella dactilar debe tener las siguientes caractersticas: 1. Saliencia: significa que una representacin debe contener informacin distintiva sobre la huella dactilar. 2. Conveniencia: que significa que la representacin puede ser fcilmente extrada, almacenada de una manera compacta, y ser til para el emparejamiento. Estas propiedades no estn correlacionadas generalmente. Una representacin saliente no es necesariamente conveniente. Adicionalmente, en algunas aplicaciones biomtricas el almacenamiento es importantsimo, por ejemplo, en una tarjeta inteligente existen alrededor de 2 KB disponibles para el almacenamiento, por lo que la representacin necesita ser extremadamente pequea.

11

Fingerprint Identification - What You Need to Know. En lnea. Internet 11 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/fingerprint_articles/fingerprint_4.html

49

Las representaciones basadas en la imagen, constituidas por la informacin cruda de la intensidad de los pxeles, son frecuentes entre los sistemas de reconocimiento que utilizan emparejamiento ptico y emparejamiento basado en la correlacin. Sin embargo, la utilidad de los sistemas que utilizan este tipo de esquemas de representacin debe ser limitada por los factores como la variacin del brillo, la variacin de la calidad de imagen, cicatrices, y otras distorsiones que puedan estar presentes en la imagen. Adems, una representacin basada en la imagen requiere una cantidad considerable de espacio para su almacenamiento. Por otro lado, una representacin de este tipo preserva el mximo monto de informacin, hace pocas asunciones sobre el dominio de la aplicacin, y tiene el potencial para ser muy robusta para una amplia variedad de imgenes de huellas dactilares. Por ejemplo, es extremadamente difcil extraer cualquier caracterstica de un dedo que este desprovisto de la estructura de cantos (un dedo degenerado). El patrn de una huella dactilar, cuando es analizada a diferentes escalas exhibe diferentes tipos de caractersticas. A un nivel global, el flujo de las lneas de los cantos forma un patrn similar al que se muestra en la siguiente figura.

50

Ilustracin 3: Tipos de patrones comunes para huellas dactilares.

Se muestra en (a) un lazo a la izquierda; en (b) un lazo a la derecha; en (c) un crculo; en (d) un arco; y en (e) un arco en forma de tienda. Los puntos singulares, llamados lazos y delta (mostrados como cuadrados y tringulos) son una especie de puntos de control alrededor de los cuales las lneas de los cantos estn envueltas. Los puntos singulares y la lnea que forman los cantos son muy importantes para la clasificacin e indexamiento de huellas digitales, pero su distincin no es suficiente para un emparejamiento adecuado. La forma externa de la huella dactilar, la orientacin de la imagen y su frecuencia tambin pertenecen al conjunto de caractersticas que pueden ser detectadas al nivel global. En un nivel local, un total de 150 diferentes caractersticas de cantos locales, llamadas detalles minuciosos, se han identificado. Estas caractersticas locales no estn distribuidas uniformemente, y muchas de ellas dependen de las condiciones de la impresin y la calidad de las huellas dactilares. Las dos ms prominentes

51

caractersticas de los cantos se llaman minucias, y son: la terminacin de los cantos y la bifurcacin de los cantos. Una terminacin est definida como el punto donde el canto termina abruptamente. Una bifurcacin es donde el canto se parte en cantos ramas. Las minucias son generalmente estables y robustas a prcticamente cualquier condicin de impresin. Aunque una representacin basada en minucias est caracterizada por una alta saliencia, la obtencin automtica de ellas puede ser problemtica. A un nivel muy fino, los detalles intra-cantos pueden ser detectados. Estos son esencialmente los poros del sudor del dedo cuya posicin y forma son considerados altamente distintivos. Sin embargo el poder extraer los poros es posible nicamente en imgenes de huellas dactilares de extremadamente alta calidad, por ejemplo de 1000 dpi.

2.2.6. EMPAREJAMIENTO DE LA HUELLA DACTILAR El emparejar de manera confiable imgenes de huellas dactilares es un problema extremadamente complicado, principalmente debido a la gran variabilidad de diferentes impresiones de un mismo dedo12. Los factores principales para estas variaciones intra-clase son: desplazamiento, rotacin, superposicin parcial, distorsin no lineal, presin variable, condiciones de cambio de piel, ruido y errores en la extraccin de caractersticas. Por lo tanto, las huellas dactilares de un mismo dedo pueden algunas veces verse muy diferentes mientras que las huellas de dedos distintos podran parecer muy similares.

12

Fingerprint Identification - What You Need to Know. En lnea. Internet 11 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/fingerprint_articles/fingerprint_4.html

52

Los expertos humanos en huellas dactilares, para decir que dos huellas pertenecen al mismo dedo evalan algunos factores: Acuerdo global de la configuracin del patrn, que significa que dos huellas digitales deben ser del mismo tipo. Concordancia cualitativa, que requiere que los detalles minsculos

correspondientes sean idnticos. Factor cuantitativo, que especifica que al menos un cierto nmero de detalles minsculos correspondientes deben ser encontrados (En Estados Unidos son al menos 12). Detalles minsculos correspondientes, que deben ser idnticamente

interrelacionados.

En la prctica, protocolos complejos han sido definidos para el emparejamiento de huellas dactilares y un flujo grama muy detallado est disponible para guiar a los examinadores de huellas en el emparejamiento manual. El emparejamiento automtico no sigue las mismas guas necesariamente, de hecho, aunque el emparejamiento automtico basado en minucias est inspirado en el procedimiento manual, se han hecho un gran nmero de acercamientos a travs de los ltimos cuarenta aos, y muchos de ellos lo han sido para ser implementados en una computadora explcitamente.

53

Una categorizacin de los acercamientos al emparejamiento de huellas dactilares es13: 1. Emparejamiento basado en correlacin: dos imgenes de huellas dactilares son superpuestas y la correlacin entre los pxeles correspondientes es calculada para diferentes posiciones, por ejemplo rotndolas. 2. Emparejamiento basado en minucias: las minucias son extradas de dos huellas dactilares y almacenadas como conjuntos de puntos en un plano bidimensional. Este tipo de emparejamiento esencialmente consiste en encontrar el alineamiento entre una plantilla y los conjuntos de entrada de minucias, lo que da como resultado en un mximo nmero de pares de minucias. 3. Emparejamiento basado en cantos: la extraccin de minucias es difcil en imgenes de huellas dactilares de baja resolucin, mientras que otras caractersticas del patrn de cantos de la huella pueden ser extradas de manera ms confiable, an cuando su distincin sea generalmente baja. En un ambiente operativo complejo, es crtico el poder identificar un conjunto de presunciones vlidas sobre las cuales el diseo del emparejador de huellas digitales deba ser basado, a menudo hay una opcin entre si es ms eficaz ejercer ms restricciones incorporando un mejor diseo de ingeniera o construir una funcin ms sofisticada de la semejanza para la representacin dada. Por ejemplo, en un emparejador de huellas dactilares, se puede restringir la distorsin elstica en conjunto y disear el emparejador en una presuncin rgida de la transformacin o permitir distorsiones arbitrarias y acomodar las variaciones en las imgenes de entrada utilizando un emparejador inteligente.

13

Fingerprint Matching - Dr. Anil K. Jain's Lecture. En lnea. Internet 15 de Agosto del 2006. Disponible WWW http://www.pims.math.ca/industrial/2002/mitacs-agm/jain/

54

El diseo del algoritmo que empareja necesita establecer y caracterizar un modelo realista de las variaciones entre las representaciones de pares acoplados.

2.2.7. CLASIFICACIN E INDEXAMIENTO DE HUELLAS DACTILARES Grandes volmenes de huellas dactilares son recolectadas y almacenadas cada da en un amplio rango de aplicaciones, que incluyen las forenses, control de acceso y registro de licencias de conducir. La identificacin automtica basada en huellas dactilares requiere que la huella de entrada sea emparejada con un gran nmero de registros almacenados en una base de datos14. Para reducir el tiempo de bsqueda y la complejidad computacional, es deseable clasificar estas huellas de una manera adecuada y consistente de tal manera que una huella e entrada necesite ser emparejada nicamente con un subconjunto de los registros de la base de datos. La clasificacin de huellas dactilares es una tcnica utilizada para asignar una huella a uno de varios tipos pre establecidos. La clasificacin puede ser vista como un emparejamiento de alto nivel de las huellas dactilares. Una huella dactilar de entrada primero es emparejada con uno de los tipos pre establecidos y luego es comparada con el subconjunto de la base de datos que corresponde a ese tipo de huellas digitales. Por ejemplo, si la base de datos est dividida en cinco clases, un clasificador de huellas obtiene dos clases (primaria y

14

Fingerprint Indexing Based on Singular Point Correlation. En lnea. Internet 15 de Agosto del 2006. Disponible WWW http://www.dcs.qmul.ac.uk/~phao/Papers/ICIP05ZC.pdf#search=%22fingerprint%20indexing%22

55

secundaria) con una alta exactitud, entonces el sistema de identificacin nicamente tendr que buscar en dos de las cinco clasificaciones, decreciendo as, en principio, el espacio de bsqueda. Desafortunadamente, solo un limitado nmero de categoras de huellas dactilares han sido identificadas, la distribucin de las huellas en estas categoras no es uniforme y existen muchas huellas ambiguas cuya su membresa exclusiva no puede ser no puede ser establecida de manera confiable ni siquiera por expertos humanos. De hecho, la definicin de cada categora es bastante compleja y ambigua, por lo que un humano necesita un largo periodo de experiencia para alcanzar un nivel satisfactorio de rendimiento en la clasificacin de las huellas dactilares. Para resolver este problema, algunos investigadores han propuesto mtodos basados en clasificacin continua o en otras tcnicas de indexacin. En la clasificacin continua, las huellas dactilares no son divididas en clases que no se sobreponen, pero cada huella es caracterizada con un vector numrico resumiendo estas caractersticas principales.

2.2.8. EL DISEO DE SISTEMAS DE RECONOCIMIENTO DE HUELLAS DACTILARES Los mayores temas a tratarse cuando se disea un sistema de reconocimiento de huellas dactilares son: 1. Definir el modo de trabajo entre verificacin o identificacin. 2. Escoger los componentes de hardware y software y hacer que trabajen juntos. 3. Definir la manera de tratar las excepciones y las imgenes de calidad pobre. 4. Definir polticas efectivas de administracin y optimizacin. Como se ha mencionado, un sistema basado en huellas dactilares puede operar en un modo de verificacin o de identificacin. Como una regla emprica, cuando el nmero de

56

usuarios es grande (mayor a mil) se recomienda que el modo de operacin sea el de verificacin a menos que la identificacin sea estrictamente necesaria. De hecho, es significantemente ms difcil disear un sistema de identificacin que uno de verificacin. Para un sistema de identificacin, son crticas la velocidad y la exactitud. En el caso de que no estn disponibles mecanismos ni de categorizacin ni de recuperacin inteligente, este tipo de sistemas necesitan explorar la base de datos completa para establecer una identidad. Si el diseador/integrador del sistema tambin es el desarrollador de los algoritmos para la extraccin de las caractersticas y del emparejamiento (y eventualmente de la clasificacin y la recuperacin), entonces es seguro que tiene los conocimientos necesarios para combinar todas las piezas y poder seleccionar el escner de huellas dactilares ptimo y la plataforma computacional. En el campo biomtrico, los desarrolladores e integradores de sistemas y aplicaciones no son siempre los productores de dispositivos de hardware y software base, y por lo tanto, se debe tomar mucho cuidado cuando se seleccionan los componentes bsicos de hardware y software. El diseador del sistema debe tomar en cuenta los siguientes factores bsicos: Tecnologa probada. Debe contestar a las siguientes preguntas: Los componentes de hardware y software han sido probados por terceros? Los resultados de las pruebas estn disponibles? El vendedor est dispuesto a probar de alguna manera que las caractersticas que afirma que tienen sus productos son reales? Interoperabilidad del sistema y estndares. El sistema es compatible con nuevos estndares? El software es compatible con todas las plataformas y sistemas operativos de inters?

57

Compensacin costo/funcionamiento: depende fuertemente de los requerimientos de la aplicacin. La solucin ms barata no necesariamente sera la mejor opcin; la biometra no es infalible, y el xito o fracaso de una aplicacin generalmente depende de en que tanto las expectativas del cliente se cumplen.

Documentacin disponible, ejemplos y soporte.

Los vendedores de los productos deben proveer un SDK (Software Development Kit) en forma de libreras para uno o ms sistemas operativos. Estas libreras tpicamente incluyen una serie de primitivas que permiten diferentes tareas que deben ser realizadas, por ejemplo, la adquisicin, extraccin de caractersticas, emparejamiento, almacenamiento de las plantillas, etc. El diseador de la aplicacin generalmente est a cargo de desarrollar rutinas especficas para: Implementacin de las etapas de inscripcin. Almacenamiento y recuperacin de plantillas e informacin de un usuario en ambientes con bases de datos centralizadas o distribuidas. Definicin del orden de bsqueda de los usuarios en una aplicacin de identificacin. Por ejemplo, las plantillas de los usuarios que ms utilizan el sistema deberan ser barridas antes que las de los usuarios que casi no lo usan. Definicin de polticas y mdulos de administracin para permitir que la administracin defina el comportamiento del mismo. Esto incluye, configuracin de las opciones de seguridad y almacenamiento de bitcoras sobre intentos de acceso. Un punto importante cuando se disea un sistema biomtrico basado en huellas dactilares es el decidir desde el inicio cmo se va a tratar a los usuarios cuyas huellas son muy pobres. Aunque el porcentaje de usuarios con huellas no utilizables es muy pequeo, ellos no

58

pueden ser ignorados, especialmente en aplicaciones a gran escala. Existen algunas opciones para lidiar con estos usuarios: En la etapa de inscripcin, escoger el dedo que tenga una mejor calidad y eventualmente registrar ms dedos o ms instancias del mismo dedo. Definir umbrales de seguridad dependientes del usuario. El sistema debera no ser tan estricto para las personas con huellas no utilizables, pero no cambiar en nada para usuarios comunes. Utilizar un identificador biomtrico adicional. Utilizar un identificador no biomtrico adicional. Por ejemplo, utilizar una clave que ser frecuentemente cambiada. La administracin del sistema y su optimizacin tambin son temas muy importantes. Un administrador debe instruir brevemente a los usuarios la primera vez que vayan a utilizar el sistema, y, en particular, familiarizarlos con el dispositivo de escaneo. Un registro o inscripcin atendido es preferible para chequear la calidad de la entrada, seleccionar el mejor dedo, y eventualmente crear un umbral de seguridad para el usuario, si la opcin est disponible. La administracin tambin est en cargo de la configuracin del umbral de seguridad global, controlando el estado de los dispositivos de adquisicin y monitorear los intentos de acceso.

59

2.2.9. ASEGURAR UN SISTEMA DE RECONOCIMIENTO DE HUELLAS DACTILARES Mantener la integridad de un sistema de reconocimiento de huellas dactilares es crtico y requiere poder resolver los fraudes que involucran lo siguiente: Repudio: los usuarios niegan haber accedido al sistema. Coercin: los usuarios afirman haber sido forzados dentro del sistema. Contaminacin: adquisiciones errneas de huellas dactilares no asociadas con el usuario. Circunvencin: un usuario no autorizado obtiene acceso al sistema ilegtimamente.

Los temas de seguridad aseguran que los intrusos no puedan tener acceso a informacin o medidas individuales, por ejemplo, obtener la informacin de una huella dactilar de la base de datos e insertar nuevas huellas falsas. Nos aseguran adems que un intruso no pueda presentarse al sistema como otro usuario al insertar electrnicamente (ataque del tipo replay) medidas biomtricas viejas y obtenidas fraudulentamente, por ejemplo levantar huellas dactilares de manera clandestina de superficies. Las seguridades en el acceso pueden algunas veces involucrar la proteccin fsica de los datos o la deteccin de accesos fsicos fraudulentos a los datos. Cuando un sistema y/o sus canales de comunicacin son vulnerables y brindan un acceso fsico fcil, entonces son necesarios los mtodos criptogrficos para proteger la informacin. Un mtodo tpico para proteger la informacin biomtrica sigue la corriente principal de las investigaciones en seguridad: se encripta los datos de la huella dactilar utilizando varios mecanismos criptogrficos estndares. Aunque muchas tecnologas estndares de encriptacin pueden ser aplicadas independientemente del identificador biomtrico, se han inventado algunas tcnicas especficas para huellas dactilares. Por ejemplo, existe un

60

sistema muy parecido a DES que se pasa en aplicar la transformada de Fourier a las huellas dactilares. Aplicar marcas de agua invisibles a las imgenes de las huellas dactilares puede asegurar a los administradores de la base de datos que todas las imgenes almacenadas son autnticas y que no han sido modificadas o forzadas por un intruso en casos en que la biometra se necesita para inspeccin visual sin haber tenido que desencriptar el mensaje codificado para estas operaciones. Un requerimiento muy importante en este caso es que las imgenes con marcas de agua no interfieran con la extraccin y el emparejamiento de las caractersticas. Estos mecanismos de proteccin reducen el riesgo de inserciones no autorizadas de datos falsos en la base de datos. Algunos mtodos para resistir los ataques del tipo replay tambin contienen estrategias criptogrficas, que se basan en introducir mecanismos sensitivos al tiempo/sesin para autenticar la fuente/destino de la transmisin. Algunos sistemas biomtricos actualizan sus representaciones de las plantillas para adaptarse a la naturaleza variable del identificador biomtrico. Que tan bien se pueda adivinar una huella dactilar introducida por fuerza bruta depende la informacin invariante en las huellas y en el nmero de intentos que tpicamente se ofrece al usuario. Los ataques de negacin de servicio pueden ser particularmente problemticos para cualquier sistema, sea biomtrico o no. Un sistema biomtrico usualmente presenta vulnerabilidades adicionales en este aspecto por la naturaleza de los sensores que utiliza y debido a los requerimientos de ancho de banda en el caso de servicios de reconocimiento centralizados. Los sensores biomtricos son usualmente muy sensibles y frgiles, algunos escneres en vivo involucran la obtencin ptica de imgenes y son fciles de romper. Los

61

sensores de estado slido pueden ser daados usando una descarga elctrica maliciosa. Todos los sensores que requieren contacto ptico pueden quedar inservibles al raspar los lentes. Ahora se encuentran en desarrollo algunos sensores que no necesitan de contacto o ultrasnicos, que podran permitir el diseo de lectores biomtricos ms robustos. Un punto importante en la seguridad de los sistemas biomtricos es el poder identificar que se ha ingresado un identificador biomtrico vivo, es decir, identificar si se ha puesto un dedo o un guante de ltex que en la punta de un dedo tiene una huella dactilar vlida creada fraudulentamente. Esto se lo podra lograr utilizando algn signo vital como el pulso o la temperatura, que si bien no son distintivos son comunes para toda la poblacin. La objecin ms importante a los sistemas biomtricos desde un anlisis de seguridad est en el reemplazo de llaves. Qu sucede cuando una medida biomtrica ha sido comprometida? Aunque en el escenario del uso de huellas dactilares, 10 dedos ofrecen varias oportunidades para el reemplazo de la llave, el nmero finito de opciones no es aceptable en muchas situaciones.

2.2.10. APLICACIONES DE LOS SISTEMAS DE RECONOCIMIENTO DE HUELLAS DACTILARES El reconocimiento de huellas dactilares es una tecnologa que ha evolucionado rpidamente que ha sido ampliamente utilizado en aplicaciones forenses como reconocimiento de criminales y seguridad en las prisiones, y tiene un gran potencial para ser adoptado en un amplio rango de aplicaciones civiles, tal y como se muestra en la siguiente tabla:

62

Aplicaciones Forenses Identificacin de cuerpos. Investigacin criminal. Identificacin de terroristas. Determinacin de paternidad. Nios desaparecidos.

Aplicaciones Gubernamentales Tarjeta de identificacin general. Facilidades correccionales. Licencias de conducir. Seguridad social. Desembolsos de bienestar social o seguridad social (bono a la pobreza). Control de fronteras. Control de pasaportes.

Aplicaciones Comerciales Ingreso a redes computacionales. Seguridad de datos electrnicos. Comercio electrnico. ATM. Tarjetas de crdito. Control de acceso fsico. Telfonos celulares. PDAs. Administracin de historias mdicas. Educacin a distancia.

Tabla 2: Aplicaciones de un sistema de reconocimiento de huellas dactilares.

Las aplicaciones de seguridad de sistemas y de computadoras en red, como la autenticacin de usuarios y acceso a bases de datos a travs de hacer una conexin remota, son reas de aplicacin muy importantes para el reconocimiento de huellas dactilares. Las aplicaciones de comercio electrnico y banca electrnica tambin son reas emergentes para la aplicacin de la biometra gracias al rpido progreso en las transacciones electrnicas. Estas aplicaciones incluyen transferencias electrnicas de fondos, seguridad en ATMs (cajeros automticos), cambio de cheques, seguridad en las tarjetas de crdito, seguridad en tarjetas inteligentes, y muchas otras. Existen otras aplicaciones en produccin actualmente a nivel mundial, como el desembolso de bonos de bienestar social que ya ha dado resultados en ahorro de tiempo y dinero ya que se puede atender ms rpidamente a los usuarios y con una mayor seguridad. Otro

63

proyecto exitoso es el sistema basado en la geometra de la mano llamado INSPASS que permite a los viajeros evitar el chequeo del pasaporte al pasar por un lector biomtrico. Mientras que la tecnologa de huellas dactilares vaya madurando, ir aumentando su interaccin con el mercado, la tecnologa y las aplicaciones. Se espera que esta interaccin sea influenciada por el valor agregado que brinda esta tecnologa, la sensibilidad de la poblacin y la credibilidad de los proveedores del servicio. Es todava muy temprano para predecir cundo y cmo la tecnologa basada en huellas dactilares vaya a evolucionar y con qu aplicaciones se vaya a relacionar, pero es seguro que el reconocimiento basado en huellas va a tener una profunda influencia en la forma en la manera en que viviremos nuestras vidas en un futuro.

64

2.3. RECONOCIMIENTO DE PATRONES

Los patrones en los datos biolgicos contienen conocimiento, si tan solo se lo descubre. Es decir, el poder discriminar los patrones puede permitir la identificacin de un individuo por la voz, su escritura, sus huellas dactilares, imgenes de su rostro, etc. Pero al reconocimiento de patrones tambin se lo puede utilizar en la identificacin de blancos militares basado en radar, seales infrarrojas y/o imgenes obtenidas de un video. Los patrones existen en rastreos electromagnticos de alta frecuencia de cualquier tipo de qumicos (incluidos los corporales y el ADN). Las posibilidades abundan para el uso de reconocimiento de patrones, por ejemplo, en datos geolgicos, climticos y meteorolgicos. Adems en datos como personalidad, datos culturales, informacin histrica, datos espectrales o electromagnticos, as como imgenes microscpicas de clulas o macroscpicas de regiones de la tierra obtenidas desde un satlite. El concepto de clasificacin envuelve al aprendizaje de las igualdades y diferencias de los patrones que son abstracciones de instancias de objetos en una poblacin de objetos no idnticos. La asociacin de los patrones y sus causas son es la piedra angular en la que la pared del conocimiento cientfico est basada.

65

2.3.1. LOS PROBLEMAS DEL RECONOCIMIENTO DE PATRONES 2.3.1.1. Reconocimiento vs. Clasificacin Los humanos son capaces de reconocer el rostro de un amigo entre miles de personas, los caracteres y las palabras en una pgina escrita, voces conocidas, melodas favoritas, la esencia de su fruta favorita, la textura de la corteza de un rbol, la forma de las hojas, el significado contextual de ciertas palabras en una frase y se podra continuar con muchos ms ejemplos. Los sentidos pre procesan las seales como un sonido u ondas de luz que han sido moduladas (transformadas de alguna manera a travs de la interaccin con algn objeto que imprimi informacin en ellas). Las seales moduladas pre procesadas pasan, entonces, por una decisin que se compara al reconocimiento del objeto. Este procesamiento detecta (discrimina) diferencias muy sutiles en la modulacin de las seales para realizar el reconocimiento. En este punto el patrn pasar a ser una primitiva. Cuando se determina que un objeto de la poblacin P pertenece a la sub poblacin conocida S, entonces decimos que se ha realizado el reconocimiento de patrones. El reconocimiento de un objeto individual como una clase nica se llama identificacin. La clasificacin es el proceso de agrupamiento de objetos en clases (sub poblaciones) de acuerdo a sus similitudes percibidas. Un sistema aprende (aprendizaje) cuando graba su experiencia y esto causa que su comportamiento cambie. Este es un proceso anti entrpico que acumula y concentra la experiencia en modificaciones internas de un sistema. Los humanos aprenden a travs de la experiencia al acumular reglas en formas variadas como asociaciones, tablas, desigualdades, ecuaciones, relaciones, estructuras de datos, implicaciones lgicas, etc. La

66

clasificacin es una forma de aprendizaje en la que se induce las clases que son consecuentes de atributos antecedentes. Por otro lado, el razonamiento es un proceso en el que se aplican reglas generales, ecuaciones, relaciones y otras tcnicas a una coleccin de datos inicial o hechos, para deducir un resultado o una decisin. El reconocimiento es una forma de razonamiento, mientras que la clasificacin es una forma de aprendizaje.

2.3.1.2. El proceso de Reconocimiento En la siguiente figura se representa las sub poblaciones S1, , S4 de una poblacin P de objetos no idnticos, junto con el proceso que reconoce un objeto e ejemplo.

Ilustracin 4: Proceso de reconocimiento de un objeto.

67

Las caractersticas de un objeto son detectadas o medidas para formar un vector de patrones que es transformado en un conjunto de caractersticas reducido, y el objeto es reconocido por sus caractersticas por un reconocedor. Supongamos que { mi : i = 1, , P} son variables para la medicin de patrones que se aplicar a objetos seleccionados de P. Un extractor de caractersticas T transformar el vector de patrones m=(m1, , mP) en un vector de caractersticas x=(x1, , xN)=T(m). Un reconocedor de patrones es un sistema al cual se le pasa como entrada un vector de caractersticas, y que opera en el mismo para producir una salida que es un nico identificador (un nombre, un nmero, un cdigo, un vector, etc.) asociado con la clase a la que pertenece el objeto. En un sentido ms amplio, cada objeto individual es una clase atmica, es decir que no tiene sub clases, entonces el reconocimiento incluye a la identificacin. El proceso de reconocimiento de patrones descrito debe ser concreto, es decir, el reconocimiento debe ser basado en mediciones de atributos fsicos. De manera formal, supngase una poblacin P dada de objetos no idnticos donde cada uno est representado por un vector de medidas de patrones N0-dimensional (o una cadena de smbolos o una estructura de datos). Estos, usualmente sern convertidos en un conjunto de vectores de caractersticas N-dimensionales. Entonces, se debe considerar a P como un conjunto de vectores de caractersticas N dimensionales. Yendo ms all, supngase que P esta particionado en clases de equivalencia desconocida S1, , SK. El problema de la clasificacin es: decidir si mltiples vectores de caractersticas pertenecen o no a la misma clase de equivalencia. El problema de reconocimiento es: decidir si cualquier vector de caractersticas dado es equivalente a un vector ejemplar (prototipo, arquetipo,

68

representante, plantilla), o conjunto de dichos vectores ejemplares, que representan una clase.

2.3.2. UN ACERCAMIENTO AL RECONOCIMIENTO Y A LA CLASIFICACIN 2.3.2.1. Una clasificacin de metodologas Las metodologas para el reconocimiento y la clasificacin pueden ser categorizadas, aunque existen caractersticas en comn. La primera categora es el rea histrica, llamada Reconocimiento de patrones estadstico. Aparece cuando a R. A. Fisher, en 1936, le solicitaron ayuda para clasificar crneos en sub poblaciones. Su solucin utiliz mediciones de atributos como el ancho, y las relaciones entre el ancho y el alto y las distribuciones empricas de los valores de los mismos para clasificar los patrones utilizando decisiones basadas en estadsticas. Por las fluctuaciones naturales de los valores que son medidos, errores de medicin en un grado inferior, los valores de las caractersticas parecen tener componentes aleatorios. En todo caso, existe un sub problema de estimacin en cualquier problema de reconocimiento de patrones. El reconocimiento de patrones estadstico es una sub rea del rea de la teora de decisiones. Un tipo ms reciente est basado en el concepto de cadenas de smbolos seleccionados del alfabeto. Estas cadenas pueden ser consideradas como oraciones en una gramtica de oraciones muy bien construidas, donde su construccin est limitada a un conjunto de reglas llamadas producciones. Las oraciones aparecen de estructuras internas particulares en los patrones. Si los atributos estructurales de un objeto pueden ser

69

transformados en oraciones gramaticales, entonces es reconocido como perteneciente a la clase asociada con ESA gramtica. Si no, entonces pertenece a otra clase. Este tipo de clasificacin es llamada reconocimiento de patrones sintctico (o estructural) (sintaxis se refiere a la estructura de una oracin). Una generalizacin es el reconocimiento de

patrones estocstico sintctico (Tou y Gonzlez, 1974), donde las probabilidades de ocurrencia de caracteres en una cadena son considerados y la decisin est basada en la ms grande probabilidad de que una oracin pertenezca a una gramtica. Una aproximacin al reconocimiento de patrones ms moderna utiliza FANNs (Feedforward Artificial Neural Networks).

2.3.2.2. Reconocimiento y clasificacin de patrones automtico Un sistema automatizado de reconocimiento de patrones es un sistema operacional que como mnimo tiene: 1. Un sub sistema de entrada que acepta vectores de patrones, y 2. Un sub sistema que toma decisiones que decide las clases (tipos, categoras, variedades) a las que un vector de patrones de entrada pertenece. Si tambin realiza la clasificacin, entonces tendr un modo de aprendizaje con el cual aprenda los conjuntos de clases de la poblacin a travs de vectores de patrones de ejemplo; es decir, particiona la poblacin en sub poblaciones, que son las clases. Los sistemas automatizados de reconocimiento de patrones utilizan a las computadoras para ejecutar programas de instrucciones para implementar algoritmos matemticos. Algunas de las tareas que pueden ser realizadas son: reconocimiento ptico de caracteres, reconocimiento de caracteres desde imgenes, reconocimiento de palabras habladas,

70

reconocimiento de bioqumicos obtenidos de muestras de cabello o sangre, reconocimiento de partes y piezas en una planta de ensamblaje, reconocimiento de huellas dactilares individuales, reconocimiento de blancos obtenidos por satlite, radares, sonares, imgenes infrarrojas, reconocimiento de clulas cancergenas. Es decir, la posibilidad de aplicaciones est donde se mire.

2.3.3. LAS CARACTERSTICAS Y SUS DISTRIBUCIONES 2.3.3.1. Caractersticas como atributos no redundantes Para una poblacin dada de objetos P, un atributo es una variable m que toma un valor medido real. Una caracterstica es tambin un atributo o una funcin de uno o ms atributos. Las caractersticas deben ser observables, en el sentido de que puedan ser medibles, obtenidas como una funcin de variables medidas, o estimadas de valores medidos de variables correlacionadas. Idealmente , el conjunto de caractersticas utilizadas en una decisin de clasificacin deben ser estadsticamente independientes, en que ninguna de las caractersticas pueda ser determinada por una funcin de otras caractersticas en el conjunto, o estimada a travs de ellas por correlacin. Esto debera proveer cero redundancia. En general, un vector de atributos es convertido en un vector de caractersticas de una menor dimensin que contiene toda la informacin esencial del patrn. Esto casi siempre elimina un monto substancial de redundancia. As, un vector de caractersticas x=(x1, , xN) ser asociado con cada objeto seleccionado de P. La decisin de reconocimiento para un objeto est basada en el procesamiento de su vector de caractersticas. Sin embargo, los

71

vectores de caractersticas de una misma clase son diferentes. Tpicamente, las diferencias vienen de tres fuentes: 1. Ruido, que incluye errores de medicin y otros errores aleatorios; 2. Diagonales (errores sistmicos) en los instrumentos de medicin, en los sistemas de adquisicin de datos y en los sistemas de procesamiento; y 3. La variacin natural entre los objetos que estn dentro de una misma clase por variaciones desconocidas de los operadores que crean los objetos. Las variaciones posteriores no pueden ser predichas para objetos individuales, as que tambin aparecen como aleatorios para ciertas distribuciones probabilsticas.

2.3.3.2. Distribuciones probabilsticas de caractersticas Las distribuciones probabilsticas de diferentes sub poblaciones para cualquier caracterstica sola X se parece a lo que se muestra en la siguiente figura.

Ilustracin 5: Distribuciones probabilsticas de caractersticas.

72

f1(x) y f2(x) son las funciones de densidad probabilstica para las variables aleatorias de caractersticas X=X(1) y X=X(2) para las clases 1 y 2 respectivamente. Ya que esto ocurre para mltiples caractersticas, la evidencia debe ser construida de tal manera que el peso total de esta favorezca a la clase correcta. Existen muchas maneras de hacer esto, pero el reconocimiento de patrones estadstico clsico compara las probabilidades para las clases sobre todas las caractersticas y utiliza medidas de similitud en algunos procesos de promedio.

2.3.4. SEPARACIN DE OBJETOS EN EL ESPACIO DE CARACTERSTICAS El vector de caractersticas para una poblacin de objetos con N caractersticas es el vector espacial N-dimensional Euclidiano EN, aunque algunas veces es representado por el cubo Ndimensional [0,1]N (o de manera general [a,b]N). Para ilustrar la separacin de los vectores de caractersticas que representan a una poblacin P, tomemos dos caractersticas X1 y X2, para que de esa manera el espacio de caractersticas sea un plano. Supngase tambin que los objetos caen en las dos sub poblaciones S1 y S2. En la siguiente figura, se muestra claramente que una lnea recta separa los ejemplos dados.

73

Ilustracin 6: Separacin de objetos en el espacio de caractersticas por un hiperplano.

En la siguiente figura, sin embargo, se muestra se muestran dos clases formadas por vectores de caractersticas de ejemplo que no pueden ser separadas por ninguna lnea recta.

Ilustracin 7: Dos clases de caractersticas que no pueden ser separadas por un hiperplano.

74

La leccin que dejan estos dos ejemplos es que las clases de vectores de caractersticas no siempre van a poder ser separadas linealmente, es decir, por una lnea o un sub espacio lineal que pueda ser transformado en un valor numrico. En general, sea P una poblacin con un espacio de caractersticas N-dimensional que contiene dos clases (sub poblaciones). Cualquier transformacin de un sub espacio lineal (N-1)-dimensional L de EN por un vector V fijo, designado por H = L + V, es llamado un hiperplano de un espacio N-dimensional. En la primera figura el hiperplano H es una lnea. Si es un espacio de caractersticas existe un hiperplano H de tal manera que todos los vectores de caractersticas de una clase S1 estn en un lado de H, y todos los vectores de otra clase S2 estn en el otro lado de H, entonces se dice que S1 y S2 son linealmente separables, y que son linealmente separables por H. En este caso, nicamente se necesita evaluar la ecuacin del hiperplano en un vector de caractersticas de entrada X para determinar en qu lado de H el vector cae. Pero un sistema de reconocimiento primero debe determinar, si existe, a H. Si varias clases pueden ser separadas, dos a la vez, por hiperplanos , entonces stas son llamadas separables linealmente en parejas, y la decisin puede ser tomada al determinar en qu lado de cada hiperplano de separacin un vector cae. En la siguiente figura se muestra esta situacin, donde Hij linealmente separa a las clases i e j.

75

Ilustracin 8: Separacin de varias clases por varios hiperplanos en el espacio de caractersticas.

2.3.5. ENTRENAMIENTO Y MODOS DE OPERACIN 2.3.5.1. Modos Existen dos modos distintos de procesos que un sistema de reconocimiento de patrones ejecuta en los vectores de caractersticas de una poblacin de objetos. El segundo es el modo operacional donde el sistema mapea cada vector de caractersticas de entrada en el vector de salida que representa la clase de decisin. Esto es el reconocimiento. Pero para que un sistema pueda llegar a esto, primero debe haber aprendido las clases de los vectores de caractersticas a travs de un proceso que particiona el conjunto de vectores de caractersticas. Esto es la clasificacin, que involucra al entrenamiento, o aprendizaje de mquina.

76

2.3.5.2. Entrenamiento supervisado y aprendizaje auto-organizativo Las categoras en el aprendizaje de mquina son: 1. Entrenamiento supervisado, y 2. Auto-organizado, tambin llamado no supervisado. En el modo de entrenamiento supervisado, cada uno de los ejemplos de Q vectores de caractersticas es alimentado al sistema, junto con su identificador de clase conocido, como el vector de salida deseado, y el sistema aprende cmo mapear el vector de entrada en el identificador de clase deseado. En el modo auto-organizativo de clasificacin, un sistema realiza ambos procesos (entrenamiento y los procesos operacionales) en un vector de caractersticas de entrada. Los vectores de ejemplo son alimentados al sistema en alguna secuencia, y cada vez que un vector de entrada no es mapeado a un identificador de una clases previamente aprendida el sistema establece una nueva clase, asigna un identificador nico y ajusta sus parmetros para mapear el vector de caractersticas a este nuevo identificador. Tanto en el entrenamiento supervisado como no supervisado, el sistema determina uno o ms uno o ms vectores prototipo (arquetipo, plantilla, etc.) como modelos ideales para cada clase. Luego del entrenamiento, el sistema est listo para su uso operacional, aunque algunas pruebas deben ser hechas primero para verificar que el entrenamiento haya sido exitoso. En el modo operacional, cada vector de caractersticas que llega es comparado a travs de algunas medidas de similitud con los vectores ejemplares para cada clase, y se toma una decisin de acuerdo a la mayor similitud entre el vector de entrada y los ejemplares.

77

2.3.5.3. Algoritmo de alto nivel para el aprendizaje y entrenamiento 1. /Ordenar Q pares de entradas ejemplares X(q) y objetivos de salida t(k(q)) en un orden aleatorio/ Ordenar aleatoriamente { (X(q), t(k(q))): q = 1, , Q } 2. Para q=1 hasta Q hacer Leer el par de vectores de entrada y salida q (X(q), t(k(q))) Ajustar los parmetros del sistema para asociar t(k(q)) con X(q) /Mapear X(q) en el objetivo t(k(q))/ /ordenamiento aleatorio Q/

2.3.5.4. Algoritmo de alto nivel para aprendizaje auto-organizativo (una pasada) 1. /Ordenar aleatoriamente los Q pares de los vectores de entrada ejemplares/ Ordenar aleatoriamente (X(q), t(k(q))); 2. K 1; Clase(1)1; 3. Para q=2 hasta Q hacer /Asignar X(1) a la clase 1/ /Para las K clases actuales/

Leer el vector de entrada X(q); Clase_asignada = falso; Para k=1 hasta K hacer Si X(q) es similar a Ck entonces Clase(q)=k; clase_asignada=verdadero; entrada a la clase k/ Si clase_asignada=false entonces clase K+1/ /caso contrario hacer una nueva /si X(q) est en la clase K/ /asigna el q vector de

78

KK+1; Clase(q)=K; /y asigna el vector de entrada q a la clase K+1/

2.3.6. EL CONCEPTO DE CLUSTERING COMO EL APRENDIZAJE DE CLASES 2.3.6.1. Clusters En el modo de auto-organizacin, el proceso de agrupacin de los vectores de caractersticas en clases es llamado Clustering. La terminologa viene de la apariencia de una secuencia de vectores entrantes que se arreglan a s mismos en Clusters (racimos), que significa grupos de puntos que estn cerca unos de otros y sus propios centros en lugar de a los centros de otros grupos. Cuando un vector de caractersticas es ingresado al sistema, sus distancias a los cluster representativos es determinada, y es asignado al cluster con la distancia mnima o pasa a ser el representativo de un nuevo cluster. Se han propuesto varias estrategias jerrquicas, donde jerrquica implica que un patrn complejo es descrito como una coleccin de varios sub patrones simples, bajando posiblemente a varios sub niveles de sub patrones con sus sub clusters.

2.3.6.2. Algoritmo generalizado de Clustering de Fu De acuerdo a K. S. Fu, Clustering consiste de los cuatro pasos descritos a continuacin que utilizan: medicin de similitud, pruebas de diferenciacin en los clusters, un mtodo de reparticin que mejora el valor de la medicin de similitud, y una regla para detenerse.

79

1. Particionar el conjunto de ejemplo S={X(1), , X(Q)} de los Q vectores de ejemplo en K sub conjuntos (clusters) a travs de un criterio apropiado de similitud (por ejemplo, la distancia al centro del cluster). 2. Probar la particin para determinar si los K clusters de prueba son suficientemente no similares entre ellos y si son similares dentro de ellos. 3. Parar si el criterio de parada se ha alcanzado (no han cambiado los clusters). 4. Reparticionar S (unir los clusters que son muy similares, partir aquellos que no son muy similares por dentro, o reasignar los vectores a los clusters), cambiar K de acuerdo a los cambios y volver al paso 2.

2.3.7. SEPARACIN LINEAL CLSICA La separacin lineal, llamada tambin discriminacin lineal, se demuestra mejor con ejemplos.

2.3.7.1. Ejemplo 1 Sea X=(X1, X2) un vector de caractersticas de variables aleatorias que asume un vector de caractersticas (x1, x2) para cada objeto tomado de una poblacin P como un experimento de ejemplo. Supngase que cinco objetos son seleccionados de P aleatoriamente y que las instancias del vector de caractersticas son : x(1) = (2.0, 3.6), x(2)=(2.2, 4.4), x(3)=(4.8, 1.0), x(4)=(3.0, 5.0), y x(5)=(5.2, 2.0) En la siguiente figura se muestra estos vectores de caractersticas en el plano.

80

Ilustracin 9: Ejemplo de separacin lineal clsica (1).

Se han separado estos vectores en dos clases al tomar la distancia euclidiana entre todos los pares de puntos, y luego arreglarlos en una matriz simtrica de 5x5 de distancias d(i,j) desde el punto i hasta el punto j, 1<=i, j<=5, donde d(i,j)=[(x1(i) x1(j))2 + (x2(i) x2(j))2]1/2. Despus, se selecciona un umbral a la mitad de las mximas y las mnimas distancias.

Todos los pares de puntos que tienen una distancia menor a son puestas en una misma clase. Si no se han obtenido dos clases, entonces se hace a ms pequeo y se trata

nuevamente. Cuando se arriba a un umbral aproximado, se obtienen dos clases. En este ejemplo, la clase 1 contiene a x(1), x(2) y x(4), mientras que la clase 2 contiene a x(3) y x(5). Se asume que se saba a priori que existen dos clases. El vector promedio de una clase es el vector de que se forma al sumar los vectores de cada clase y a cada componente dividirlo para el nmero de vectores. Para este ejemplo (1) = ((1), (1)) = (2.4, 4.2) para la Clase 1, y (2) = ((2), (2)) = (5.0, 1.5) para la Clase 2. Si se toma el error medio ajustado entre los vectores de una clase y el centro de esa clase, se

81

encuentra que las clases mostradas minimizan ese error sobre cualquier otro agrupamiento en clases. Entonces no se reparticiona. El algoritmo de clasificacin ha aprendido dos clases, y ahora est listo para el modo operacional. Cuando un vector de caractersticas nuevo (uno que no se ha usado en el entrenamiento) se ingresa al sistema, se realizar el clculo de las distancias desde el nuevo vector x(nuevo) a los vectores representativos de las clases (1) y (2) , y se tomar la decisin de a qu clase pertenece, de acuerdo a la mnima distancia (mayor similitud).

2.3.7.2. Ejemplo 2 Una variacin del ejemplo anterior es poner una lnea L que pase por los dos puntos representativos (1) = ((1), (1)) = (2.4, 4.2) y (2) = ((2), (2)) = (5.0, 1.5) para las dos clases y luego construir una bisectriz perpendicular (hiperplano H) al segmento de lnea entre esos puntos. Sea w=(w1, w2) el punto en el que la lnea L se interseca con H, y sea h=(h1, h2) un punto cualquiera en el hiperplano H, como se muestra en la siguiente figura.

82

Ilustracin 10: Ejemplo de separacin lineal clsica (2).

Ntese que el segmento de L entre (1) y (2) es perpendicular a H si y solo si L es perpendicular a la lnea la lnea que cruza a h y w, entonces ((1) - (2) ) La perpendicularidad de dos vectores x e y (denotado por x (h w).

y) es equivalente a su

producto punto igual a cero, entonces x y = 0. De la figura anterior, ((1) - (2) ) (h w) = 0. Entonces: ((1) - (2) ) h = ((1) - (2) ) w [Ecuacin 1] Al escribir (1) - (2) = (1(1) - 1(2) , 2(1) - 2(2) ), y tomando el punto medio w = (1) + (1/2)( (2) - (1)) = (3.7, 2,86), y se puede sustituir en la Ecuacin 1, para obtener una ecuacin lineal para H de la forma: ah1 + bh2 + c = 0 [Ecuacin 2a]

83

ax1 + bx2 + c = d [Ecuacin 2b] La Ecuacin 2b se convierte en -2.6h1 + 2.7h2 + 1.925 = 0. Si se sustituye cualquier punto h=(h1,h2) en H, incluyendo h = w, satisface esta ecuacin. Ntese que todos los puntos (x1, x2) de un lado de H causan que la parte izquierda de la Ecuacin 2b sea positivo, mientras que los puntos del otro lado causan que sean negativos. Estas regiones se las conoce como los medios espacios positivo (derecha) y negativo (izquierda), respectivamente. Se puede mover a H ms cerca o ms lejos de (1) , siempre y cuando se mantenga perpendicular a la lnea que forman (1) y (2) solamente al sumar o restar una constante d que sea mayor a cero al lado derecho de la ecuacin 2b, que quedara de la siguiente forma: ah1 + bh2 + c = d y que terminara de la siguiente forma luego de arreglarla: ah1 + bh2 + (c d) = 0 En la siguiente figura se muestra un hiperplano de separacin H de separacin en el espacio de tres dimensiones. Generalmente, un conjunto de ejemplo de vectores de caractersticas en un espacio N-dimensional puede o no ser separable por un hiperplano (N1)-dimensional. Pero, si es el caso de ser posible, entonces la discriminacin lineal es alcanzable al encontrar dicho hiperplano (Fisher, 1925, 1936).

84

Ilustracin 11: Discriminacin lineal.

2.3.8. SIMILITUD EN UN ESPACIO DE CARACTERSTICAS 2.3.8.1. Medidas de semejanza En adelante, se identificar cada objeto en una poblacin P por su vector de caracterstica N-dimensional x=(x1, , xN) y se llamar vectores de caractersticas, en lugar de objetos en P. Los componentes de x=(x1, , xN) son valores reales que vienen de experimentos dibujan y miden objetos de P para formar vectores de patrones y luego extraer sus caractersticas de los mismos. Por lo tanto, un vector X=(X1, , XN) de variables aleatorias asume un vector de caractersticas X=x como una salida experimental, donde Xn=xn para 1<=n<=N. Dados un conjunto de vectores de caractersticas de ejemplo, S={x(1), , x(Q)}, de P, donde cada qsimo vector de ejemplo est denominado por x(q)=(x1(q), , xN(q)), las tareas son:

85

1. Operar en S un proceso para separar en K clases {S1, , SK}, y 2. Usar stas clases aprendidas para operar en futuros vectores de entrada para tomar decisiones sobre a qu clases pertenecen. Estos procesos son clasificacin y reconocimiento respectivamente. Durante el aprendizaje, es necesario considerar cun semejantes dos vectores de caractersticas x e y son. Cualquier medida del grado de semejanza (cercana) es llamada una medida de semejanza. Las funciones que dan las distancia d(x,y) entre x e y son las ms tiles de stas. La distancia euclidiana, denotada por , es la medida de semejanza

ms utilizada, donde un valor menor (los vectores que estn ms cercanos) implica una similitud mayor. Estas funciones son llamadas tambin funciones de desemajanza ya que a mayor distancia significa una mayor desemejanza. Formalmente, la distancia euclidiana entre dos vectores x e y est definida por la raz de la suma ajustada de los errores:

[Ecuacin 3] Cada clase puede estar representada por una (o ms) vectores ejemplares (o prototipos) que forman una centralizacin idealizada de lo que los vectores en esa clase deben ser. Dado cualquier vector de caractersticas de entrada x, el k0 que minimiza todos los K ejemplares de la clase sobre

, para las varias clases disponibles, tambin

minimiza la distancia al asignar x a la clase k0 cuando:

La suma ajustada de los errores dentro de un cluster con centro z(k) es la suma de las distancias ajustadas entre los puntos miembros del cluster y z(k), que es:

86

[Ecuacin 4] Otras medidas de distancia tambin pueden ser utilizadas, algunas de las cuales son: 1. La norma de el bloque de la ciudad, que est definido por el total de las distancias, componente a componente:

[Ecuacin 5]

Ilustracin 12: Norma el bloque de la ciudad para medir la distancia.

2. La norma de Tchebyshev (mxima o suprema), que est definido por el mximo del total de las distancias, componente a componente: [Ecuacin 6]

87

Ilustracin 13: Norma de Tshebyshev para medir la distancia.

3. La distancia de Mahalanobis, donde promedio para una sub poblacin. sub poblacin, y

es el vector de los componentes hechos es la matriz de covarianza inversa para esa .

es la transpuesta de [Ecuacin 7]

Ilustracin 14: La distancia de Mahalanobis.

Ahora, considrese el espacio de todos los vectores de la forma cada componente

, donde

toma un valor del alfabeto binario {0,1}. Dos ejemplos, en el cubo de 88

6 dimensiones son es:

. La distancia de Hamming entre x e y

[Ecuacin 8] En palabras sencillas, es simplemente la cuenta de los nmeros de los componentes en los que x e y son diferentes. Para el caso dado, distancia e tienen una

ya que son diferentes en 3 componentes:

X= 1 Y= 0

0 0

0 1

0 0

1 1

0 1

Difiere Igual Difiere Igual Igual Difiere

El conjunto de todos los vectores x que tienen una distancia de 1 a y es justamente el conjunto de vectores que de y en uno y solo un componente, es decir, ocupan vrtices adyacentes del cubo de 6 dimensiones .

Una hiperesfera con centro en algn vector z y con un radio r en un espacio N-dimensional es un conjunto de la forma , para alguna funcin de distancia

. Una hiprbola es una hiperesfera con todos sus puntos juntos en el mismo lado que el centro, es decir, .

En las figuras que se mostrarn a continuacin se muestran hiprbolas en el plano con centro en el vector z con radio r, para varias distancias en el plano. En la siguiente figura, el vector punto x tiene un radio ejemplo, w y u tambin tienen distancias de r a z. , mientras que, por

89

Ilustracin 15: Hiprbola en el plano con centro en el vector Z y con radio r, para varias distancias en el plano (1).

En la siguiente figura, x tiene una distancia

desde z.

Ilustracin 16: Hiprbola en el plano con centro en el vector Z y con radio r, para varias distancias en el plano (2).

En

la

siguiente

figura

se

muestra , entre

la z y x,

distancia donde

es la covarianza y

son las varianzas !12 y !22, respectivamente.

Los ejes seran rotados para formar una elipse a lo largo de los nuevos ejes mayor y menor. La distancia Mahalabobis provee un promedio ponderado que permite hiprbolas

90

elongadas, es decir elipsoides. determinados con anterioridad.

stas pueden ser tiles, pero los pesos deben ser

2.3.8.2. Convexidad y separacin de clsteres Otros hiperslidos como hiperelipsoides e hipercilindros pueden ser utilizados para separar clases en espacios N-dimensionales. Las hiprbolas y otros hiperslidos de inters tienen una propiedad importante. Un sub conjunto C de EN (espacio euclidiano N-dimensional) es convexo si y solo si para cada par de puntos c1 y c2 en C, todo el segmento tambin est contenido por C. Cualquier vector es llamado combinacin convexa de c1 y c2. As, un conjunto convexo de C contiene todas las combinaciones convexas de todos los pares de puntos en C. La siguiente figura muestra un ejemplo de conjunto convexo y un conjunto no convexo.

Ilustracin 17: Conjuntos convexo y no convexo.

Si cualquier segmento de lnea entre dos puntos que pertenezcan a un conjunto, tiene al menos un punto que este fuera del conjunto, entonces no es convexo. Un espacio de

91

vectores con una norma (funcin de distancia) es llamado un espacio vectorial normalizado.

2.3.8.2.1. Proposicin 1: Cualquier conjunto cerrado disjunto convexo en un espacio vectorial normalizado puede ser separado por hiperplanos.

2.3.8.2.2. Prueba: Los conjuntos cerrados contienen a todos sus puntos lmite. Para los conjuntos disjuntos cerrados convexos C y D, tmese la mnima distancia .

Ya que C y D son cerrados y la funcin de distancia es continua, dos puntos c0 y d0 existen en C y D, respectivamente, tales que . Se coloca una lnea a travs de stos

puntos y se toma su perpendicular bisecando el hiperplano. Es obvio que todos los puntos en C estn en un lado del hiperplano, y todos los puntos de D estn en el otro lado para preservar la perpendicularidad y la distancia mnima. La siguiente figura demuestra esto.

Ilustracin 18: Cualquier conjunto disjunto cerrado convexo en un espacio vectorial normalizado puede ser separado por hiperplanos.

92

As, los clsteres dentro de hiperslidos disjuntos convexos son linealmente separables.

2.3.9. LOS PRINCIPIOS PARA CLUSTERING 2.3.9.1. El principio del vecino ms cercano

Sean

K clsteres de vectores de caractersticas. Dado un nuevo vector de

caractersticas x(q), la tarea es asignarlo a uno de los K clsteres. El mtodo ms bsico es encontrar la distancia distancia: entre x(q) y el k-simo cluster Ck, que es la mnima

En otras palabras, es la mnima distancia entre x(q) y los vectores x en C. Aunque es una forma natural de asignar los vectores de caractersticas a clsteres existentes, se puede caer en clsteres muy grandes y complicados.

2.3.9.2. El principio de representacin optima Existe una mejor manera de asignar los vectores de caractersticas a los clsteres que requiere encontrar un vector representativo para cada cluster para usarlo en lugar de la distancia . Este vector representativo debe estar localizado en una posicin

central dentro del cluster para minimizar la suma de errores ajustados entre dicho vector y los vectores de caractersticas.

93

Dado un cluster

, se desea estimar un centro z(k) para el mismo. En el , generados por una

caso de una sola dimensin se tiene nmeros reales

variable aleatoria X. Se estima un centro z para minimizar la sumatoria de las distancias ajustadas, que es la sumatoria del error ajustado.

Al igualar a cero a la derivada para cualquier componente:

As, podemos resolver para z:

Entonces, z se convierte en el medio de muestra de los nmeros caso del vector , los vectores

e Sk. En el tienen un promedio , el promedio

que es el vector de los componentes promedio. Para el centro del n-simo componente de z es:

Para cada

, entonces [Ecuacin 9]

94

No existe nada que limite que el centro de un cluster sea un solo vector representativo, es decir, un conjunto de mltiples vectores puede ser usado como centro de cualquier cluster. 2.3.9.3. El principio de la asignacin de la mnima distancia

Nuevamente, sean

K clsteres de vectores de caractersticas. Dado un nuevo

vector de caractersticas x(q), la tarea es asignarlo a uno de los K clsteres. Para cada cluster Ck, se toma a como el promedio de todos los vectores de

caractersticas de dicho cluster. De acuerdo al principio de representacin ptima, z(k) provee el mnimo error ajustado. Por lo tanto, se toma los promedios de los clsteres como los representativos, o prototipos (modelos), de los clsteres. Se asigna el nuevo vector x(q) al cluster CK de tal manera que la distancia desde x(q) al representativo z(k) de Ck es la mnima de todos los clsteres. En otras palabras, para

Donde z(k) son los representativos de los clsteres Ck.

2.3.10. Redes linealmente discriminantes15 Los procesos de clasificacin (entrenamiento) y reconocimiento (toma de decisiones), naturalmente asociados con grficos de redes que modelan su comportamiento. Se ha visto que un espacio de caractersticas N-dimensional es separado en dos medios espacios por un hiperplano H determinado por una funcin discriminante del tipo:
15

Discriminantes lineales. En lnea. Internet 20 de Agosto del 2006. Disponible WWW iie.fing.edu.uy/ense/asign/recpat/material/rp05_disc_lineales.ppt

95

[Ecuacin 10] Cada vector de caractersticas satisface una de las siguientes condiciones:

Aquellos que satisfacen la primera inecuacin pertenecen al medio espacio de la derecha, mientras que aquellos que satisfacen la tercera pertenecen al medio espacio de la izquierda. El resto de vectores satisfacen la Ecuacin 10, y por lo tanto pertenecen al hiperplano H. El hiperplano puede ser reorientado al ajustar los pesos . Por

conveniencia, se coloca x en el espacio (N+1)-dimensional al cambiar su (N+1) componente por 1; lo que quedara de la siguiente as que: , y por lo tanto podemos decir

[Ecuacin 11] Donde, el superndice t denota la transpuesta ( , el producto punto). La

siguiente figura muestra un modelo de red para el proceso de toma de decisiones.

96

Ilustracin 19: Red para el proceso de toma de decisiones.

Las entradas son linealmente combinadas con los pesos al multiplicarlos, y luego sumadas para obtener si oa si . Luego y pasa por el umbral, donde es convertida en la salida . El identificador de la clase es z.

La siguiente figura presenta una red multilineal que utiliza dos nodos de sumatoria que obtiene los valores lineales discriminantes e . Luego estos valores

son alimentados a las funciones de umbral para obtener los valores finales z1 y z2. Estos dos valores proveen las combinaciones valores: que puede tomar uno de los siguientes

97

Ilustracin 20: Red multilineal.

Mientras z1 determina en que medio espacio para un hiperplano H1 cae el vector de entrada, z2 determina en que medio espacio para un hiperplano H2 est. El vector de salida (z1, z2) determina en cul de las cuatro regiones x cae. Estas regiones son las intersecciones de los dos medios espacios determinados por H1, con los dos medios espacios determinados por H2. La siguiente figura muestra las cuatro regiones en un espacio de caractersticas bidimensional que estn determinadas por H1 y H2.

98

Ilustracin 21: Aplicacin de redes para toma de decisiones.

Las regiones estn numeradas por un nmero en un crculo. La Regin 1, arriba, es la interseccin del medio espacio izquierdo de H1 con el medio espacio derecho de H2. Las otras regiones son las intersecciones de las otras combinaciones de los medios espacios izquierdos y derechos para H1 y H2. Una red linealmente discriminante es un tipo de neurona artificial, llamado Perceptrn. Una red multilinealmente discriminante es una capa de Perceptrones. Para K nodos de sumatoria y una funcin de umbral para cada uno, stos parten el espacio de caractersticas en regiones que son las intersecciones de 2K medios espacios. Cada una de estas intersecciones es convexa por lo que existe una separacin lineal en estas regiones. Al ajustar los pesos y los umbrales de las funciones discriminantes , estas regiones

pueden ser manipuladas para permanecer convexas. Los vectores de caractersticas caen en estas regiones, y as un entrenamiento para ajustar los pesos apropiadamente ajustar las regiones para contener grupos de vectores de caractersticas como clsteres.

99

2.4. REDES NEURONALES ARTIFICIALES

2.4.1. NEURONAS BIOLGICAS El cerebro humano est formado por billones de clulas especializadas y altamente interconectadas, llamadas Neuronas16. Bsicamente una neurona est formada por: 1. Dendritas: son las ramas que perciben los impulsos elctricos. 2. Cuerpo de la clula: es donde la neurona, bsicamente, suma todos los impulsos elctricos recibidos, y dependiendo de un umbral se activa o no. 3. Axn: es una larga fibra a travs de la cual una neurona enva una respuesta a otras a travs de sus ramificaciones. El punto donde un axn se une con una dendrita se llama Sinapsis, siendo las neuronas que envan informacin presinpticas y las que la reciben postsinpticas. En el siguiente grfico se muestra un esquema de una neurona biolgica17:

16

Brain & Computer--How Biological Neurons Work. En lnea. Internet 20 de Agosto del 2006. Disponible WWW http://library.thinkquest.org/19314/neurons.htm
17

Wikipedia: Red neuronal artificial. En lnea. Internet 8 de Noviembre de 2005. Disponible WWW http://es.wikipedia.org/wiki/Red_ neuronal_artificial

100

Ilustracin 22: Neurona biolgica.

2.4.2. NEURONAS ARTIFICIALES Existen varias maneras de llamarlas, nodo, neuro-nodo, celda, unidad o elemento de procesamiento. Una representacin de una neurona artificial sera18:

18

Ornstein, L. Unsupervised Pattern-Recognition and Artificial Neural Networks. En lnea. Internet 12 de octubre del 2005. Disponible WWW http://www.pipeline.com/~lenornst/PatternRecognition&NN.html

101

Ilustracin 23: Representacin de una neurona artificial.

Donde, al hacer una comparacin con una neurona biolgica, representa al axn y

representa las dendritas,

representa al umbral que debe sobrepasar la neurona para representa el peso

activarse (proceso que sucede dentro del cuerpo de la neurona). Y sinptico.

Cada seal de entrada al neuro-nodo pasa a travs de un peso sinptico, tambin conocido como fortaleza de la conexin, que pueden ser exitatorios o inhibitorios. En el cuerpo de la neurona se suman todas las entradas ponderadas (multiplicadas por el peso sinptico) y las pasa a la salida a travs de una funcin de umbral o funcin de transferencia o funcin de activacin. En el siguiente grfico19 se muestra el recorrido de las seales a travs de una neurona artificial.

19

Arellano Guzmn, Gregorio. Ayuquina Carabajo, Martha. Cruz Ochoa, Wilson. Zambrano Molina, Darwin. Inteligencia Artificial. En lnea. Internet 10 de noviembre de 2005. Disponible WWW http://cruzrojaguayas.org/inteligencia/

102

Ilustracin 24: Recorrido de las seales a travs de una neurona artificial.

2.4.2.1. Funcin de Red Calcula el valor total de entrada al neuro-nodo, teniendo como salida generalmente la suma ponderada de todas las entradas ponderadas.

2.4.2.2. Funcin de Transferencia Tal vez es la principal caracterstica de los neuro-nodos ya que define el comportamiento de los mismos, ya que calcula el nivel de estado de activacin de la neurona en base a la entrada total ponderada.

103

2.4.2.3. Entradas Ponderadas Equivalen a las entradas a travs de la sinapsis, ya que el peso equivale a la fuerza o efectividad de la misma.

2.4.2.4. Salida Es la salida de la neurona en funcin de la activacin de la misma.

2.4.3. REDES NEURONALES ARTIFICIALES Una red neuronal artificial (RNA) es un conjunto de neuronas artificiales (neuro-nodos) a travs del cual se establece un flujo de informacin a travs de una topologa interconectada, inspirada en el sistema nervioso de los seres humanos. Es un esquema de computacin distribuida, ya que su arquitectura fundamental es la unin de mltiples procesadores elementales, manteniendo un esquema que se adapta ya que posee un algoritmo para el ajuste de los pesos para alcanzar los requerimientos del problema, siempre basado en ejemplos representativos.

104

2.4.3.1. Caractersticas 1. Aprendizaje inductivo: A una RNA no se le dan las reglas para dar la solucin a un problema, ella misma las extrae a partir de ejemplos seleccionados para el aprendizaje, y basadas en la experiencia adquirida van modificando su comportamiento. 2. Generalizacin: Una vez que la RNA ha sido entrenada puede recibir datos diferentes de los que recibi en dicha etapa. 3. Tolerancia al ruido: Una RNA es capaz de obtener las caractersticas principales de los datos que a ella ingresan, por lo que si ha sido bien entrenada puede procesar de manera adecuada datos corrompidos o incompletos. 4. Procesamiento paralelo: Las RNAs poseen un paralelismo inherente, y pueden trabajar de manera real as si se posee multiprocesamiento. 5. Memoria distribuida: El conocimiento adquirido por una RNA est distribuido en diversas conexiones, lo que da como resultado la tolerancia a los fallos, es decir, podr seguir operando de una manera satisfactoria en el caso de estar parcialmente lesionada o daada. Es importante mencionar que en redes pequeas esto no es del todo real.

2.4.3.2. Clasificacin de las Redes Neuronales Segn la clasificacin realizada por Hiler y Martnez en 1994, las redes neuronales se pueden clasificar segn cuatro aspectos: 1. Por su topologa. 2. Por su mecanismo de aprendizaje. 3. Por el tipo de asociacin realizada entre la informacin de entrada y la de salida.

105

4. Por la forma de representacin de la informacin de entrada y salida. 2.4.3.2.1. Por su topologa La topologa es la manera en que las neuronas estn organizadas en la red, formando capas o agrupaciones. La clasificacin por la topologa se divide en: Redes Monocapa (1 capa) y Redes Multicapa (2 o ms capas). Redes Monocapa: En este tipo de redes se establecen conexiones laterales entre las neuronas que forman la nica capa de la red. Tambin pueden existir conexiones concurrentes, es decir, la salida de una neurona es su entrada o a la de otra. Este tipo de redes se las utiliza bsicamente en los problemas que requieren de autoasociacin, por ejemplo, para regenerar las entradas de la red que pueden estar degeneradas o incompletas. Redes Multicapa: Disponen de conjuntos de neuronas que estn agrupadas en varios niveles o capas. Generalmente todas las neuronas de una capa tienen como entrada a las salidas de las neuronas de la capa inmediatamente anterior y envan sus salidas a la capa posterior a s misma. A este tipo de redes se las conoce como de conexiones hacia delante o Feedforward. Sin embargo existen otras redes en las que las salidas de una capa posterior se conecta con la entrada de una capa anterior, a estas se las conoce como redes de retroalimentacin o de feedback.

106

2.4.3.2.2. Por su mecanismo de aprendizaje El aprendizaje es el mecanismo a travs del cual una RNA modifica sus pesos sinpticos en respuesta a una informacin que ha ingresado. Estos cambios son equivalentes a los cambios que se dan en el cerebro, es decir que se da la creacin la destruccin o la modificacin de conexiones. Computacionalmente hablando, cuando se crea una conexin se cambia el valor correspondiente a uno diferente de cero en la matriz de pesos y cuando se destruye se pone a dicho valor en cero. Es lgico afirmar que durante el proceso de aprendizaje los pesos sufren cambios constantes, por lo que si se llega a un estado estable (no existen cambios) la red ha aprendido y puede pasar a un ambiente de produccin. Un punto de gran importancia en este proceso es el conocer las reglas y los criterios segn los cuales los pesos van a ir cambiando, y stos determinan lo que se conoce como la regla de aprendizaje, que por lo general corresponde a si la red tiene un aprendizaje supervisado, no supervisado, en lnea o fuera de lnea. Aprendizaje Supervisado: Se caracteriza por un entrenamiento controlado por un ente externo que determina la respuesta que debera generar la red a partir de una entrada determinada. En el caso de que la salida obtenida es diferente de la deseada se procede a modificar los pesos de las conexiones. Existen algunas formas para llevar a cabo este tipo de aprendizaje: o Aprendizaje por correccin de error, que consiste en ajustar los pesos sinpticos segn la diferencia entre los valores deseados de los obtenidos, es decir, en funcin del error cometido en la salida. o Aprendizaje por refuerzo, que se basa en no dar la informacin completa de la salida deseada, es decir, nicamente se le indica a la red por medio de una seal si la respuesta obtenida es la correcta, y en funcin de esto se ajustan los besos basndose en probabilidades.

107

o Aprendizaje estocstico, que consiste en realizar cambios aleatorios en los valores de los pesos y observar el efecto causado. Aprendizaje No Supervisado: No requiere la influencia externa para realizar el ajuste de los pesos sinpticos, es decir, la red no recibe ninguna informacin adicional del entorno que le indique si la salida generada es o no correcta, por esta razn se dice que estas redes son capaces de auto organizarse. Estas redes deben encontrar ciertas caractersticas, regularidades, correlaciones o categoras que se puedan establecer entre los datos a su entrada, luego utilizarlas segn su estructura o el algoritmo de aprendizaje empleado para realizar alguna accin. Hay casos en los que se utiliza alguna familiaridad entre la informacin de entrada con otras que se le han mostrado hasta entonces. En otros casos se podra realizar una categorizacin, mostrando como salida la categora a la que pertenece la informacin de entrada.

2.4.3.2.3. Por la informacin de entrada y salida En un gran nmero de RNAs tanto sus datos de entrada como los de salida son de naturaleza analgica, es decir, sus valores son reales y continuos que normalmente van a estar normalizados cuyo valor absoluto ser menor a la unidad. En estos casos las funciones de activacin sern continuas de tipo lineal o sigmoidal. Existen otras redes que permiten valores discretos, y cuyas salidas tambin lo sern. En estos casos la funcin de activacin ser del tipo escaln. Otro tipo de redes son hbridas, en las que los valores de entrada son continuos mientras que sus salidas son discretas.

108

2.4.4. RESOLVER PROBLEMAS CON REDES NEURONALES Es importante conocer que problemas son adaptables a las RNAs, adems se debe poner atencin a los problemas que no son particularmente aptos para ser resueltos con redes neuronales. Como en muchas de las tecnologas y tcnicas computacionales una de las cosas ms importantes que se debe aprender es cuando usar esa tecnologa y cuando no, adems de conocer qu estructura, si existe, es ms aplicable para un problema dado.

2.4.4.1. Problemas en los que las RNA no son apropiadas Es importante entender que una red neuronal es solo una parte de un programa ms grande. Un programa completo casi nunca es escrito slo como una red neuronal y muchos programas no requieren del uso de RNAs. Los programas que son escritos fcilmente como un diagrama de flujo son un ejemplo de aquellos que no son apropiados para redes neuronales. Si un programa consiste de pasos bien definidos, una programacin normal ser suficiente. Otro criterio a considerar es si la lgica del programa es propensa a cambiar. La habilidad de una red neuronal de aprender es una de las caractersticas principales de la misma. Si el algoritmo usado para resolver el problema es una regla de negocio que no va a cambiar, entonces no hay razn para usar una red neuronal. Puede resultar daino para el programa si la red neuronal intenta hallar una mejor solucin y comienzan a existir cambios en la salida del programa esperada.

109

Finalmente, las redes neuronales no son siempre ademadas para problemas en los que se debe conocer exactamente el cmo la solucin fue alcanzada. Una red neuronal puede volverse muy adepta a resolver el problema para el que fue entrenada, pero jams podr explicar su razonamiento. La red neuronal sabe por qu fue entrenada para saber. La red neuronal no puede explicar cmo sigui una serie de pasos para hallar la respuesta.

2.4.4.1. Problemas en los que las RR.NN. si son apropiadas Aunque existen muchos problemas para los que las redes neuronales no son recomendables, existen tambin muchos problemas para los que una red neuronal es lo mejor. Una RNA puede resolver problemas con pocas lneas de cdigo que un algoritmo de programacin tradicional. Es importante entender cules son estos problemas. Las redes neuronales son particularmente expertas en resolver problemas que no se pueden expresar como una serie de pasos. Adems son muy tiles para el reconocimiento de patrones, la clasificacin en grupos, prediccin de series y minera de datos. El reconocimiento de patrones es quizs el uso ms comn de las redes neuronales. Si a una red neuronal se le presenta un patrn, entonces intentar determinar si la entrada concuerda con algn otro patrn que haya memorizado. La clasificacin es un proceso que est altamente asociado con el reconocimiento de patrones. Una red neuronal entrenada para clasificar est diseada para tomar entradas de ejemplo y luego clasificarlas en grupos. Estos grupos puedes ser difusos, sin caractersticas claramente definidas. Estos grupos inclusive pueden tener caractersticas o limitantes claramente definidas.

110

La prediccin de series utiliza a las redes neuronales para predecir eventos futuros. La red neuronal recibe una lista de datos cronolgicos que para en algn punto, y se espera que le red neuronal aprenda la tendencia de estos datos y prediga valores futuros.

111

2.5. ARQUITECTURAS DE REDES NEURONALES

2.5.1. LA NEURONA DE MCCULLOCH-PITTS El modelo de McCulloch-Pitts de una neurona artificial (1943) fue el primer intento de inventar un dispositivo neural sinttico. Era un modelo del funcionamiento de una neurona biolgica de acuerdo de los conocimientos de la poca sobre la misma. En la siguiente figura se muestra este esquema.

Ilustracin 25: La neurona de McCulloch Pitts.

Los valores 1 (exitatorios) y -1 (inhibitorios) de entrada para xn fueron pensados para ser anlogos a entradas sinpticas, y una salida de 1 o -1 para y era activada, dependiendo de si la suma s de las entradas exceda el valor umbral T o no. Las lneas de entrada eran llamadas entradas sinpticas, y ellas llevaban a la activacin de una salida y. Sin embargo, este modelo no contena ningn mecanismo para el aprendizaje

112

aparte de la configuracin del umbral. En el campo de reconocimiento de patrones, las entradas seran las caractersticas, y la salida el identificador de la clase. Aunque este modelo es bastante dbil evolucion en otros muy poderosos.

2.5.2. NEURONAS DE HEBB Y FUNCIONES DE ACTIVACIN 2.5.2.1. Pesos sinpticos ajustables D. Hebb postul un principio para el proceso de aprendizaje en 1949 al nivel celular: Si una neurona A es estimulada repetidamente por una neurona B cuando la neurona A est activa, entonces la neurona A se volver ms sensible a los estmulos de la neurona B (el principio de correlacin). Ya que Hebb no escribi ninguna ecuacin, este principio de aprendizaje se volvi influenciable filosficamente. Implcitamente involucra ajustes a la fuerza de las entradas sinpticas, lo que llevaba a la incorporacin de pesos sinpticos ajustables en las lneas de entrada para excitar o inhibir las seales entrantes. La siguiente figura muestra como se incorpora los pesos sinpticos ajustables a las lneas de entrada.

113

Ilustracin 26: Neuronas con pesos ajustables.

Un vector de entrada

, es linealmente combinado con el vector de pesos

a travs del producto punto para formar la sumatoria:

[Ecuacin 1] Si el valor de s es mayor al umbral dado , entonces la salida y es 1, caso contrario es 0.

Esta funcin de umbral es unipolar, en cuanto a que no toma en cuenta los valores no negativos de 0 o 1 (o 0 o V, para algn voltaje V) y cumple con el principio de dos valores todo o nada de las neuronas biolgicas. Las neuronas que usan funciones de umbral bipolares con valores de salida de -1 o 1 (o V o V, para algn voltaje V) son llamadas actualmente neuronas McCulloch-Pitts.

114

2.5.2.2. Umbrales y otras funciones de activacin

Aunque las funciones de umbral fueron las funciones de activacin

que mapean

una sumatoria x en un rango apropiado de valores de salida, estas funciones discretas han abierto el camino funciones de activacin continuas diferenciables, de tal manera que sus mtodos de gradiente puedan ser usadas para resolver problemas para pesos que mapean un vector de caractersticas de entrada con su vector identificador deseado

que representa una clase. Las siguientes figuras representan cuatro funciones de activacin. Este grfico representa a la funcin de activacin unipolar. Para el umbral unipolar si , caso contrario .

Ilustracin 27: Funcin de activacin unipolar.

El siguiente grfico representa a la funcin de activacin bipolar. El umbral bipolar satisface a si , caso contrario .

115

Ilustracin 28: Funcin de activacin bipolar.

Los dos siguientes grficos representan las funciones de activacin unipolares y bipolares continuamente diferenciables, llamadas tambin funciones Sigmoide (S) o logsticas. El siguiente grfico es la funcin sigmoide unipolar que tiene la forma:

[Ecuacin 2] Para una sumatoria s dada por la Ecuacin 1, donde es la tasa de crecimiento, b es la ocurre (en para ), donde la .

diagonal que hace cambiar el centro de la funcin a donde salida es el valor medio

. As, b es el centro de asimetra del eje

116

Ilustracin 29: Funcin sigmoide unipolar.

El siguiente grfico muestra la funcin de activacin sigmoide bipolar. Es encontrada desde la funcin sigmoide unipolar al trasladar a la izquierda por b, dilatando por 2 y luego cambiando de puesto hacia abajo en 1.

Ilustracin 30: Funcin sigmoide bipolar.

Tiene la forma:

117

[Ecuacin 3] En las funciones bipolares mostradas antes, se las muestra en la situacin inicial, cuando . La funcione sigmoide bipolar tiene una forma alternativa, obtenida as:

[Ecuacin 4] Para las activaciones bipolares, el umbral es en el eje , as que no se requiere una

diagonal. Esto hace que las activaciones bipolares sean ms utilizadas ya que el trmino no se conoce con anterioridad, y debe ser ajustado durante el entrenamiento. La tasa ( ) tambin provee otro parmetro que puede ser utilizado durante el entrenamiento ms grande, las funciones de activacin sigmoidales son ms abruptas

de la red. Para un

y pueden aproximar las funciones umbral tan precisamente como se desee.

118

2.5.3. SNARK Y EL PERCEPTRN MARK I En el verano de 1951, Marvin Minsky y Dean Edmond construyeron un cerebro sinttico anlogo en Harvard para probar la teora de aprendizaje de Hebb. Esta mquina utilizaba 300 tubos al vaco, 40 resistores variables para las configuraciones de los pesos sinpticos, switches para configurar los resistores, un motor, entre las piezas ms importantes, y le dieron el nombre de Snark. Este primer cerebro sinttico aprendi a moverse a travs de un laberinto, que en la poca era considerado como la prueba estndar de inteligencia sinttica, y lo hizo a pesar de varias fallas de conexiones, demostrando tolerancia a los fallos. La primera computadora neural que realmente trabajaba en el mundo fue construida por Rosenblatt, Wightman y Martin en 1957 en el Laboratorio Aeronutico Cornell. Las seales de entradas eran provistas por un arreglo de 20 x 20 de sensores fotosensibles de sulfuro de cadmio, junto con un arreglo de 8 x 8 de potencimetros manejados por servomotores, que eran los pesos sinpticos ajustables. Este aparato fue llamado Perceptrn Mark I. Los estmulos eran la entrada del Perceptrn y si la respuesta estaba equivocada, entonces los pesos eran ajustados. No se haca ningn ajuste si la respuesta era correcta, por lo tanto, no haba ningn aprendizaje en esa situacin. La siguiente figura muestra el modelo del Perceptrn.

119

Ilustracin 31: Perceptrn.

2.5.4. UN PERCEPTRN LINEAL COMO DISCRIMINADOR LINEAL 2.5.4.1. El perceptrn como separador de hiperplanos Considrese un perceptrn como el mostrado en la figura anterior. El vector de entrada es combinado , donde de umbral linealmente con los pesos para obtener

es el umbral. Luego

es activada por una funcin , caso contrario , tales que

para producir una salida

cuando

. El conjunto de todos los vectores de entrada

forman un hiperplano H en el espacio vectorial de

120

entrada. H parte el espacio vectorial de caractersticas en los medios espacios izquierdo y derecho y de manera que:

2.5.5. UNA CAPA DE PERCEPTRONES 2.5.5.1. Caractersticas mltiples de la separacin La arquitectura par de una capa de M perceptrones es mostrada a continuacin:

Ilustracin 32: Capa de perceptrones.

Un vector de caractersticas de entrada

es la entrada de la red a travs el

conjunto de N nodos de ramificacin. Las entradas son organizadas de tal manera que cada perceptrn reciba una entrada de cada componente de x. Cada lnea de entrada es

121

ponderada con un coeficiente sinptico (parmetro del peso) del conjunto pondera la lnea del n-simo componente

, donde

que entra al m-simo perceptrn.

Cada uno de los M perceptrones en la capa divide al espacio de caractersticas en dos medios espacios, de tal manera que la capa divide al espacio en medios espacios. Cada

medio espacio es un conjunto convexo y as, las intersecciones de los 2M medios espacios conforman regiones convexas. La siguiente figura muestra estas regiones para los hiperplanos de perceptrones en una capa:

Ilustracin 33: Regiones para los hiperplanos cuando existen 4 perceptrones en una capa.

El nmero mximo de regiones convexas que podran aparecer es de

(lmite

superior), mientras que el mnimo nmero de dichas regiones convexas para M hiperplanos no coincidentes es hiperplanos son paralelos y mostrado en la siguiente figura, para . El ltimo caso que se puede dar ocurre cuando los M es as el lmite superior. ste caso de paralelismo es :

122

Ilustracin 34: Hiperplanos paralelos.

Estos casos no ocurren en la prctica para redes de tamao considerable. El valor esperado

de

es un estimado del nmero de regiones convexas determinadas por la

interseccin de M hiperplanos. El ajuste de los pesos provee las regiones convexas requeridas que contienen las clases separables multilinealmente. El proceso de ajuste de pesos es la parte de entrenamiento (el aprendizaje de la red) que rota y traslada a los hiperplanos. Para que un vector de caractersticas x pertenezca a una cierta regin convexa, debe estar en una combinacin particular de medios espacios, es decir, debe satisfacer condiciones AND de las ecuaciones de los hiperplanos.

123

2.5.5.2. El ejemplo Minsky-Papert Considrese los siguientes vectores de caractersticas y sus correspondientes salidas deseadas: Vector de Entrada (0,0) (0,1) (1,0) (1,1) Valor de Salida 0 1 1 0

Esta asociacin de entradas y salidas tambin es conocida como la funcin lgica XOR. Se intentar entrenar un perceptrn para reconocer correctamente las entradas. Un nmero par de unos en el vector de entrada significa que la red debe sacar un cero y en el caso de un nmero impar de unos la salida debe ser de uno. ste problema especifica que entradas, salidas, pares de vectores

de entrada/salida para entrenamiento y

clases (par e impar). Sin embargo, como se

ve en la siguiente figura, un solo hiperplano no puede separar los cuatro vectores en las dos clases requeridas, no importa cmo est orientado (rotado y trasladado) por los pesos.

Ilustracin 35: Ejemplo de Minsky Papert.

124

La falla de una sola capa de perceptrones para aprender la lgica del problema XOR es el famoso ejemplo de Minsky y Papert de los aos 60 que caus que se pierda el inters en los perceptrones y otras neuronas artificiales por ms de dos dcadas. Una capa de perceptrones provee nicamente separacin lineal.

2.5.6. REDES ALIMENTADAS HACIA ADELANTE DE CAPAS DE NEURONAS 2.5.6.1. Perceptrones en multicapas El poder de una sola neurona puede ser ampliado al usar mltiples neuronas en una red con una arquitectura en capas interconectadas, como se muestra en la siguiente figura:

125

Ilustracin 36: Perceptrones multicapas.

Este tipo de red se lo conoce como Perceptrn Multicapa, MLP por sus siglas en ingls (multiple-layered perceptron) o tambin Red neuronal artificial alimentada hacia adelante (FANN, por Feedforward artificial neural network). A la izquierda est la capa de entradas, que no son neuronas artificiales. La capa escondida, o capa intermedia contiene nodos neurales as como la capa de salida a la derecha. El grfico anterior representa la arquitectura de una red neuronal de dos capas. Las redes neuronales pueden tambin tener mltiples capas escondidas, o intermedias, con el fin de lograr un mayor poder en el aprendizaje para separar las clases no linealmente

126

separables. El teorema Hornik-Stinchcombe-White20 manifiesta que para una red neuronal artificial en capas, basta con que dos de ellas tenga neuronas para aproximar tan cerca como se desee cualquier mapa continuo de un subconjunto cerrado de un espacio dimensionalmente finito en otro espacio dimensionalmente finito, suponiendo que existen las neuronas suficientes en la capa escondida. Tericamente no existe la necesidad de usar ms de dos capas de neuronas ya que de lo contrario: Incrementara la complejidad computacional y la inestabilidad en el entrenamiento, y La operacin de la red sera lenta ya que ms capas causan retrasos en el procesamiento (la idea es que las neuronas en una capa sirvan para el procesamiento en paralelo, mientras que las neuronas en diferentes capas realizan un procesamiento secuencial). Sin embargo una o varias capas extra pueden prevenir el uso excesivo de neuronas en una sola capa intermedia para alcanzar una alta clasificacin no lineal.

2.5.6.2. Ejemplo: Clasificacin del problema XOR con dos capas de perceptrones La siguiente figura representa una red neuronal artificial retroalimentada (FAAN) con dos neuronas escondidas y otra en la capa de salida.

20

Artificial Neural Network Structires. En lnea. Internet 21 de Agosto del 2006. Disponible WWW http://lsc.fie.umich.mx/~juan/Materias/ANN/Papers/artificial-neural-networkstructures.pdf#search=%22Hornik-Stinchcombe-White%20theorem%22

127

Ilustracin 37: Red Neuronal Retroalimentada.

Se tiene:

De tal manera que el resultado son dos hiperplanos paralelos que forman tres regiones convexas, como se muestra en la siguiente figura:

Ilustracin 38: Resultado de una red FANN.

128

Los hiperplanos estn determinados por:

El umbral en la primera neurona en la capa oculta es

si

, caso contrario si ,

. El umbral para la segunda neurona en la capa oculta es caso contrario .

Para realizar las operaciones, se utilizar algo muy comn en el campo de las redes neuronales. Se usar 0.1 en lugar del CERO (0) y 0.9 en lugar del UNO (1). La razn para el uso de estos valores es que los valores de 0 y 1 tienen propiedades especiales que inhiben el entrenamiento del gradiente. Esto provoca que se obtengan los siguientes resultados:

Regin 2:

Regin 1:

Regin 3:

Regin 2:

129

Los cuatro valores dados, causan los tres vectores nicos:

Que identifican tres regiones linealmente separables. Se puede ver de la figura anterior que las regiones 1 y 3 representan a la paridad impar (Clase 2), mientras que la regin 2 representa la paridad par (Clase 1). Para demostrar que una red con una segunda capa de perceptrones puede aprender las clases no linealmente separables del problema XOR, se toma los nuevos pesos en la nica neurona de salida como e y . Esto pondera las lneas a travs de las cuales

entran en la neurona de salida (perceptrn). Utilizando el hiperplano , se necesita ubicar e en una misma clase (Clase

1), como se muestra en la figura anterior, ya que:

Esto se logra al hacer resultados de si , caso contrario

. A continuacin se muestran todos los en la capa de salida satisface a .

. El umbral , donde

As se puede notar que que denota una paridad par; y que

y y

caen en el identificador de salida caen en el identificador de

130

salida

que designa una paridad impar. As las dos capas de perceptrones han

aprendido una funcin altamente no lineal. Redes no mucho ms grandes pueden aprender paridades de 3 o 5 bits. Basado en el ajuste de los pesos en algn proceso ordenado, se pueden aprender funciones ms complicadas que realicen reconocimiento.

2.5.6.3. La utilidad de las funciones de activacin Tal vez se pueda caer en la tentacin de omitir cualquier tipo de funcin de umbral. Sin esta funcin, lo que quedara es una suma lineal en lugar de una decisin como a que medio espacio un vector de entrada pertenece. Considrese la siguiente figura:

Ilustracin 39: Utilidad de las funciones de activacin.

131

Sea un vector de dichas sumas

, donde

es la matriz de pesos cuya primera

columna es el conjunto de pesos en el primer neuro-nodo escondido, la segunda columna es el conjunto de pesos en el segundo neuro-nodo escondido, y as sucesivamente. Sea el vector de entradas, y el sper ndice matriz. Supngase que los componentes de denota la transpuesta de la

se van a mantener como sumas lineales, es seran pasados

decir, no existen funciones de activacin. Entonces los componentes de

directamente a la capa de salida y utilizados para formar nuevas sumas en cada neuro-nodo de salida de la forma La situacin sera: .

Donde

es un producto de matrices. Por lo tanto, las salidas de las dos capas de por una matriz , que

neuro-nodos sera un vector de sumas obtenido al multiplicar

tambin realiza un mapeo lineal. Esto es el equivalente a una funcin lineal sencilla, una matriz , operando sobre un vector de entrada . As se puede concluir que las funciones

de activacin (funciones sigmoides generalmente), son necesarias para obtener una combinacin no lineal que produzca valores de salida a travs de valores de decisin binarios cero o uno.

132

2.5.7. LA OPERACIN DE PERCEPTRONES MULTICAPA 2.5.7.1. Entradas y activaciones de la capa intermedia Dado el siguiente grfico:

Ilustracin 40: Entradas y activaciones de la capa intermedia.

Un vector de caractersticas

, que representa un patrn, entra en la capa de entrando en uno y slo un nodo de se distribuye a

entrada a la izquierda con cada componente

entrada. De cada n-simo nodo de entrada, el n-simo componente cada uno de los

neuro-nodos de la capa intermedia. As, cada m-simo neuro-nodo de componentes de entrada, o

la capa intermedia va a tener una entrada de todos los caractersticas. Cuando cada

entra a su m-simo neuro-nodo de la capa intermedia, es correspondiente a esa en el m-simo neuro-nodo

modificado a travs de la multiplicacin por el peso sinptico lnea de comunicacin. Todos los productos resultantes son sumados:

133

[Ecuacin 5] Y es la salida activada. es la matriz de pesos, y su transpuesta, entonces, la ecuacin 5 provee todas las

sumatorias. Dichas sumas idealmente son calculadas en paralelo en la capa intermedia, donde cada neuro-nodo es conceptualizado como un procesador. Cada neuro-nodo intermedio procesa la sumatoria de esa neurona, entonces el vector a travs de para activar la salida sale de la capa intermedia de

neuro-nodos. La salida de cada una de estas neuronas tambin se distribuye a cada uno de los J nodos.

2.5.7.2. Activacin de la capa de salida

En cada uno de los de cada uno de los

neuro-nodos de la capa de salida, existen

lneas de entrada (una que

nodos de la capa intermedia). Cada uno lleva un valor

entonces experimenta la multiplicacin por el peso sinptico

en la lnea del m-simo en ese mismo

neuro-nodo hacia el j-simo nodo de salida para obtener el producto nodo de salida. Estos obtener:

valores entonces son sumados en el j-simo neuro-nodo para

[Ecuacin 6] Esta sumatoria es procesada por el j-simo nodo de salida a travs de para activar el valor de salida . La capa de salida, por lo tanto, saca el vector

134

. En una red neuronal entrenada, este vector de salida son palabras clave que representan clases de vectores de caractersticas a las que el vector de entrada pertenece. As, toda la operacin de la red N se representa como:

[Ecuacin 7] La red que mapea de un espacio N-dimensional a otro J-dimensional consiste de una combinacin lineal del vector de entrada, seguido de la activacin no lineal, lo que es seguido de otra etapa de una combinacin lineal y la activacin no lineal.

2.5.7.3. Los rangos de datos y pesos Una FANN de arquitectura de dos capas utiliza valores de entrada estandarizados que caen entre el cero y el uno cuando la activacin unipolar es utilizada. Los pesos sinpticos son seleccionados inicialmente de manera aleatoria entre -1 y 1 o entre -0.5 y 0.5 para prevenir cuellos de botella en el entrenamiento. Sin embargo, durante un entrenamiento ms severo los pesos deberan moverse a un rango mayor , donde , que pese a no

ser lo ms deseado puede llegar a ser necesario para llegar a una solucin. Las sumas lineales en las capas intermedias y de salida son contradas por las funciones de activacin, las que son llamadas tambin como funciones de aplastamiento ya que stas reducen las sumas y a los intervalos o .

As, una red neuronal retroalimentada es un mapeo para las activaciones unipolares por: (activaciones unipolares) [Ecuacin 8a]

135

Cuando se utilizan funciones de activacin bipolares, las sumatorias intermedia y

en la capa

en las neuronas de salida podran ser negativas o positivas. En este caso, las , de tal manera que [Ecuacin 8b]

entradas deben satisfacer a la condicin (activaciones bipolares)

2.5.8. PERCEPTRONES MULTICAPAS COMO RECONOCEDORES DE PATRONES Nos referiremos a los perceptrones multicapas como MLP por sus siglas en ingls (Multiple Layer Perceptron).

2.5.8.1. Operacin y modos de entrenamiento Un reconocedor de patrones es un sistema que asocia cualquier vector de caractersticas de entrada de una clase k de una poblacin con un vector identificador de salida

para la clase k. Un MLP entrenado mapea vectores de entrada con vectores de salida , y tiene las siguientes propiedades:

1. Es no lineal. 2. Es estable, en el sentido de que si entonces mapea un vector que est cerca de y est cerca de ,

con otro que est cerca de

(mapeos de muchos a uno). De hecho, una red neuronal es un interpolador y extrapolador no lineal. Se necesita nicamente ajustar los pesos de una manera apropiada para entrenar a una red neuronal

136

para mapear los vectores de caractersticas ejemplares de clases con los vectores de salida identificadores de las clases deseadas, o para aproximar funciones de Para utilizar un MLP como reconocedor de patrones, se necesita: 1. Obtener un conjunto de vectores de caractersticas clases. que a .

contiene uno o ms ejemplares de cada una de las 2. Inventar un conjunto de para las

vectores de salida identificadores (objetivos) dismiles clases y emparejar un identificador con cada ejemplar de ,y y los pesos de salida hasta que todos los vectores ejemplares de entrada

entrada para formar los pares ejemplares de entrada/salida 3. Ajustar los pesos escondidos

estn asociados con los identificadores correctos.

La distancia entre cada salida actual el error de clasificacin cualquier otro vector de

y el identificador de salida objetivo , y debe ser menor a la distancia desde

es a es

entrenamiento para todos los

(incorrecto)

que

. La sumatoria total de los . La sumatoria parcial es

errores ajustados es

de los errores ajustados para cualquier vector ejemplar de entrada . As:

137

[Ecuacin 9]

2.5.8.2. Algoritmo para el entrenamiento como el ajuste de pesos iterativo Ya que un MLP es un mapa no lineal, no existe una manera para encontrar analticamente los pesos que producen los el mejor mapeo entre los vectores de entrada y los de salida. Entonces, se debe utilizar un mtodo iterativo que implementa el siguiente algoritmo generalizado:

Paso 1: Paso 2:

de Crear el conjunto inicial de pesos manera aleatoria en la iteracin CERO, poner en una variable . En la -sima iteracin, se actualizar el r-simo conjunto de pesos al -simo conjunto de pesos de acuerdo a alguna estrategia

Paso 3:

Tabla 3: Algoritmo para el entrenamiento como ajuste de pesos iterativo.

que permita que el SSE decrezca. Si se alcanza un criterio de parada, entonces parar; caso contrario ir al paso 2.

Probablemente existan mltiples vectores de caractersticas ejemplares para cada una de las clases, lo que significa que diferentes vectores ejemplares para la clase k-sima

deben tener el mismo identificador como vector de salida objetivo. El ajuste de los pesos contina hasta que todas las entradas sean mapeadas con las salidas objetivo (identificadores). Una vez que el entrenamiento supervisado minimiza el SSE total, la red neuronal puede ser utilizada en un modo operacional para mapear vectores de caractersticas de una poblacin , de la cual, a travs de un conjunto de entrenamiento se han obtenido identificadores

138

para las diversas clases de esa poblacin (reconocimiento). Esto requiere que se haya realizado una clasificacin a travs de un entrenamiento supervisado de la red neuronal previa sobre los ejemplares. La tarea de la clasificacin no supervisada de una poblacin requiere que la red neuronal realice una auto organizacin para organizar un ejemplo de vectores de caractersticas en clases.

2.5.9. EL TEOREMA DE HORNIK-STINCHCOMBE-WHITE Y EL MODELO MLP 2.5.9.1. El teorema En los aos 80 se pensaba que si un MLP estndar con una sola capa intermedia era poderoso, entonces uno con dos o ms capas escondidas debera serlo aun ms. Se han aplicado MLPs con varias capas intermedias as como funciones sumamente complejas en lugar de sigmoides para resolver problemas de ingeniera, con la esperanza de obtener mejores resultados. Como respuesta se estableci el siguiente teorema: Una FANN con dos capas de neuro-nodos y una funcin de activacin no constante y no decreciente en cada neuro-nodo intermedio puede aproximar cualquier funcin continua de un subconjunto cerrado y limitado de un espacio euclidiano N-dimensional a un espacio euclidiano J-dimensional con una exactitud pre-especificada, considerando que sern utilizadas la cantidad suficiente de neuro-nodos en una nica capa intermedia.

139

2.5.9.2. Principio El teorema de Hornik-Stinchcombe-White establece que para cualquier problema de mapeo, que incluya reconocimiento y clasificacin, una falla de la FANN para aprender la tarea de mapeo puede ser atribuida a la avera de la arquitectura (el entrenamiento) o a la naturaleza estocstica o inapropiada de los datos, pero no al paradigma de la FANN.

2.5.9.3. Arquitectura

Para una red neuronal con una nica capa intermedia de cuestin es cundo la cantidad de neuronas es suficiente. El nmero de caractersticas

neuro-nodos, la pregunta en

en los vectores de caractersticas de entrada es el nmero de

determinado de manera separada de las consideraciones de los datos. Sea clases para ser separadas, se debe encontrar el nmero el nmero

de las neuronas intermedias y pequeo que

de neuro-nodos de salida. Se puede permitir para un nmero

, por lo que puede haber un componente de salida nmero ms grande, se toma (de

alto para cada clase. Para un ), por lo que existe una nica

combinacin de valores altos y bajos cara cada identificador de clase. El nmero de nodos de salida puede ser cualquiera , pero un nmero pequeo evita una complejidad

computacional adicional. Algunas aplicaciones necesitas una nica salida, que puede ser alta o baja para identificar dos clases. Pero an as, dos salidas pueden aprender ms fcilmente y ser ms robustas. Una capa intermedia de neuronas crea hiperplanos que parten al espacio de y con un

caractersticas en un nmero de regiones convexas que est entre

140

valore esperado de aproximadamente nodos en la capa intermedia es formaran aproximadamente

. Si se considera que el nmero de neuro, entonces se obtendra hiperplanos que

conjuntos convexos en el espacio de caractersticas.

Grupos de estas regiones convexas pueden ser unidas (operacin OR) efectivamente en la capa de salida para formar las regiones no convexas para las clases que son no

linealmente separables. En el caso de que

neuro-nodos intermedios no se puedan

entrenar apropiadamente en unos pocos intentos, entonces se debe cambiar la arquitectura de la red neuronal. Esto significa que se podra agregar o quitar neuro-nodos intermedios para obtener una mejor particin del espacio de caractersticas en conjuntos convexos para luego ser unidos en clases no convexas por la capa de salida. Una regla heurstica popular es que el nmero de neuro-nodos en la capa intermedia debe ser pequea para poderla entrenar limpiamente. El nmero de nodos intermedios en un MLP debe ser lo suficientemente grande para alcanzar la exactitud requerida. Para alcanzar estas dos condiciones se puede utilizar cualquiera de estas dos reglas: 1. Iniciar el entrenamiento con un nmero ms grande de neuro-nodos que los necesarios, entrenar y luego podar neuronas que no contribuyen

significativamente, y luego volver a realizar el entrenamiento. 2. Iniciar con un nmero pequeo de neuro-nodos y durante el entrenamiento agregar nuevos nodos, para luego de cada adicin volver a entrenar.

141

2.5.10. REDES VINCULADAS FUNCIONALES (FLN - FUNCTIONAL LINK NETS) 2.5.10.1. Las redes de Pao Un tipo de FANN necesita dos capas de neuronas para poder separar clases de vectores de caractersticas no separables linealmente en espacios de caractersticas N-dimensionales ( . Sean y dos clases en que no son separables linealmente. Si se puede ,

colindar otra dimensin de caractersticas entonces el nuevo espacio se convierte en y si se puede usar valores de

de, por ejemplo, CERO para la clase 1 y UNO para la por un hiperplano de

clase 2, entonces algunas clases se podran separar en dimensin situacin: a travs de un umbral de

. En la siguiente figura se muestra la

Ilustracin 41: Situacin para aplicacin de las redes de Pao.

142

An ms dimensiones podran permitir un mayor poder en la separacin lineal en un espacio de caractersticas de ms dimensiones. Mientras se pueda agregar nuevos valores dimensionales a los vectores de entrenamiento, no se podr saber que nuevos valores colindar a los nuevos vectores de caractersticas de clases desconocidas. As aparece que el principio de insercin para la separacin lineal termina en un camino sin salida. Sin embargo, existe una manera de lograrlo. Las FLN, creadas por Pao en 1989, automticamente proveen dimensiones extra y valores para las dimensiones agregadas a los vectores de caractersticas. Crean nuevas dimensiones al definir funciones de las caractersticas viejas para obtener las nuevas de la forma . En el modelo tensor se utiliza la siguiente ecuacin: [Ecuacin 10] Modelos de tensores de un orden ms alto pueden ser utilizados. Por ejemplo, se puede agregar , y ms a la ecuacin 10. Usualmente, los

trminos de segundo orden agregan un nmero suficiente de nuevas dimensiones (caractersticas) para permitir la separacin lineal de las clases que no lo eran para la siguiente figura muestra una situacin de un tensor de segundo orden: . En

143

Ilustracin 42: Modelo de tensor de segundo orden.

Otros modelos utilizan funciones ortonormales (ortogonales y normalizadas), polinmicas, y cualquier otro tipo de funciones de caractersticas para obtener las caractersticas agregadas.

2.5.10.2. El problema XOR con FLNs En la siguiente tabla se muestran los datos para un espacio de caractersticas bidimensional y para otro de tres dimensiones que tiene la caracterstica de segundo orden agregada.

144

0 0 1 1

0 1 0 1

XOR 0 1 1 0

0 0 1 1

0 1 0 1

0 0 0 1

XOR 0 1 1 0

En la siguiente figura se muestran los datos XOR para dos dimensiones insertados en un espacio de caractersticas de tres dimensiones con los valores tridimensionales nuevos dados por .

Ilustracin 43: Datos XOR para dos dimensiones.

En el siguiente grfico se muestra la red FLN para la funcin lgica XOR:

145

Ilustracin 44: Red FLN para la funcin lgica XOR.

2.5.10.3. Un algoritmo FLN Este tipo de redes utilizan una nica capa de neuro-nodos. En el caso de la lgica XOR, una nica dimensin extra es suficiente. Las caractersticas extra-dimensionales deben ser suficientes en nmero para separar el nmero de clases no separables linealmente por

la nica capa de neuro-nodos. El entrenamiento es realizado por propagacin hacia atrs. A continuacin se describe un algoritmo de alto nivel, donde unipolar. Paso 1: Paso 2: Poner en (nmero de iteracin) y llenar el conjunto de pesos . de manera aleatoria entre Actualizar las salidas de la red para y a travs de . Actualizar los pesos, este proceso deber basarse en el minimizar el SSE y por: para es una sigmoide

Paso 3:

Paso 4:

/ Si

/ . entonces parar, caso contrario ir al paso 2.

Tabla 4: Algoritmo FLN.

146

Las ventajas de las FLNs son que para un nmero pequeo

de caractersticas son

rpidamente entrenables y son muy sencillas. La desventaja est en que para un nmero grande de caractersticas, el nmero extra puede ser grande, an para un modelo tensor de caractersticas extra que . Para , el

de segundo orden. En este caso, existen un nmero agregar, lo que da un total de resultado sera de caractersticas tensoras

caractersticas. En la prctica, se agrega unas pocas y se entrena, luego se agrega una ms a la vez y se procede a clases apropiadamente.

entrenar, iterativamente hasta que la red separe todas las

2.5.10.4. Separacin polinmica de espacios de caractersticas Una generalizacin de la separacin lineal de un espacio de caractersticas por hiperplanos es la separacin no lineal de un espacio de caractersticas por polinomios, cuyas superficies en el espacio son hipersuperficies. En lugar de:

Se puede utilizar perfectamente:

En el espacio de caractersticas

, por ejemplo,

determina

una superficie hiperelipsoide que separa el espacio de caractersticas en una parte interna y otra externa. Para y , esto podra ser un crculo que parta al plano en dos , se puede colocar

regiones, una interna y otra externa. Al trasladar, a travs de

estas superficies en cualquier lado. Para pesos diferentes y al usar trminos de segundo

147

orden como

, varias superficies pueden ser utilizadas para partir el espacio de

caractersticas (paraboloides, hiperboloides y elipsoides).

2.5.11. REDES CON FUNCIONES EN BASE RADIAL (RBF RADIAL BASIS FUNCTION NETWORKS) Un tipo de FANN que es prcticamente nuevo, y adems muy poderoso, son las redes con funciones en base radial (RBF), que difiere de un MLP en las funciones de activacin y en cmo se las utiliza. Una red RBF contiene lo siguiente: 1. Una capa de entrada de nodos ramificados, uno para cada componente, tal y como lo tiene un MLP. 2. Una capa intermedia de neuro-nodos, donde cada uno tiene un tipo especial de funcin de activacin centrado en el vector centro de un cluster o subcluster en el espacio de caractersticas, de tal manera que la funcin tiene una respuesta no insignificante para los vectores de entrada que estn cerca de su centro. 3. Una capa de salida de neuro-nodos que realiza la sumatoria de las salidas de las neuronas intermedias, por lo que, la capa de salida utiliza una funcin de activacin lineal. En la siguiente figura se presenta una red general RBF.

148

Ilustracin 45: Red general RBF.

Una diagonal de cero:

en cada salida asegura que los valores medios de las sumas sean distintos

[Ecuacin 11] Las RBFs ms comunes son , donde

[Ecuacin 12] Con centro en . toma su valor mximo cuando . Se utiliza un neuro-nodo , en el

escondido por cada vector de caractersticas de entrada ejemplar por lo que para este caso se pone m-simo neuro-nodo intermedio tiene caractersticas de entrada. El parmetro . El vector central

componentes para empatarse con el vector de en la ecuacin 12 es utilizado para controlar la

extensin de la funcin de base radial para que sus valores decrementen ms despacio o

149

ms rpido mientras se incrementa.

se mueva lejos del vector central

, que es, mientras

La siguiente figura muestra una RBF en un plano:

Ilustracin 46: Red RBF en un plano.

La siguiente figura muestra un corte de un RBF en el m-simo neuro-nodo para el cual le eje horizontal es la distancia .

150

Ilustracin 47: Corte de un RBF en el m-simo neuro-nodo.

La regin en el espacio de caractersticas donde campo receptivo de ese neuro-nodo. Los valores activados una salida de la red

es alta es llamada la regin del son sumados para formar

y determinados por cualquiera de las siguientes ecuaciones:

[Ecuacin 13]

[Ecuacin 14] Cada RBF es influyente nicamente en su campo receptivo, que es una regin pequea del espacio de caractersticas. Las regiones importantes del espacio donde los ejemplares son agrupados estn cubiertas en conjunto por los RBF que estn centradas en los clsteres

de los vectores de caractersticas ejemplares que representan subclases. Otros RBF son utilizados algunas veces, pero ellos responden nicamente a pequeas regiones de un

151

espacio de caractersticas. De acuerdo al teorema de Hornik-Stinchcombe-White, las funciones de activacin pueden ser cualquier funcin no constante y no decreciente. El entrenamiento consiste de: 1. Asignar a cada vector paramtrico neural , 2. Seleccionar un parmetro para la extensin del campo receptivo, para la capa de salida, en la capa de salida para un nico vector ejemplar

3. Llenar el conjunto inicial de pesos

4. Realizar el entrenamiento supervisado de los pesos forzar que el SSE

total decrezca todo lo que se pueda, donde:

[Ecuacin 15]

Ya que se utiliza entrenamiento supervisado, en lugar de auto organizacin, los correspondientes pares de ejemplares de vectores de caractersticas de entrada y los identificadores de salida deben ser provistos.

Existen diferentes paradigmas para las redes RBF que determinan el cmo debe ser realizado el entrenamiento. En los casos ms simples, los pesos intermedios y en los neuro-nodos

en la capa de salida permanecen fijos, es decir, no se requiere

entrenamiento. En el segundo caso, y siendo un modelo ms flexible, se entrena nicamente los pesos en la capa de salida. En el tercer caso, y siendo ste el modelo

ms flexible de todos, se requiere el entrenamiento de todos los pesos, centros y otros parmetros. Cada RBF depende de su centro donde toma su mximo valor y es

152

activado por cualquier entrada respuesta cuando Cada RBF es lejana a .

cercana a

. Esencialmente no presenta una

responde a la regin convexa (campo receptivo) del espacio de es alto nicamente cuando esta

caractersticas; lo que significa que cerca al centro

. Un gran nmero de estas funciones cubre ya sea el espacio de

caractersticas o las subclases en el espacio de caractersticas con sus campos receptivos, de tal manera que la capa de salida de neuro-nodos pueda unir (operacin OR) algunos de ellos en regiones de clases no convexas (no separables linealmente). Por lo tanto, deben existir un nmero suficiente de RBFs para cubrir todas las subclases que son linealmente separables. La siguiente figura muestra una porcin de un espacio de caractersticas bidimensional cubierto por RBFs.

Ilustracin 48: Porcin de un espacio de caractersticas bidimensional cubierto por RBFs

153

2.5.11.1. Un algoritmo rpido de entrenamiento

Aleatoriamente se llena la matriz de pesos inicial

en los neuro-nodos en la capa de

salida y luego se los ajusta a travs del mtodo de la pendiente ms inclinada. El mtodo

utiliza la pendiente negativa neuro-nodos intermedia. Paso 1: son igualados al ejemplar

. Los vectores centrales de los por lo que hay nodos en la capa

Paso 2:

Paso 3:

Paso 4:

/Se usa los vectores ejemplares de entrada como centros y parmetros de entrada./ ; / neuro-nodos Entrada ; escondidos./ /Asignacin de los Para hasta hacer ; ejemplares como centros de los neuro-nodos./ Entrada ; ; / es el nmero de iteraciones deseadas./ ; ; /Asignacin del SSE total, para parar./ /La tasa de aprendizaje ; inicial./ /Inicializar los pesos en los neuro-nodos en la capa de salida./ hasta hacer Para /Nmeros aleatorios Para hasta hacer uniformes entre ; ./ /Calcular un nico parmetro de extensin./ /Calculo del parmetro de extensin./ ; /En cada m-simo neuroPara hasta hacer ; nodo poner ./ /Calcular caractersticas ejemplar de entrada Para hasta hacer Para Si hasta entonces hacer ; ./ para cada vector de /Para cada q-simo vector de entrada ejemplar./ /Para cada nodo de salida./ /Para ./ /Caso contrario calcular los ,

Caso contrario

154

valores de Paso 5: ; /Actualizar los valores de salida Para Para y hasta hasta ./ hacer hacer ; ; Si Caso contrario ; , entonces ; ;

./

de los neuro-nodos de salida para /Para cada vector ejemplar ./ /Para cada nodo de salida./ /Actualizar las salidas de la capa de salida./ /Calcular en nuevo SSE total./ /Si el error es menor, entonces haga a ligeramente ms grande./ /Si no ligeramente ms pequea./ /Actualizar el SSE total./

Paso 6:

/Ajustar los pesos en los nodos de la capa de salida de acuerdo a la pendiente ms inclinada./ Para hasta hacer ./ /Para cada peso Para hasta hacer /Se actualiza la pendiente ms inclinada./

Paso 7:

; /Parar o repetir el entrenamiento de Si o entonces parar; Caso contrario ; ir al Paso 5;

Tabla 5: Algoritmo rpido de entrenamiento para RBF.

/Nota: no se repite el Paso 4 ya que los valores de son fijos./

Las ventajas de las redes RBF al utilizar el algoritmo descrito antes son que son simples y su entrenamiento es extremadamente rpido (ms de 1000 veces ms rpido que el de propagacin hacia atrs) y tienen una sensibilidad reducida al orden de presentacin de los ejemplares de entrenamiento. Las desventajas son que para conjuntos de datos grandes se debe utilizar algn otro tipo de algoritmo de entrenamiento, que requiera ms neuronas

155

intermedias que los MLP y as ms tiempo para que la red trabaje en un modo operacional. Usualmente requieren un gran nmero de neuro-nodos intermedios para obtener buenas aproximaciones de las funciones. En la prctica, se utiliza redes RBF para la clasificacin y el reconocimiento donde un nmero moderado de clases estn involucradas, y especialmente donde la dimensin y se asigna para

del espacio de caractersticas es grande. Usualmente se iguala cada

un ejemplar de una subclase diferente. Para la separacin no lineal, se necesita . Los MLPs con sigmoides o

un vector de caractersticas de cada ejemplo de tamao

proveen mejores resultados para muchos problemas grandes donde los valores de son grandes.

2.5.12. MAPAS DE CARACTERSTICAS AUTO-ORGANIZATIVOS Y APRENDIZAJE DE CUANTIZACIN DE VECTORES 2.5.12.1. Concepto de la red bsica de Kohonen21 La red de Kohonen tiene una nica capa de neuro-nodos adems de una paca de entrada de nodos de ramificacin. En la capa neural existen vector paramtrico de pesos de dimensin neuro-nodos y cada uno tiene un

, que es la misma que la dimensin de , donde . La

los vectores de caractersticas de entrada

siguiente figura muestra una red de Kohonen, que tambin es llamada Mapa de caractersticas auto-organizativo (SOFM por sus siglas en ingls, self-organizing feature map).
21

Kononen Networks. En lnea. Internet 30 de Agosto del 2006. Disponible WWW http://www.cs.bham.ac.uk/~jlw/sem2a2/Web/Kohonen.htm

156

Ilustracin 49: Red de Kohonen.

Los vectores de pesos

son inicializados aleatoriamente en el espacio de es seleccionado de los ejemplos y cada , siendo

caractersticas al inicio. Un vector de entrada ejemplar

y se lo pone en la red y los cuadrados de las distancias entre son calculados por:

[Ecuacin 16] La mnima distancia es determinada entonces para obtener el neuro-nodo que es

el ganador sobre los otros. De este punto en adelante, existen diferentes estrategias. En la estrategia el ganador toma todos, el nodo ganador actualiza su vector paramtrico de pesos a travs de: [Ecuacin 17]

157

Donde

es la tasa de aprendizaje. Todos los neuro-nodos restantes mantienen sus valores

anteriores. Otra estrategia es la de actualizar positivamente (reforzar o premiar) todos los neuro-nodos que estn cercanos al nodo ganador y actualizar negativamente (extinguir o castigar) a todos aquellos neuro-nodos que estn lejos del ganador. Este proceso es llamado como de inhibicin lateral. Cuando un vector es introducido a una red de Kohonen, el producto punto . Cuando

es calculado como la salida de cada m-simo nodo y estn muy cercanos, entonces la correlacin

es muy grande por lo que el

neuro-nodo

con la mayor correlacin gana. Las neuronas pueden tambin ser

arregladas en arreglos unidimensionales o bidimensionales. En el caso anterior vecindarios cuadrados tienen como centro al nodo ganador, y as todos los neuro-nodos que estn dentro del vecindario son reforzados, mientras que los que estn afuera son castigados. A continuacin se muestra el caso de un arreglo unidimensional:

Ilustracin 50: El caso de un arreglo unidimensional.

Y a continuacin el caso de un arreglo bidimensional:

158

Ilustracin 51: El caso de un arreglo bidimensional.

2.5.12.2. Algoritmo para un mapa de caractersticas auto-organizativo

En el algoritmo a continuacin se toman en cuenta estrategia de el ganador toma a todos es utilizada.

neuro-nodos en una nica capa y la

Paso 1:

Ordenar aleatoriamente a Para hasta hacer Para hasta hacer

Paso 2: Paso 3:

/Pesos aleatorios./

Obtener los ejemplares Para hasta hacer Calcular la distancia ; Encontrar

del conjunto de ejemplares; /La distancia entre ./ y cada ./

con la mnima distancia /Minimizar a travs de /Reforzar premiar./ a travs de /Extinguir castigar./

Paso 4:

Actualizar en neuro-nodo

Actualizar todos los neuro-nodos

159

Paso 5:

Tabla 6: Algoritmo para un mapa de caractersticas auto-organizativo.

Si el criterio de parada se cumple entonces parar ; Caso contrario entonces ; Si Ir al Paso 2;

2.5.12.3. Algoritmo para el aprendizaje de cuantizacin de vectores Este mtodo fue desarrollado como una herramienta para compresin de imgenes. Estas redes son similares a los SOFM, excepto en que la capa de neuro-nodos utiliza vectores de salida objetivos para que exista correspondencia con los ejemplares de entrada ;

lo que significa que se entrena en el modo supervisado en lugar que en el autoorganizativo. As, los vectores identificadores deben estar disponibles para determinar si el ganador es correcto. En la siguiente figura se muestra este tipo de redes. Cada m-simo neuro-nodo contiene un vector central .

Ilustracin 52: Red para cuantizacin de vectores.

160

Cuando un vector de caractersticas son calculados para

es presentado a la red, los valores neuro-nodos de salida, slo uno de ellos como la clase a la que el vector de entrada

. De estos

saca un valor alto para denotar la clase

pertenece. El ganador es reforzado, mientras que los otros son castigados.

Paso 1:

Paso 2: Paso 3:

Inicializar los centros de los neuro-nodos al igualarlos al primer vector de ; caractersticas ejemplar de entrada /Inicializar el nmero de ejemplar y el ; nmero de iteracin./ hasta hacer Para Encontrar el neuro-nodo ganador por el mayor valor de ; es alto para el componente correcto de /Reforzar./ Caso contrario /Castigar./ Si Si entonces y luego ir al Paso 2; Caso contrario ; ; Si entonces parar Caso contrario ; Ir al Paso 2; / es una funcin decremental./

Paso 4:

Tabla 7: Algoritmo para el aprendizaje de cuantizacin de vectores.

161

2.5.13. LAS REDES NEURONALES RECURRENTES DE AMARI-HOPFIELD 2.5.13.1. El modelo de Amari22 En 1977 Shun-ichi Amari public un Nuevo modelo de redes neuronales que estableca una nueva perspectiva. Este modelo recurrente se muestra en la siguiente figura:

Ilustracin 53: Modelo de Amari.

Aunque existe una sola capa de neuro-nodos en la arquitectura, la recurrencia tiene el efecto de proveer un nmero ilimitado de capas: una para cada lazo recurrente a travs de la capa nica. Esta red est derivada del modelo McCulloch-Pitts, y fue el precursor de la red de Hopfield. Las entradas iniciales, mostradas en la figura como las neuronas y se convierten en las salidas iniciales , entran directamente a en un tiempo . Las

22

Neural Networks and Machine Learning. En lnea Internet 20 de Julio. disponible WWW http://www.newton.cam.ac.uk/reports/9798/nnm.html

162

salidas entonces son retroalimentadas a unos nodos de ramificacin donde son distribuidos a cada uno de los neuro-nodos. As cada neuro-nodo recibe las retroalimentacin simultneamente. En el entradas de

-simo lazo (iteracin), en el tiempo , que son

los neuro-nodos han sacado las salidas

alimentados y distribuidos nuevamente a los neuro-nodos. Cada n-simo nodo calcula su siguiente salida por medio de un conjunto de pesos sinpticos

, un conjunto de umbrales valor de salida en el n-simo neuro-nodo es:

, y una funcin de umbral. El nuevo

[Ecuacin 18] Donde es la funcin de umbral si ;o si (el principio

de todos o ninguno). El estado del sistema en el tiempo es la tupla de ceros y

unos. Si la red converge sobre los lazos de retroalimentacin iterativos en un estado estable donde para para algn , entonces este estado fijo es el identificador que fue ingresado inicialmente. La n-sima a una n-sima neurona (por ejemplo, a si

correspondiente al vector de caractersticas neurona tambin retroalimenta su valor

misma), pero esto tiende a tener un efecto dominante luego de un nmero de iteraciones. Estudios muestran que cuando la convergencia a un estado estable ocurre, es ms rpida que otras redes recurrentes similares, desafortunadamente, la convergencia no necesita ocurrir.

163

2.5.13.2. El modelo de Hopfield La red discreta de Hopfield es una variacin de la red de Amari. La siguiente figura muestra este modelo:

Ilustracin 54: El modelo de Hopfield.

En los nodos de ramificacin que se ven a la izquierda, las lneas de retroalimentacin distribuyen a todos los neuro-nodos los datos excepto a aquellos de los que vienen la salida. En otras palabras, ningn neuro-nodo se alimenta a si mismo. Otro cambio con respecto al modelo de Amari est en que variables aleatorias , que son modelos

para disminuir el ruido y los retrasos entran a cada neuro-nodo. Las entradas forman el estado inicial retroalimentacin estn denotados por a la neurona ), donde en la red como antes. Los pesos en las lneas de (en la lnea que viene de la neurona . En el lazo de retroalimentacin y que va -

para toda

simo, la salida ponderados

es procesada al sumar los valores retroalimentados , agregando un valor aleatorio , y luego restando un valor

164

umbral

. Los valores resultantes son sumados y luego pasados a travs de una funcin

signo (sign function - funcin lgica que extrae el signo de un nmero real) (umbral bipolar) definida por si , caso contrario . El valor calculado en el n-

simo neuro-nodo es entonces:

[Ecuacin 19] Las salidas actualizadas realmente son calculadas de manera asncrona en un orden aleatorio. Solo un neuro-nodo active una salida en cada actualizacin, por lo que una nica entrada de retroalimentacin cambia en cada lazo. Sin embargo la activacin de un neuronodo nico afecta los cambios de todos los valores neurales en cualquier tiempo que stos se disparen.

2.5.14. REDES NEURONALES RECONOCEDORES DE PATRONES

ARTIFICIALES

RECURRENTES

COMO

Las redes neuronales recurrentes operan de manera diferente que una red alimentada hacia adelante (FANN) que debe ser entrenada para mapear vectores de caractersticas ejemplares de entrada en un identificador de salida deseado. Las redes retroalimentadas originalmente no eran entrenadas, sino que eran nicamente probadas para determinar un conjunto de estados invariables para los que los vectores de entrada convergen, si existe alguno. A travs de la investigacin se ha descubierto que una matriz de pesos simtrica es suficiente para la convergencia. El proceso es como sigue:

165

1. Calcular los pesos una vez de los vectores de entrada ejemplares como correlacin de las entradas iniciales para obtener la matriz simtrica de pesos. 2. Probar la red con los pesos en los vectores de caractersticas para determinar el estado (identificador) para el que cada vector converge. La convergencia recurrente ocurre cuando todos los neuro-nodos se han disparado en cualquier orden sin haber cambiado el estado de la red. Luego del entrenamiento y de haber obtenido los estados de identificacin para cada vector de caractersticas de entrada ejemplar, un nuevo vector de caractersticas es ingresado como el vector inicial

en el modo operacional. Un nmero de recursiones toma lugar hasta que la red converge en un vector de salida estable, por ejemplo todas las neuronas se han disparado. Entonces pertenece y se dice que la red reconoce a . para todas las y

es un identificador de la clase a la que

166

2.6. REDES NEURONALES RECURRENTES

2.6.1. LA ARQUITECTURA DE LA RED DE HOPFIELD 2.6.1.1. El modelo discreto de Amari-Hopfield La arquitectura de esta red se muestra a continuacin:

Ilustracin 55: El modelo discreto de Amari - Hopfield.

En el tiempo

, un vector de caractersticas de entrada

es presentado

a la nica capa de neuro-nodos de la red, un componente por neuro-nodo. Este vector de entrada inicial, es tambin el vector inicial de salida .

Cada componente de entrada debe ser o UNO (1) o MENOS UNO (-1). Cada salida inicial es alimentada hacia atrs a un nodo de distribucin, el que distribuye esta entrada a cada uno

167

de los neuro-nodos excepto al que le corresponde, tal y como se muestra en el grfico. Estas lneas van hacia las neuronas y son excitadas o inhibidas por los pesos designa el peso en la lnea del neuro-nodo de salida cualquier j-simo neuro-nodo, los valores ponderados travs de una funcin de umbral (o de activacin) en la -sima iteracin, a travs de: , donde

al neuro-nodo de entrada . En son sumados y pasados a

para obtener una salida actualizada

[Ecuacin 1] Donde los umbrales se los toma como CERO, por lo que, en este caso la funcin signo se

convierte en el umbral de activacin.

[Ecuacin 2] El valor activado es cuando .

Originalmente los valores utilizados eran de CERO y UNO, sin embargo, se utiliza los valores de MENOS UNO y UNO por conveniencia para utilizar el umbral cero. En resumen, el vector de entrada inicial pesos en la matriz de pesos activadas est formado por valores de 1 y -1, las entradas de los son para , y las salidas

tambin toman valores de 1 o -1.

168

2.6.1.2. Modos de operacin serial aleatorio y completamente paralelo Para la accin sncrona paralela, la actualizacin de todas las salidas concurrentemente rinde los vectores de salida actualizados como el vector de las sumas que ya han pasado por el umbral [Ecuacin 3] en la salida de los neuro-nodos, donde y para

. Para superar la falla que tiene el modelo recurrente de Amari en convervengia, la red de Hopfield fue especificada para activarse asncronamente de la siguiente manera: 1. En cada actualizacin, nicamente un neuro-nodo seleccionado aleatoriamente se activar, de tal manera que una sola salida actualizada 2. Una entrada aleatoria ser generada.

ser agregada a la suma en la actualizacin (los trminos

asincrona y aleatoriedad presentan ruido y retraso que estn presentes en sistemas biolgicos). 3. La nueva salida actualizada ser mantenida y utilziada para actualizar cada futura activacin asncrona de cualquier neuro-nodo. El modo de operacin que se describi se llama serial aleatorio ya que no existe actualizaciones paralelas de dos o ms nodos simultneamente. En la actualidad se utiliza un modelo de activacin paralelo, donde dos o ms, posiblemente todos, neuro-nodos se dispararn simultneamente. La red neuronal recurrente de Hopfield completa (HRNN por sus siglas en ingls Hopfield recurrent neural network), con entradas aleatorias , se

dispara de una manera serial aleatoria en el j-simo neuro-nodo para actualizar la nica jsima salida a travs de

169

[Ecuacin 4] Cuando un sistema est operando en el modo completamente paralelo se escribe [Ecuacin 5] para representar a la ecuacin 4. Sin embargo el mayor inters de los investigadores est centrado en la asincronicidad. Hopfield en 1982 escribi que los clculos sincrnicos de una computadora convencional no puede modelar un sistema biolgico, donde la asincronicidad existe por las demoras en la propagacin de la seal nerviosa (por los diferentes caminos de distintas longitudes, y los diferentes niveles de seales). Adems, implic que los cmputos asincrnicos pueden tener caractersticas tiles en un sentido colectivo donde emerge un cierto estado estable, y que stos son absolutamente diferentes que los de las mquinas sncronas. El uso de las redes de Hopfield para el reconocimiento es directo. Los pesos son calculados por una frmula simple y correlacional sin la necesidad de entrenamiento iterado. Luego un vector de caractersticas de ejemplo, que se desea sea reconocido es ingresado y la red itera en l hasta que el vector de salida (estado) sea fijo, en cuyo caso se dice que la red ha convergido a un estado de decisin. El vector de salida fijo es el identificador para la clase a la que el vector de entrada inicial pertenece.

170

2.6.2. LAS REDES DE HOPFIELD COMO AUTMATAS FINITOS 2.6.2.1. Estados, atractores y ciclos Aqu se consideran las transiciones de estados para el caso promedio, donde el valor aleatorio de cada ruido Hopfield con asume su valor promedio de CERO. El estado de una red de es , donde

neuro-nodos en cualquier tiempo

cada componente del estado puede tomar uno de los dos valores, 1 o -1. Existen posibles estados diferentes de la red en el hipercubo binario estado inicial activada por . Empezando por el

, el estado cambia cada vez que un neuro-nodo se dispara (su salida es ), entonces el sistema se mueve a travs de la trayectoria de los estados a

travs del tiempo. Cuando un solo neuro-nodo puede activarse a la vez, en un modo serial aleatorio, el estado cambia en un nico componente a la vez. En un modo operacional completamente paralelo, todos los neuro-nodos cambian simultneamente, y la actualizacin est descrita por: [Ecuacin 6] donde est definida por la ecuacin 3, y queda as:

[Ecuacin 7] En los modos asncronos donde un neuro-nodo es actualizado simultneamente, se utiliza para denotar la funcin de actualizacin cuando actualizado, entonces: es el nico componente que ser

171

[Ecuacin 8] En la siguiente figura, se denota los estados por .

Ilustracin 56: Estados, atractores y ciclos.

Un estado

es llamado estable cada vez que , donde es el proceso de transicin asncrono y

para todas las

es el proceso de

transicin sncrono. Un conjunto de estados, posiblemente uno solo, del cual no se puede escapar una vez que se ha llegado all, es llamado un atractor. Una secuencia de estados distintos es llamado un ciclo de longitud si las iteraciones continuas de

transicin de estados causa que esta secuencia se repita. Existen trayectorias (o caminos) en la figura anterior que van de a , pero una vez que el camino alcanza el estado

172

no se puede salir. As

es estable, lo que significa que es un atractor nico. Una transicin -simo neuro-nodo seleccionado

de un estado a otro est determinada por el aleatoriamente para ser disparado y el ruido

, por lo que las transiciones son estocsticas.

2.6.2.2. Autmatas finitos Un autmata finito23 (o mquina de estado finito) es un sistema que acepta una cadena de smbolos de un alfabeto como entradas, saca smbolos de un alfabeto como salidas, y contiene una memoria para manera que: 1. El siguiente estado es una funcin del estado actual y el smbolo de entrada actual. 2. El smbolo de salida es tambin funcin del estado actual y del smbolo de entrada actual. Una mquina de este tipo se muestra en el grfico siguiente: smbolos, colectivamente llamados el estado, de tal

23

Introduction to Finite Automata. En lnea. Internet 1 de Septiembre del 2006. Disponible WWW http://www.cs.odu.edu/~toida/nerzic/390teched/regular/fa/intr_2_fa.html

173

Ilustracin 57: Mquina de estados finitos.

Un sistema que satisfaga los criterios anteriores, excepto en que no tiene ninguna entrada es llamado generador de estados finitos (genera una secuencia de salidas que estn en funcin del estado actual). Un sistema que acepta entradas pero no genera ninguna salida es llamado reconocedor de estados finitos. Cuando una secuencia de entradas lleva a un estado estable (un identificador), se dice que el sistema ha reconocido el patrn de la secuencia de entrada. Un autmata puede ser utilizado como reconocedor de estados finitos o como un generador de estados finitos. De hecho, es conveniente utilizarlo como un reconocedor de estados finitos para obtener un carcter especial cuando el reconocimiento es realizado, pero sacar un carcter distinto todas las otras veces. Ya que el orden de activacin es aleatorio, una red de Hopfield es un reconocedor de estados estocstico. El vector de entrada inicial es la entrada y el estado inicial, y

causa un proceso no determinstico que ocurre debido a la activacin de los nodos en un orden al azar. Si un estado estable es alcanzado, la red de Hopfield ha reconocido al vector de caractersticas de entrada inicial y el estado estable es su identificador.

174

2.6.3. CLCULO DE LOS PESOS 2.6.3.1. Una regla de aprendizaje simple: La formula computacional

Los pesos para una HRNN y un conjunto de ejemplares

son calculados por:

[Ecuacin 9a] para ,y [Evuacin 9b] para Donde . es el vector de caractersticas para la -sima clase. Es importante notar que

lo valores para los pesos son de 1 o -1, excepto para las entradas de la diagonal principal, que son ceros ya que no existen lneas para ellos. Hopfield mostr que los estados estables existen cuando es simtrica. Otros estados tambin pueden existir, as como ciclos de

estados. Estudios empricos muestran que algunos vectores de caractersticas convergen a atractores cclicos (que se repiten hacia el infinito sin tener una manera de escapar) o vaga caticamente a travs del espacio de estados (el conjunto de todos los estados posibles). La proba de convergencia de Hopfield establece la convergencia a estados estables, pero requiere la simetra de la matriz de pesos .

175

2.6.3.2. Un ejemplo de clculo de estados y actualizacin de estados

Sea una red de Hopfield que tiene El espacio de estados es tamao de dicho espacio. Primero, se pone para

neuro-nodos. , donde es el

. Sean dos vectores identificadores de estado

(tambin llamados vectores memoria): 1. 2. . .

A continuacin, se calcula los pesos restantes utilizando las ecuaciones 9a y 9b: 1. son encontrados a travs de valor del peso es 1. 2. son encontrados a travs de el valor del peso es -1. 3. Y, son encontrados a travs de , por lo , por lo que , por lo que el

que el valor del peso es -1. As, las filas de Fila 1: 0, Fila 2: 1, 1 0, son: -1 -1

Fila 3: -1, -1 0

176

Se la entrada inicial

. Entonces el estado inicial del sistema es

. Supngase que el segundo neuro-nodo es el primero en activarse y que los disturbios al azar son 0. El componente del estado es obtenido usar la siguiete ecuacin: en el segundo neuro-nodo

Y queda as:

(no cambia) El esquema es: Neuro-nodo 1 2 3 0 1 1 1 0 1 1 1 0 -1 -1 -1 -1 (no se dispara) -1 (se dispara sin cambios) -1 (no se dispara)

Ya que el primer y tercer componetes de

no se disparan en esta primera trancisin por a no

lo que no cambian, la trancisin al nuevo estado de cambia el estado.

Si el terer neuro-nodo se dispara luego, de una manera similar, el nuevo tercer componente del estado es determinado por provoca que se realice la siguiente trancisin: . . Esto

177

Ahora, supngase que el siguiente neuro-nodo en dispararse es el primero, entonces el primer componente del nuevo estado es determinado por

, que implica que la trancisin ser: . Si el segundo neuro-nodo se dispara nuevamente, no existe un cambio en el estado como antes. Si el tercer neuro-nodo se dispara, entonces el estado permanece igual, por lo que un atractor estable ha sido encontrado. Algunas veces sucede que una entrada causar una secuencia de trancisiones que lleva a un estado estable que no es uno de los estados identificadores, en cuyo caso se dice que el sistema converge a un estado estable espreo. El ruido puede llevar a estados espreos.

2.6.4. LOS TEOREMAS DE HOPFIELD Y BRUCK: UN ANLISIS DE LA CONVERGENCIA 2.6.4.1. La trayectoria de la transicin y el teorema de Hopfield Un autmata finito tiene un nmero finito de estados. Para un alfabeto binario como , el espacio de estados est formado por todas las esquinas del hipercubo dimensional. Dado un estado inicial del cual empezar, puede: 1. Permanecer en el estado inicial para siempre. 2. Hacer un nmero finito de trancisiones y luego permanecer en un estado final para siempre. -

178

3. Moverse a travs de una trayectoria repetitiva de estados, conocida como ciclo, para siempre. 4. Moverse a trav{es una secuencia de ciclos (un superciclo) para siempre. 5. Vagar sin ningn objetivo, sin ningn orden de ryepeticin de ciclos. De este universo de posibilidades, los resultados de Hopfield traen orden para ciertas condiciones. 2.6.4.1.1. Teorema de Hopfield Sea una HRNN con neuro-nodos que opera en el modo serial aleatorio (un neuro-nodo de pesos es simtrica con su

se dispara en un orden al azar). Cuando la matriz

diagonal principal no negativa, las entradas de ruido son cero y los umbrales son cero, entonces la red siempre converge a un estado estable, y no existen ciclos en el espacio de estados. 2.6.4.1.2. Prueba Primera parte.- Demostrar que los incrementos de energa convergen a cero. La funcin para la energa de un estado es la funcin cuadrtica definida como:

[Ecuacin 10] La pendiente es:

[Ecuacin 11a] La ecuacin queda de esa manera ya que para las matrices simtricas.

Ya que el ruido y los umbrales son cero, la ecuacin se transforma en:

[Ecuacin 11b]

179

La actualizacin sin ruido y con el umbral igual a cero es:

[Ecuacin 11c] El incremento de energa de una iteracin a otra sera:

[Ecuacin 12] para algunas cambio en ya que nicamente el j-simo neuro-nodo se dispara en esta iteracin. El es: para todas las [Ecuacin 13]

Por lo tanto, la diferencia de energa en la iteracin debido a nicamente el -simo neuronodo (ecuaciones 11b y 12) es:

[Ecuacin 14] La regla de actualizacin para que muestra su dependencia sobre el signo de la ,

suma est dada por la ecuacin 11c. Todas las combinaciones de los signos para y se muestran en la siguiente tabla.

180

+ + + + -

+ + + + -

+ + + + -

0 + * * * * 0

0 + * * * * + 0

Los asteriscos (*) en la tabla indican condiciones que no son permitidas, por ejemplo, que pueden violar la ecuacin 11c ya que debe tener el mismo signo que

. Esto conlleva a que nicamente las dos primeras y las dos ltimas filas son vlidas. En el caso de la primera y ltima filas de la tabla, los incrementos son cero. Pero en la segunda y la sptima filas, el incremento es positivo. As todos los casos vlidos tienen un incremento de energa de cero o positivo. Ya que la energa est limitada desde arriba y puede nicamente incrementarse o quedarse igual, entonces se dice que converge a una constante. Esto significa que los incrementos de energa convergen a cero, lo que prueba la primera parte. Segunda parte.- Mostrar que el estado converge. Aunque la energa es siempre no negativa, est limitada por arriba, y es monolticamente no decreciente, por lo que los incrementos de la misma convergen a cero, todava no se ha mostrado que no pueden existir dos o ms estados (un atractor que no sea nico) con igual energa. Ntese que:

181

1. Si 2. Si

, entonces

(el estado permanece igual). , entonces algn cambi precisamente de -1 a 1 o de 1 por la ecuacin 14 y hace

a -1, lo que contradice la hiptesis que

que el producto de la ecuacin 14 no sea cero (ntese que si la sumatoria en la ecuacin 14 es cero, entonces contradecira la asuncin de que el signo cambi de acuerdo a la ecuacin 11c).

Por lo tanto, mientras los incrementos de energa convergen a cero, la habilidad del sistema de cambiar los estados es disminuida a nulo. As el sistema converge a un nico estado. Es significativo que esta convergencia se mantiene sin ruido, o en un sentido promedio, con un promedio de ruido de cero. Si la energa del ruido es suficientemente grande en un cierto punto antes de que haya ocurrido la convergencia, puede forzar a que el estado salte al campo del potencial (sea jalado) de otro atractor o conjunto de atractores y as converger a un estado estable incorrecto o final. Hopfield descubri que los errores se incrementaban mientras el nmero de clases tambin lo hacan para un nmero dado de neuro-nodos,

y que el nmero de clases que pueden ser llamadas de manera segura no es mayor al 15% del nmero de neuro-nodos. Considerando otras investigaciones como las de Hopfield en 1983, McEliece en i987, Venktesh y Psaltis en 1989 y Dembo en 1989, se considera que el 10% es un nivel ms seguro para una HRNN estndar.

182

2.6.4.2. Teoremas de Bruck Los siguientes teoremas fueron probados a travs de mtodos grficos tericos, y brindan un gran aporte a la teora de convergencia de las redes de Hopfield. 2.6.4.2.1. Teorema de Bruck Si es verdad que una matriz de pesos simtrica con una diagonal principal de cero

implica que la red converge en un estado estable cuando usa e modo serial aleatorio, entonces lo siguiente tambin se mantiene: 1. Si es simtrico con una diagonal principal no negativa, entonces la red siempre

converge a un estado estable. 2. Si la red est trabajando en el modo completamente paralelo y es una matriz

de pesos simtrica (sin condiciones para la diagonal principal), entonces la red siempre converge o a un estado estable o a un atractor que es cclico de longitud 2. 3. Si la red est trabajando en el modo completamente paralelo y es la matriz de

pesos antisimtrica con la diagonal principal de ceros, entonces la red siempre converge a un atractor que es un ciclo de longitud 4. 4. 2.6.4.2.2. Los teoremas de contraejemplo de Bruck 1. Para y un entero par, existe una red de Hopfield con una antisimtrica y

neuro-nodos cuyo modo de operacin serial aleatorio tiene un ciclo de longitud . 2. Para , existe una red de Hopfield con neuro-nodos cuyo modo de .

operacin completamente paralelo tiene un ciclo de longitud

183

2.6.5. UN ALGORITMO PARA LAS REDES DE HOPFIELD El siguiente algoritmo fue propuesto por Lippman en 1987. Aunque no se necesita un entrenamiento iterativo, las pruebas debes ser realizadas para asegurar que cada vector de caractersticas ejemplar utilizado converge hacia un nico vector identificador para una clase. En ese caso, la red y los ejemplares estn listos para el uso, con una clusula explicada posteriormente. Entradas: { El nmero de neuro-nodos que se utilizarn; el nmero de clases; el vector de caractersticas ejemplar para cada clase ; el mximo nmero de iteraciones permitidas. } Salidas: { Un identificador para cada una de las clases. } Paso 1: /Entrada de datos./ ; Ingresar ; Ingresar Ingresar ; /Asignar las conexiones de los pesos a los neuro-nodos a travs de la correlacin de ejemplares./ /Iterar sobre cada nodo./ Para hasta hacer /Iterar sobre la mitad de los nodos./ Para hasta hacer ; /La matriz es simtrica./ Si , entonces /Sumar los productos, lo que significa, Para hasta hacer encontrar la correlacin de , ; sobre todas las clases y utilizar el ; signo./ /La simetra nos permite encontrar los ; otros pesos./ /Ingresar un vector de caractersticas de ejemplo a la red./ /Poner el contador de iteraciones en Ingresar ; cero./ ; /Ingresar el vector de caractersticas Para hasta hacer como vector inicial./ ; /Iterar hasta el que proceso converja en un estado establo o hasta que las iteraciones se hayan excedido./ ; /Contar desde 1 hasta actualizaciones en el ciclo./ Repetir /Seleccionar el neuro-nodo que no se ; ha activado (este ciclo) que se 184

Paso 2:

Paso 3:

Paso 4:

disparar./ ; Para hasta ; hacer ;

Si

entonces ; ; ; ;

/Sumar las entradas retroalimentadas ponderadas en el -simo neuronodo./ /Seleccionar el ruido aleatorio para agregar./ /Activar la -sima salida si la sumatoria no es cero./ /Caso contrario no hay cambios./ /Incrementar la cuenta de disparo en este ciclo./ /Parar o no parar?./ /Si se ha llegado al final del ciclo de disparo de neuro-nodos, luego probar para cualquier cambio de estados./ /No parar si existen cambios./ /Volver el contador a 1 para el siguiente ciclo./

Caso contrario

Si Para Si

entonces hasta hacer entonces ; ;

Paso 5:

Tabla 8: Algoritmo para las redes de Hopfield.

Hasta /Escoger si se ingresa otro vector de caractersticas para su reconocimiento, o parar./ /Escoger si se vuelve a operar o ; Ingresar terminar./ Si entonces Ir al Paso 3; Caso contrario Parar;

Un ciclo consiste de

actualizaciones seriales aleatorias a los

neuro-nodos selecciona

(exactamente una vez cada uno). El procedimiento aleatoriamente uno de los este ciclo. El procedimiento

neuro-nodos que no han sido seleccionados todava en selecciona el valor para el ruido que ser

agregado a la sumatoria en la actualizacin del

-simo neuro-nodo. La variable

mantiene el rastro del nmero de actualizaciones durante un ciclo.

185

Las ventajas de este algoritmo son: 1. Itera en el vector de caractersticas inicialmente dado hasta que obtiene una clase identificadora exacta. 2. No existe un entrenamiento iterativo requerido. Las desventajas son: 1. El nmero de clases (estados finales) deben ser menores al 10 o 15% del nmero de neuro-nodos (el nmero de caractersticas) de acuerdo a leyes empricas, lo que limita severamente el nmero de clases (a caractersticas. 2. El reconocimiento en el modo operacional requiere iteraciones secuenciales. 3. Un vector de caractersticas ejemplar puede converger a un identificador de clase incorrecto si comparte muchos valores de caractersticas con otro vector ejemplar y contiene ruido. En la prctica, las redes neuronales recurrentes de Hopfield son apropiadas para tareas donde existen un gran nmero de caractersticas relativas al nmero de clases. Cuando el lmite es excedido, ocurre el efecto dj vu, donde la red recuerda estados que ) para un nmero dado de

nunca aprendi. Trabajar por conjuntos la proporcin de estados (clases) a caractersticas

como robustamente. Para

. Para

, esto permitira que una sola clase sea reconocible caractersticas, esto permitira como mucho clases,

que es menor a las letras minsculas del alfabeto.

186

2.6.6. INCREMENTAR LA CAPACIDAD DE LAS REDES DE HOPFIELD 2.6.6.1. Capacidad

Desde que Hopfield limit el nmero de patrones estables a

(para

neuro-nodos)

en sus trabajos originales, muchos investigadores han obtenido resultados que muestran una mejor capacidad de funcionamiento. Un vector de estado ambos [Ecuacin 15] para cualquier disparo asncrono de cualquier -simo neuro-nodo, donde la operacin de disparo est denotada por ,y [Ecuacin 16] para cualquier disparo paralelo, denotado por . es estable siempre que

Una memoria asociativa es un proceso o dispositivo que memoriza una asociacin entre un patrn de entrada y un patrn de salida (Anderson, 1968). La salida puede ser similar al patrn de entrada (auto asociativa), en cuyo caso el proceso de asociacin puede eliminar ruido en la entrada. En otros sistemas la salida puede ser muy diferente (heteroasociativa). La distancia de Hamming el nmero de entre dos vectores en los que difieren; y por es ejemplo,

componentes

ya que los dos vectores son diferentes en exactamente dos posiciones. Dado un estado estable fraccin tal que cada vector de entrada a , el radio de atraccin dentro de la distancia para desde es una converge

cuando entra a la HRNN. Mientras que para la memoria asociativa cada entrada debe

187

converger a un estado estable, esto no es necesario para un reconocedor de estados finito. Si se mira el algoritmo descrito antes, los pesos guardan informacin sobre los vectores de caractersticas de entrada que sern utilizados (su correlacin). Si cualquier par de estos vectores almacenados est muy cerca, el ruido en uno de los vectores de entrada puede causar que falle al obtener el vector. Caso contrario, la HRNN realiza una correccin de errores para asociar la entrada con un estado estable que lo identifique. La capacidad de una HRNN es un nmero Obviamente, de estados estables que sta tenga.

depende de la matriz de pesos, que se considera como simtrica con ceros

en su diagonal principal. En 1987 McEliece demostr que:

[Ecuacin 17] Para 100 neuro-nodos, se obtiene que . Se demostr tambin que existen

vectores espurios con campos de atraccin pequeos, por lo que las entradas pueden converger a uno de estos estados terminales si estn en sus cercanas. Aunque esto parece que condena a las redes de Hopfield al fracaso, existen maneras de mejorar su rendimiento.

2.6.6.2. Sobre relajacin sucesiva El mtodo de sobre relajacin sucesiva24 (SOR por sus siglas en ingls, successive overrelaxation) fue utilizado por Oh y Kothari en 1991 para aumentar la capacidad de las redes neuronales recurrentes. Luego ste mtodo fue utilizado para obtener un lmite inferior.

24

Successive Overrelaxation Method. En lnea. Internet 2 de Septiembre del 2006. Disponible WWW http://mathworld.wolfram.com/SuccessiveOverrelaxationMethod.html

188

Un vector

es un estado estable si:

[Ecuacin 18] de la definicin de un estado estable en las ecuaciones 15 y 16. Dados los entrenamiento vectores de

. Los pesos son adaptados por la tcnica SOR de acuerdo a:

Si

[Ecuacin 19]

Si donde es la sumatoria:

[Ecuacin 20]

[Ecuacin 21] y es el factor de sobre relajacin que est estrictamente entre 0 y 1. La constante de debe ser positiva. Las condiciones de Hopfield se mantienen aqu, es decir, y .

normalizacin

la matriz de pesos es simtrica

Tras simulaciones realizadas por Chen y Cheng utilizando SOR se encontraron vectores estables. La importancia de estas estuvieron cuando los resultados fueron extrapolados a nmeros estables es: grandes, y encontraron que el lmite inferior para la proporcin de estados

cuando la adaptacin de pesos de SOR es utilizada. Adems se demostr que la capacidad alcanza la asntota de mientras , donde .

189

2.6.7. REDES DE HOPFIELD COMO MEMORIA DE CONTENIDO DIRECCIONABLE 2.6.7.1. Memoria de contenido direccionable Es una memoria cuyas direcciones son su contenido, o una porcin del mismo. La idea bsica es que el contenido completo de un rea de la memoria pueda ser llamado por un pedazo de su contenido. El uso de una red de Hopfield es natural para este propsito ya que la red asocia la entrada inicial con un estado final , excepto en que , donde representa

la misma cadena (palabra clave) que lo hace

est corrompida por

ruido. Ya que ambas, entrada y salida, representan la misma palabra clave, una red de Hopfield es llamada usualmente como una red de memoria auto asociativa25. As, las redes de Hopfield son utilizadas como memorias de contenido direccionable (CAM por sus siglas en ingls, Content Addressable Memory), que alimenta una palabra clave corrompida hacia atrs a travs de la red un nmero de veces hasta que se de la misma dimensin que es el contenido correcto. En el patrones, las caractersticas corrompidas por ruido son

alcanza un estado final reconocimiento de

retroalimentados en un lazo hasta que la sala es un estado estable que representa a las caractersticas no corrompidas del patrn, que puede ser utilizado como identificador nico de una clase.

25

Associative Model: Hopfield Model. En lnea. Internet 7 de noviembre de 2005. Disponible WWW http://diwww.epfl.ch/mantra/tutorial/english/hopfield/html/

190

2.6.7.2. El anlisis de Aiyer-Niranjan-Fallside

Un sistema dinmico

es estable siempre que exista una funcin de Liapunov . Esta monoticidad de

que decremente a travs de las trayectorias donde

de una funcin de Liapunov es una condicin suficiente (pero no necesaria) para que el sistema sea asintticamente estable. Aiyer en 1990 analiz las propiedades CAM de los casos discretos y continuos de las redes recurrentes de Hopfield. El procesamiento de las redes neuronales recurrentes de Hopfield se puede dividir en dos partes: 1. 2. Donde contiene ceros excepto en el j-simo componente, que es el valor . La funcin

de Liapunov de Hopfield es:

[Ecuacin 22] En la siguiente figura se muestran los contornos de una constante.

191

Ilustracin 58: Funcin de Liapunov E constante.

La funcin de Liapunov

es limitada y decreciente, por lo que converge. En un sistema para los estados N-dimensionales), si el estado no

con un nmero de estados finitos (

cambia para cada cambio neural de su componente, entonces un estado estable se ha alcanzado luego de un nmero finito de transiciones. Este es un punto (estado) de contenido de memoria direccionable para el que la entrada contenido parcial. La matriz de pesos sus valores propios estado travs de: es simtrica, por lo que puede ser caracterizada completamente por y los vectores propios ortogonales . Un vector de provee una direccin por un

puede ser proyectado en su espacio de vectores propios no degenerativos a

[Ecuacin 23a] De acuerdo a Aiyer 192

(Productos externos) Y resulta que

[Ecuacin 23b]

[Ecuacin 24a]

[Ecuacin 24b] Ahora se puede observar cmo minimizar . La red de Hopfield debe mover , donde , donde . no puede decrecer es el vector ; para:

1. Reducir a una longitud cero todos los 2. Incrementar la longitud de todos los Ya que y

pertenecen al hipercubo finito-dimensional, , donde .

indefinidamente pero es minimizada cuando propio para el valor propio ms grande positivo Los valores propios de

son crticos: si existe un nico valor propio positivo que es es minimizado cuando pertenece al subespacio

mltiplemente degenerado, entonces

correspondiente (el subespacio entero es un conjunto de estados final o estable).

193

2.6.7.3. Una regla de aprendizaje simple

La matriz de pesos

debe ser seleccionada as:

1. Los vectores originales deben ser almacenadas como palabras CAM (estados), deben ser puntos estables de la red determinada por .

2. Estos estados estables deben tener un radio de convergencia con respecto a la distancia de Hamming, de tal manera que cualquier contenido parcial debe converger al contenido (el estado final, que es el vector identificador). Esto significa que: 1. El subespacio nulo del espacio de estados determinado por el complemento del subespacio atravesado por los vectores propios debe ser ortogonal a cada uno de los vectores de memoria (los vectores estados que sern los CAM y as los estados finales) . deben atravesar, como mnimo, el subespacio

2. Los vectores propios de

atravesado por los vectores de memoria; y 3. La matriz de pesos debe tener un nico valor propio positivo degenerado

correspondiente al subespacio de vectores memoria de tal manera que para .

Las condiciones 1, 2 y 3 son alcanzadas por la siguiente regla de aprendizaje:

(productos externos)

[Ecuacin 25]

Esta es conocida como la Regla de los Productos Externos, o la Regla de Correlacin. Por otro lado, hay un argumento de que si un nmero de neuro-nodos es ms grande que

194

el nmero de vectores de memoria (

), y si los vectores de memoria son escogidos

de manera aleatoria, entonces hay una alta probabilidad de que estos sean ortogonales unos a otros. 2.6.7.4. La regla de aprendizaje de Venkatesh-Psaltis-Dembo26 Otra regla de aprendizaje consiste de los siguientes pasos:

1. Escoger los vectores de memoria 2. Hacer a 3. Tomar .

que sean linealmente independientes.

una matriz de vectores de memoria; y

El resultado es que cada vector de memoria

es un punto fijo, lo que significa que es un

estado estable. Esta regla es sustancialmente ms complicada, computacionalmente hablando, que la anterior. Los vectores de memoria son los CAMs. Cuando un vector de entrada atravesado por

corrompido se presenta al sistema, este vector es proyectado al espacio

los vectores de memoria. Todas las esquinas del hipercubo que estn dentro o cerca de las esquinas contenidas en pero que no son vectores de memoria son estados estables

falsos que pueden convertirse en un atractor para cualquier vector de memoria de entrada corrompido. Al colocar en cero todos los elementos de la diagonal principal de propio negativo para el subespacio ortogonal a . se introduce un valor

26

Alonso, Luis. Aplicaciones e Implementaciones de las Redes Neuronales en Reconocimiento de Patrones (AIRENE). En lnea. Internet 10 de noviembre de 2005. Disponible WWW http://lisisu02.fis.usal.es/~airene/airene.html

195

La red neuronal de Hopfield proyecta un vector de entrada dentro de

y luego mueve

dicho vector a la esquina del hipercubo ms cercana, la que es un vector de memoria o un vector estado falso. En este ltimo caso existe un error en la llamada del CAM, lo que viene a ser un error en el reconocimiento. Varios investigadores han encontrado, por diferentes motivos, que el nmero relativo de estados falsos baja mientras la dimensionalidad de los estados incrementa. Para una

suficientemente grande, existen pocos estados estables falsos dentro de una cierta distancia de Hamming de cualquier vector de memoria, de tal manera que se vuelve esencialmente vlido el considerar que cada vector memoria tiene un radio de convergencia.

2.6.8. REDES DE HOPFIELD EXTENDIDAS: MEMORIA ASOCIATIVA BIDIRECCIONAL DE KOSKO En una red neuronal recurrente de Hopfield, las entradas son multiplicadas por sus pesos para producir estados que luego son retroalimentadas a las entradas. Este modelo se extiende a la memoria asociativa bidireccional de Kosko, conocido tambin como BAM por sus siglas en ingls (Bidirectional Associative Memory), que es una memoria heteroasociativa. Cada vector de caractersticas de entrada que tenga Una matriz de pesos es asociado con un vector de salida con en : . Sea

componentes, y sea

componentes.

es utilizada para convertir

[Ecuacin 26] 196

Este procesamiento es hacho en los

neuro-nodos de la primera capa y alimenta la salida neuro-nodos, donde la transpuesta de la

como entradas de la segunda capa de matriz de pesos es utilizada: [Ecuacin 27]

En la siguiente figura se muestra la manera en que est diseada una memoria asociativa de dos vas.

Ilustracin 59: Memoria asociativa de dos vas.

Las matrices de pesos que existen

son calculadas antes que las iteraciones inicien. Se asume e con

pares de vectores que van a ser asociados, que son , donde es N-dimensional e es M-dimensional. Se asocia

para cada

, siendo

. Los valores componentes de los vectores asociados es la funcin signo,

son bipolares, es decir toman valores de 1 o -1. La funcin umbral es decir si , caso contrario .

197

El algoritmo se detalla a continuacin: Paso 1: /Calcular la matriz de pesos Para hasta hacer Para hasta hacer para usarla como y ./ /Para cada neuro-nodo de la primera capa./ /Para cada neuro-nodo de la segunda capa./ / es la sumatoria de los productos./

Paso 2:

; /Transformar y usar la funcin signo como umbral./ ; Repetir Para hasta hacer

/Actualizar ;

Para

para

hacer

/Actualizar ;

;
Tabla 9: Algoritmo para memoria bidireccional asociativa de Kosko.

/Actualizar el nmero de iteracin./

Hasta

Ntese que matrices de

en el paso 1, es la sumatoria de las que son generadas por los productos de los vectores asociados. Los

vectores de entrada y salida son actualizados consecutivamente hasta que el vector de salida no cambie. Una vez que la red ha sido entrenada, el usuario puede presentarle un vector de entrada para obtener el vector de salida asociado para encontrar su vector asociado . , o puede presentarle un vector de salida

198

Las ventajas son: 1. La red BAM puede ser utilizada en dos vas como fue explicado. 2. Puede reconocer ms clases que una red de Hopfield, ya que el nmero de clases no puede exceder el mnimo nmero de neuro-nodos en cualquiera de las dos capas. Es posible incrementar el nmero de clases an ms. Una desventaja conocida es que las asociaciones deben ser de uno a uno.

199

2.7. MICROSOFT SOLUTIONS FRAMEWORK27

MSF28 es muy flexible y est formado por una serie de modelos interrelacionados que puede guiar a una organizacin a travs de la agrupacin y la organizacin de los recursos, la gente, y de las tcnicas necesarias para llevar a la Tecnologa de la Informacin en la misma lnea de los objetivos del negocio. El propsito del modelo de procesos es el de proveer un marco de trabajo que asistir a una organizacin a la implementacin exitosa de soluciones tecnolgicas que alcanzarn o sobrepasarn la visin predefinida de los objetivos del negocio. Existen cuatro fases en el modelo de procesos: Previsin Planeacin Desarrollo Estabilizacin.

Y existen cuatro hitos asociados con ellos:


27

Aprobacin de la Visin o del Alcance. Aprobacin del Plan del Proyecto.

Microsoft Corporation. Visual Studio 2005 Team System: Microsoft Solutions Framework. En lnea. Internet 14 de octubre del 2005. Disponible WWW http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvsent/html/vsts-msf.asp
28

Miller, Granville G. Visual Studio Team System 2005: The Microsoft Solutions Framework: An Integrated Approach to Agile or Formal Software Development Process. En lnea. Internet 14 de octubre del 2005. Disponible WWW http://blogs.msdn.com/askburton/archive/2004/12/22/330976.aspx

200

Alcance completo o primer uso. Liberacin.

Ilustracin 60: Hitos en el proceso MSF.

En MSF el modelo de equipos se enfoca en el personal, las competencias, la administracin, la responsabilidad y la igualdad de procesos complejos.

Los seis roles del modelo de equipos corresponde directamente a los seis objetivos claves de igualdad para un equipo de proyectos efectivo, como se describe a continuacin:

201

Rol Objetivo Administracin del El objetivo de la administracin del producto es la satisfaccin del Producto cliente. El rol de administracin del producto est posicionado para alcanzar sus objetivos al actuar como un intermediario entre el equipo y el cliente Administracin del El rol y el enfoque de la Administracin del Programa es alcanzar los Programa objetivos de calidad. Para alcanzar este objetivo maneja y posee el horario, las caractersticas y el presupuesto del proyecto. Este rol se asegura que el producto correcto es entregado en el tiempo correcto. Desarrollo Para alcanzar exitosamente la meta de calidad, el rol de Desarrollo es el de construir un producto que cumpla con las especificaciones y las expectativas del cliente. Es importante que el enfoque del desarrollo no est basado nicamente en el codificar las funcionalidades, sino tambin en alcanzar las expectativas. Esto se debe a que las especificaciones funcionales son escritas antes de que cualquier desarrollo o construccin significantes ocurran, dejndolas incompletas. Entonces, el rol de Desarrollo debe innovar, pero solo para resolver el problema del cliente, no solo por el hecho de implementar caractersticas interesantes. Pruebas El objetivo del rol de Pruebas es para asegurarse de que todos los posibles problemas son conocidos y diseccionados antes de un lanzamiento. Se entiende como problema a todo aquello que impide que el producto alcance los requerimientos. Educacin del Se enfoca en maximizar el rendimiento del usuario para que sea lo Usuario ms productivo posible con el producto. Para lograrlo, este rol acta como intermediario entre el usuario y el producto. Administracin de Sirve como intermediario entre las operaciones, el soporte del la Logstica producto, el help desk y cualquier otro canal de la organizacin enfocado en que la liberacin del producto y su normal uso sea normal y exitosa.
Tabla 10: Roles y su descripcin en MSF.

Para que un equipo sea exitoso debe interactuar, comunicarse y coordinar con otros grupos externos. Esto va desde clientes, usuarios finales y otros equipos de desarrollo de producto. El siguiente diagrama ilustra como ocurre la coordinacin ya sea con un enfoque de negocio como con un enfoque tecnolgico. La Administracin del Programa, la Administracin del Producto, la Educacin del Usuario y la Administracin de la Logstica son los facilitadores primarios. Estos roles son tanto internos como externos, mientras que las reas de

202

Desarrollo y Pruebas son nicamente internos, alimentados con comunicacin con el exterior.

Ilustracin 61: Enfoque del negocio y enfoque tecnolgico en MSF.

2.7.1. FASE DE PREVISIN La fase de Previsin culmina con el hito de Aprobacin de la Visin o del Alcance.

2.7.1.1. Hitos Esta fase tiene tres hitos interinos: Formacin del equipo completa.

203

Borrador de la visin o del alcance. Versin final de la visin o del alcance.

2.7.1.2. Entregables Existen cuatro entregables primordiales en sta fase: Documento de Visin o Alcance: o Define claramente la direccin del equipo del proyecto, define las expectativas, y provee el criterio del diseo y liberacin de la solucin. Existen cuatro elementos en ste documento que indican claramente los que, cuando, donde, porque, quien y como del proyecto: La declaracin del Problema (o declaracin de los objetivos). La declaracin de la visin. Perfiles de usuarios. El concepto de la solucin.

Plan de Administracin de Riesgos: o Comprobacin del impacto que pueden tener los riesgos, esto es consecuencia de un anlisis de las posibilidades de la ocurrencia de cualquier fallo y la severidad con las que pueden afectar a los objetivos de la solucin.

Documento de la Estructura del Proyecto: o Define como el proyecto va a ser administrado y soportado, y la estructura administrativa para el equipo del proyecto.

Estimado de la siguiente fase.

204

2.7.1.3. La visin y el alcance 2.7.1.3.1. Visin Existen seis conceptos fundamentales y principios guas que determinan la visin del proyecto en MSF Los mximos picos en el rendimiento del equipo inician cuando todos estn comprometidos con la visin. Para obtener grandes resultados debe existir una visin y sta debe ser divulgada. La visin no debe estar ligada a limitaciones preconcebidas. Los valores del negocio son una fuente constante para la visin. La visin gua a los objetivos de corto alcance.

2.7.1.3.2. Alcance Definir el alcance significa que las necesidades de un conjunto diverso de usuarios finales deben ser balanceadas entre ellas, as como tambin con otras prioridades definidas por la administracin. Un gran nmero de variables tendrn impacto en el xito potencial del proyecto, incluyendo costos, recursos, funcionalidad del horario y fiabilidad. La clave est en alcanzar el balance perfecto entre stas variables. 2.7.1.4. El Equipo Cada rol en el equipo MSF tiene una responsabilidad definida y tiene competencias especficas que se complementan con los otros roles para asegurarse el xito del proyecto. Administracin del Producto: o Documenta las necesidades de los usuarios, define el problema del negocio, identifica los beneficios esperados, articula la visin, identifica los riesgos y administra las expectativas. Administracin del Programa:

205

Establece los objetivos de diseo, establece las mtricas y factores de xito, identifica la infraestructura necesaria para el proyecto y documenta la solucin.

Desarrollo: o Investiga soluciones tecnolgicas existentes y trabaja con la administracin del programa para documentar las soluciones tcnicas.

Educacin del Usuario: o Identifica canales de comunicacin de los usuarios e identifica los requerimientos de entrenamiento para el personal del proyecto y usuarios.

Pruebas: o Identifica los criterios de pruebas basados en los objetivos de diseo, identifica los procesos y la frecuencia de pruebas, registra los riesgos y los califica por su impacto potencial, adems establece un lazo de comunicacin para poder reaccionar ante situaciones de alto riesgo.

Administracin de la Logstica: o Investiga y reporta sobre restricciones materiales, identifica problemas de envos y entregas, y provee los fundamentos o los cimientos para una administracin y un soporte a largo plazo.

206

2.7.2. FASE DE PLANEACIN Culmina con el hito de Aprobacin del Plan de Proyecto. Expande a la visin y al alcance definidos en la fase de previsin.

2.7.2.1. Hitos Esta fase contiene tres hitos interinos: Diseo conceptual completo. Especificaciones de diseo completas. Plan maestro del proyecto completo.

2.7.2.2. Entregables Existen nueve entregables en sta fase: Documento del Diseo Conceptual: o Da una direccin acerca de las necesidades que deben ser incluidas en el producto. Este documento no debe ser tcnico, pero debe dar informacin detallada de las nuevas funcionalidades que estn propuestas para la solucin, como la infraestructura tecnolgica existente va a reaccionar con la introduccin de esta funcionalidad, como la solucin va a interactuar con el usuario, y que est incluido en el criterio de rendimiento. Especificaciones de Diseo:

207

Describe como implementar el que definido en el documento de diseo conceptual, e incluye dos sub-entregables importantes: Especificaciones Tcnicas, que contiene cuatro elementos: Diseo lgico y fsico. Estndares y guas. Metodologa de control de cambios. Plan de administracin del ciclo de vida.

Plan de seguridad.

Documento de Laboratorios de Pruebas: o Permite asegurarse de que un ambiente apropiado y aislado ha sido establecido para simular y probar la funcionalidad de la solucin propuesta. Se dice que est completo cuando todo lo que es requerido para conducir las pruebas aisladas, como fue determinado en el documento del diseo conceptual y en las especificaciones de diseo est en su sitio y configurado. Esto es crtico ya que es un pre-requisito para la prueba de concepto y el piloto que sern ejecutados ms tarde en el proyecto.

Cronograma principal del proyecto: o Combina todos los cronogramas de los distintos equipos. Luego de que el rol de Administracin de Programa ha definido el borrador del diseo conceptual y de las especificaciones de diseo, los lderes de los equipos dividen lo obtenido en funciones individuales y en tareas especficas individuales y las asignan a miembros del equipo. Cada lder de equipo es responsable por proveer un cronograma que pueda ser cumplido durante el proceso de desarrollo. El cronograma principal tiene seis elementos: La lista de tareas.

208

Cronograma de implementacin. Cronograma de pruebas. Estimados de entrenamiento. Cronograma de logstica. Cronograma de mercadotecnia.

Plan del Proyecto Principal: o Es una coleccin de los planes de los distintos roles. El lder de desarrollo especifica tareas basadas en el diseo y en la especificacin conceptuales y los agrupa en entregables interinos.

Plan de administracin del Ciclo de Vida: o Considera la evolucin rpida de tecnologas individuales y agregadas, en conjunto de factores dinmicos de la organizacin. Provee un marco de trabajo para la administracin del ciclo entero, desde la etapa de planificacin estratgica hasta la eliminacin de la tecnologa y regresar nuevamente a la etapa de planificacin. Anima el concepto de planificar mientras se construye.

Metodologa de control de cambios: o El equipo del proyecto debe determinar los quien, que, cuando, donde, porque y como de los cambios propuestos. El equipo debe ser capaz de identificar y afrontar los riesgos de un cambio y su impacto.

Evaluacin de riesgos. Aprobacin del Administrador del negocio.

209

2.7.2.3. El Equipo Cada rol en el equipo tiene una responsabilidad definida. No todas las responsabilidades son necesarias en cada hito interino, pero todas son necesarias en algn punto de la fase de planeacin del proyecto. Todos los roles contribuyen a una revisin final del plan del proyecto y proveen datos para la mitigacin del riesgo. Administracin del Producto: o Contribuye con datos recolectados de los usuarios y su anlisis. Asegura que las expectativas sean alcanzadas en el diseo del producto y crea el plan y el cronograma del rol. Administracin del Programa: o Disea la solucin tcnica, y crea el plan y el cronograma del rol.

Desarrollo: o Evala las opciones tcnicas, crea el diseo fsico y el plan y el cronograma del rol.

Educacin de Usuarios: o Determina las necesidades de los usuarios, disea la estrategia del rendimiento de los usuarios y crea el plan y el cronograma del rol.

Pruebas: o Evala el diseo y crea el plan y el cronograma del rol.

Administracin de la Logstica: o Planifica la adquisicin de materiales y coordina el plan y el diseo de facilidades.

210

2.7.2.4. Culminacin An cuando los diferentes roles de equipos tienen distintas reas de inters, el equipo completo debe estar de acuerdo con la solucin total. El uso de consensos en ste punto no significa que deber existir una aceptacin total en todos los aspectos del proyecto. Se infiere que un alto nivel de aceptacin es suficiente para moverse a la siguiente fase. De tiempo en tiempo, va a ser necesario que los miembros del equipo tengan stas reuniones de consenso para poder moverse a la siguiente fase. El cliente debe reconocer los beneficios que obtendr para el negocio y acepta el tiempo de entrega. La administracin del producto cree que la especificacin funcional y el diseo de las especificaciones reflejan un sistema que una vez entregado cumplir con los requerimientos conocidos. El cliente puede aceptar los cronogramas y las estimaciones de recursos basados en el alcance definido en los entregables de la fase de planeacin. La administracin del programa cree que est claro quin es el responsable de cada funcin especfica y que los cronogramas son realistas. Desarrollo tiene suficientes datos sobre la tecnologa y los riesgos asociados y cree que son manejables. Pruebas tiene definida una estrategia para el laboratorio de pruebas. Educacin de usuarios tiene una idea clara de quienes son los usuarios y del cmo va a ser implementada la solucin, como va a ser utilizada y como va a ser soportada.

211

Administracin de la logstica tiene una idea clara de toda la organizacin, de la aplicacin y se puede comprometer a implementar el sistema dentro de las restricciones definidas.

2.7.3. FASE DE DESARROLLO Durante esta fase, la solucin es desarrollada y optimizada hasta que se estima que est lista para su paso a produccin.

Ilustracin 62: Fase de desarrollo.

2.7.3.1. Hitos

Esta fase tiene tres hitos interinos: Pruebas de laboratorios completas. Prueba de concepto completa.

212

Piloto completo.

En esta parte es importante mencionar que para proyectos de desarrollo de aplicaciones los hitos interinos deben ser versiones internas. Durante la fase de desarrollo el equipo debe tratar de alcanzar un congelamiento en el diseo visual y en la base de datos, aunque estos no son hitos internos.

2.7.3.2. Entregables

Esta fase incluye cinco entregables: Plan Piloto: o El propsito del piloto es el de probar la solucin en un ambiente real. Con esto en mente, el piloto necesita incluir representantes de cada comunidad de usuarios y de cada escenario de uso. Plan de Entrenamiento: o La probabilidad de xito de cualquier proyecto est dado por la calidad del mismo y por el entrenamiento apropiado provisto a los usuarios. Aunque el entrenamiento no es un producto final del proyecto, es un componente crtico el momento de determinar el impacto de la solucin. Plan de Capacidad: o La planificacin de la capacidad y de la optimizacin de los componentes son dos actividades que deben ser alcanzadas cautelosamente y sistemticamente ya que las conclusiones obtenidas de estas actividades pueden causar un impacto dramtico en la efectividad. Plan de continuacin del negocio:

213

El propsito es el de recabar nicamente los elementos de la tecnologa que son esenciales para el negocio, para minimizar los tiempos de cadas y las prdidas de datos. Es una parte importante de ste plan el cmo se va a efectuar la recuperacin de un desastre.

Plan de Implementacin: o Es una estrategia paso a paso para lograr una implementacin efectiva de la solucin para los usuarios con un mnimo de interrupciones a las actividades del da a da de la organizacin.

A los documentos anteriores debemos agregar los siguientes en el caso de que el proyecto sea de desarrollo de una aplicacin: Especificaciones funcionales revisadas. Documento principal de evaluacin de riesgos revisado. Elementos de soporte para rendimiento de usuarios. Plan de proyecto y cronograma de proyecto principales revisados.

2.7.3.3. El Equipo

Durante la fase de desarrollo, el equipo entero est enfocado en la refinacin de las funcionalidades de la infraestructura tecnolgica propuesta, para lograr una solucin efectiva y de alta calidad. Administracin del Producto: o Principalmente responsable de desarrollar y de mantener una

comunicacin efectiva con los usuarios finales.

214

Administracin de Programa: o Responsable del manejo de la especificacin de funcionalidades y de asegurarse de que la solucin desarrollada cumpla estas especificaciones.

Desarrollo: o Responsable del trabajo de desarrollo de todos los aspectos de la solucin.

Educacin del Usuario: o Responsable de la documentacin de la solucin; del desarrollo, compra o modificacin de materiales de entrenamiento. Responsable del

mantenimiento del plan de entrenamiento y de la comunicacin con los usuarios. Pruebas: o Responsable de probar cada aspecto de la solucin, de probar la documentacin y de la administracin del plan de pruebas. Administracin de la Logstica: o Responsable de la implementacin y de la elaboracin de las checklists para la misma.

2.7.3.4. Culminacin

La fase de desarrollo culmina con el hito de Alcance completo o primer uso. En este punto, el equipo ha validado que la solucin tiene la funcionalidad deseada y es lo suficiente estable para pasarla a produccin. Adems los problemas conocidos estn siendo manejados y corregidos.

215

2.7.4. FASE DE ESTABILIZACIN En vista de que Microsoft utiliza MSF tanto para sus proyectos de infraestructura como para los de desarrollo de software esta fase puede tomar dos nombres, para infraestructura se llamar fase de despliegue y para desarrollo de software se llamar de estabilizacin.

2.7.4.1. Hitos

Esta fase tiene cuatro hitos interinos: Inicio de la Implementacin. Entrenamiento completo. Implementacin completa. Despliegue o Estabilizacin completo.

El objetivo de sta fase es identificar y resolver todos los problemas posibles para minimizar el nmero de problemas recurrentes.

2.7.4.2. Entregables

Son dos los entregables para la fase de Despliegue o Estabilizacin: Guas para perfiles de usuarios y escenarios de uso post-implementacin: o El equipo del proyecto necesita determinar de una manera precisa si lo proyectado cumple con la solucin final. Esta informacin servir como una futura referencia para nuevas implementaciones tecnolgicas.

216

Revisin del Proyecto: o Debe cubrir los eventos ocurridos durante la fase de implementacin y debe incluir la informacin obtenida de los hitos interinos. El enfoque debe estar en los problemas encontrados (que fue mal y que fue bien) para determinar la relacin entre las acciones tomadas por el equipo y esos xitos y esas fallas. Esta informacin ser utilizada para crear best practices para futuros proyectos.

2.7.4.3. El Equipo

Los miembros del equipo estn enfocados en la implementacin de la nueva tecnologa y en su estabilizacin, as como en brindar el soporte necesario. Durante esta fase ocurre un sutil cambio en la dinmica del equipo del proyecto. Durante las fases previas, el enfoque fue cambiando del administrador del producto al administrador del programa. Ahora, la administracin de la logstica va a pasar a ser el centro de atencin como el rol donde la mayor cantidad de actividades ocurre. La administracin de la logstica siempre va a compartir el protagonismo con educacin de los usuarios cuando los sistemas estn completamente implementados ya que los usuarios deben recibir el entrenamiento apropiado. Administracin del Producto: o Posiciona la solucin con el cliente y los usuarios durante la implementacin. o o Estabiliza y mantiene el mecanismo de retroalimentacin. Se prepara para las evaluaciones de post-implementacin.

217

Obtiene la firma aprobatoria del cliente.

Administrador del Programa: o o Compara la solucin implementada con el enfoque original. Evala las funcionalidades no implementadas y se prepara para futuras implementaciones. o Sigue los progresos de la implementacin y coordina las actividades del equipo.

Desarrollo: o o Evala la implementacin tcnica y resuelve problemas. Colabora con la administracin del programa en la evaluacin de las funcionalidades no implementadas.

Educacin a los Usuarios: o o Ajusta el cronograma de entrenamiento. Se asegura que los entrenadores, los implementadotes, los

administradores, el personal de operaciones, el personal de soporte y los usuarios tengan un entrenamiento adecuado. Pruebas: o o Monitorea las mtricas de rendimiento. Colabora con desarrollo en la solucin de problemas.

Administracin de la Logstica: o o Maneja la adquisicin de materiales y almacena los inventarios. Administra el montaje fsico y la instalacin de la solucin.

TODOS LOS ROLES: o Realizar la revisin de los hitos.

218

2.7.4.4. Conclusin: El hito de liberacin

En el modelo de procesos de MSF, la responsabilidad de calidad descansa en cada miembro del equipo. La responsabilidad de la calidad en la liberacin no puede ser delegada a un solo equipo o a un solo miembro. La liberacin de la solucin tecnolgica es el resultado del consenso entre los lderes o administradores de cada equipo funcional y de los clientes.

219

2.8. ESTUDIO DE LA PLATAFORMA SELECCIONADA

2.8.1. WINDOWS XP SERVICE PACK 2 Bsicamente se ha seleccionado ste sistema operativo ya que el lector biomtrico seleccionado (Microsoft Fingerprint Reader) no es compatible con versiones superiores del sistema operativo Windows ni con versiones orientadas al servidor. Sin embargo, Windows XP provee varias ventajas que le hacen el lenguaje ideal para proyectos de ste tipo.

2.8.1.1. Requerimientos de hardware bsicos 1. Velocidad de reloj del procesador mnima recomendada: 1.8 GHz, sin importar la marca seleccionada. 2. Mnimo 512 MBytes de memoria RAM, sin embargo se recomiendan 1.0 GBytes. 3. Se necesitan mnimo 1.5 GBytes para la instalacin, sin embargo se recomienda tener por lo menos 20 GBytes libres para memoria virtual y descarga de actualizaciones; adems de la instalacin del motor de base de datos. 4. Un puerto USB v1.1, sin embargo se recomienda que la versin sea la ltima (2.0).

2.8.1.2. Ventajas de utilizar Windows XP Service Pack 2 1. Menores tiempos de cadas del sistema. Segn estudios realizados en el ao 2001, se detect que sta versin de Windows es la ms estable en estaciones de escritorio ya que tiene una arquitectura muy robusta.

220

2. Mtodos de proteccin de datos. Estos mtodos estn basados en la capacidad del sistema operativo en soportar al sistema de archivos NTFS que mejora la seguridad al permitir la encriptacin de archivos y carpetas; y brinda la capacidad de dar permisos de acceso a los datos con una granularidad adecuada. 3. Recuperacin del sistema. En el caso de que hayan existido cambios en archivos importantes del sistema, o que se hayan realizado instalaciones de hardware o drivers que han corrompido la estabilidad del sistema Windows XP brinda la posibilidad de volver a la ltima configuracin buena conocida. 4. Administracin adecuada de controladores. Windows XP incluye la caracterstica de controladores firmados que son controladores que han sido probados y certificados para el sistema operativo. Sin embargo se pueden instalar controladores que no hayan sido digitalmente firmados y la arquitectura robusta del sistema operativo permite que no provoquen problemas en la estabilidad del mismo. 5. Internet Information Services. Windows XP Professional incluye un servidor Web limitado que permite la publicacin de pginas Web y aplicaciones basadas en tecnologas ASP y ASP.NET. 6. Seguridad integrada del sistema. Windows XP Service Pack 2 incluye un corta fuegos personal configurable, adems de la capacidad de bloquear pantallas emergentes no deseadas cuando se navega con Internet Explorer. Se pueden descargar herramientas antivirus y anti spyware gratuitas.

221

2.8.2. SQL SERVER 2005 Se ha seleccionado la versin Standard del motor de bases de datos de Microsoft, por la capacidad de ser instalada en Windows XP Service Pack 2 y por la facilidad que brinda de administracin y de programacin. 2.8.2.1. Requerimientos de hardware bsicos 1. Velocidad de reloj del procesador mnima recomendada 1.8 GHz, sin importar la marca seleccionada. 2. Mnimo 512 MBytes de memoria RAM, sin embargo se recomiendan 1.0 GBytes para un mejor rendimiento. 3. Se necesitan por lo menos 400 MBytes libres en el disco duro para la instalacin del motor de base de datos, sin embargo se recomienda tener por lo menos 800 MBytes para tener los libros en lnea instalados.

2.8.2.2. Requerimientos de software bsicos 1. Puede trabajar tranquilamente en Windows 2000 Server SP4, Windows 2000 Professional SP4, Windows XP Service Pack 2 o con cualquier Windows Server 2003 SP1. 2. Microsoft Internet Explorer 6.0 SP1. 3. Internet Information Services 5.0 para trabajar con Reporting Services.

2.8.2.3. Ventajas de utilizar SQL Server 2005 Standard Edition 1. Una plataforma de manejo de datos fcil de comprender. Integra el desarrollo, la administracin; manejo de datos transaccionales, extraccin, carga y 222

transformacin; procesamiento analtico de datos en lnea (OLAP); administracin de reportes, seguridad, rendimiento y disponibilidad, brindando as una aplicacin diseada para cumplir con las expectativas de empresas tipo PYME hasta grandes corporaciones. 2. Varios servicios que mejoran la productividad. SQL Server 2005 nos presenta a los siguientes servicios: a. Integration Services, que est diseado para mover millones de registros por segundo mientras la base de datos realiza otras actividades, con una prdida de rendimiento mnima. b. Analysis Services, que ofrece acceso unificado a la informacin, y est diseado para proveer respuesta a consultas en milisegundos, tiene tcnicas de cach avanzadas, y puede hacer minera de datos para grandes conjuntos de datos. c. Notification Services, que habilita el soporte a miles de usuarios que estn suscritos a ellos. d. Reporting Services, que provee la facilidad de crear reportes de manera fcil y rpida, combinada con mtodos para proveer una alta concurrencia a estos datos. 3. Alta disponibilidad. Provee herramientas como el clustering, el database mirroring, y el balanceo de carga que proveen una disponibilidad 24/7. 4. Seguridad. En ste producto, el fabricante mantuvo la siguiente filosofa: seguro en el diseo, seguro en por defecto, seguro en su implementacin. Provee una granularidad adecuada en los permisos a los usuarios y administradores para lo que pueden o no hacer.

223

5. Productividad en el desarrollo. Provee la integracin con el Framework 2.0, lo que permite crear con alguno de los lenguajes .NET procedimientos almacenados, triggers, funciones creadas por el usuario, etc.

2.8.3. FRAMEWORK .NET 2.0 El marco de trabajo .NET de Microsoft es un conjunto de lenguajes, herramientas y servicios que simplifican el desarrollo de aplicaciones en ambientes distribuidos. Se pretende con esta tecnologa ofrecer una manera rpida, econmica, segura y robusta de desarrollar soluciones que permitan la fcil integracin entre empresas y sus aplicaciones, utilizando a XML como la tecnologa de facto para el transporte de informacin. Bsicamente el Framework .NET est dividido en tres partes: 1. Conjunto de lenguajes. 2. Biblioteca de clases base (BCL). 3. Entorno comn de ejecucin de lenguajes (CLR).

2.8.3.1. Conjunto de lenguajes Los lenguajes soportados por el Framework estn basados en una norma que llamada Infraestructura comn de lenguajes, o CLI por sus siglas en ingls (Common Language Infraestructure). Algunos lenguajes son los siguientes: C# (de Microsoft).

224

Visual Basic (de Microsoft). J# (una adaptacin de Java al Framework .NET). C++.NET (de Microsoft). Perl, Python, Cobol, etc.

2.8.3.2. Biblioteca de clases base Contiene las clases necesarias para el desarrollo de aplicaciones con el Framework, teniendo dentro de s componentes que permiten al desarrollador realizar: Manejo de datos (ADO.NET). Cifrados de datos. Manejo de representacin grfica (GDI+). Generacin automtica de cdigo. Manejo de cadenas de caracteres. Manejo de funciones matemticas. Compilacin de cdigo.

Entre otras muchas aplicaciones que incluyen manejo de XML y Web Services.

2.8.3.3. Entorno comn de ejecucin de lenguajes Que es el ncleo de sta tecnologa ya que aqu es donde se cargan las aplicaciones desarrolladas. El funcionamiento bsico es de la siguiente manera:

225

1. La herramienta de desarrollo (Visual Studio .NET por ejemplo) compila el cdigo escrito en cualquiera de los lenguajes que soporta en un cdigo intermedio llamado MSIL (Microsoft Intermediate Language), basndose en la Especificacin Comn del Lenguaje, CLS por sus siglas en ingls (Common Language Specification) que contiene lo necesario para realizar esta conversin. 2. Antes de que la aplicacin se pueda ejecutar pasa por el compilador JIT (Just In Time) que genera el cdigo de mquina. De esta manera se logra que se tenga independencia de plataforma ya que el JIT primero verifica en qu sistema operativo est instalado y segn el caso realiza la transformacin de cdigo adecuada. Cabe destacar que lo que realiza es detectar en que versin de Windows trabaja y optimizar el cdigo.

2.8.4. VISUAL C# 2.0 Es un lenguaje de programacin completamente orientado a objetos desarrollado por Microsoft y estandarizado como parte de su plataforma de desarrollo .NET. Su sintaxis bsica est derivada de C/C++, est diseado para utilizar un modelo de objetos y de desarrollo similar del de Java, pero con la facilidad y velocidad de Visual Basic.

2.8.4.1. Ventajas de utilizar C# 2.0 Bsicamente las ventajas de utilizar este lenguaje de programacin son las mismas de utilizar cualquier lenguaje que trabaje con el Framework .NET:

226

1. Uso del Framework .NET, que permite tener el acceso a cientos de clases que facilitan el desarrollo de las aplicaciones. 2. Muy amigable, ya que est basado en lenguajes de programacin comunes para todos los desarrolladores. 3. Un manejo eficiente de memoria, que es brindado por el Framework .NET. 4. No maneja punteros por defecto, que permite que las aplicaciones sean robustas.

227

CAPTULO III: DESARROLLO DEL SISTEMA

3.1. DOCUMENTO DE ENVISIONAMIENTO

3.1.1. DECLARACIN DE LA VISION

Disear, a nivel de prototipo, un sistema amigable de reconocimiento de huellas dactilares que sea aplicable a procesos de control de acceso del recurso humano.

3.1.2. DECLARACIN DE OPORTUNIDADES

La sociedad del conocimiento demanda el desarrollo de procesos informticos propios, seguros, que eviten o al menos mitiguen la dependencia monoplica de las grandes corporaciones internacionales. La presente propuesta de Tesis de Investigacin es aporte a esta necesidad social. La Universidad, es el campo frtil para implementar desarrollos informticos; las empresas de tecnologa que requieren manejo confidencial de sus productos y procesos; las instituciones que deben controlar actividades productivas tomando el factor tiempo como el elemento fundamental; los departamentos de recursos humanos, son los mayores

228

beneficiarios del sistema propuesto ya que el reconocimiento de huellas en los lugares de trabajo comparados con los rendimientos productivos diarios permitirn establecer la relacin costo (el valor que se paga) y beneficio (el trabajo que se espera sea cumplido en forma cabal).

3.1.3. ALCANCE

La aplicacin a disear estar compuesta de dos grandes partes (basado en los documentos del Anexo 3.1: Entrevistas): Control de acceso. Administracin de la aplicacin.

3.1.3.1. Control de acceso

Est enfocado a tres puntos bsicos: Adquisicin de las huellas digitales. Bsqueda y comparacin a travs de la Red Neuronal Artificial. Simulacin de la activacin de una puerta.

229

3.1.3.1.1. Adquisicin de huellas digitales Este proceso se lo realiza a travs de un lector biomtrico conectado al servidor de la aplicacin. Una vez adquirida la huella digital se tienen dos opciones: la primera es la del almacenamiento del patrn que representa esa huella en la base de datos, en el registro que corresponda a la persona propietaria de dicha huella. La segunda opcin es la adquisicin del patrn con el fin de realizar la comparacin dentro de la Red Neuronal para encontrar una coincidencia.

3.1.3.1.2. Bsqueda y comparacin a travs de la Red Neuronal Artificial Es donde se aplicar el modelo de red neuronal seleccionado tras la investigacin en busca del ms adecuado para este tipo de problemas, para almacenar y hacer llamadas de las imgenes ya disponibles. A travs de este proceso, la aplicacin podr realizar la comparacin de dos imgenes aunque la informacin leda est corrompida o incompleta. Cuando se ha adquirido un patrn correspondiente a una huella dactilar se debe realizar el barrido de la informacin almacenada en la base de datos, esta informacin ser introducida en la Red Neuronal Artificial, la cual arrojar un resultado positivo en el caso de encontrar una coincidencia o negativo en el caso de no hacerlo. En cualquier caso se almacenar en la base de datos un registro con la fecha, la hora, el resultado de la bsqueda, y en el caso de ser positiva la respuesta, la identificacin de la persona.

230

3.1.3.1.3. Simulacin de la Activacin de una puerta. En el caso de una bsqueda exitosa, el sistema deber abrir una puerta. Para ste proyecto, se realizar una simulacin en pantalla para abrir la puerta de acceso.

3.1.3.2. Administracin de la aplicacin

Consta de tres partes: Administracin de usuarios. Administracin de la Red Neuronal Artificial. Reporte de acceso del recurso humano.

3.1.3.2.1. Administracin de usuarios Se podr crear nuevos usuarios, los cuales tendrn su asociacin directa con su huella dactilar. Adems de agregar usuarios se podr borrarlos o actualizarlos.

3.1.3.2.2. Administracin de la Red Neuronal Artificial Se podr configurar a la red neuronal, definiendo el nmero de nodos, el nmero de patrones que podrn ser reconocidos, adems del entrenamiento de la red neuronal.

231

3.1.3.2.3. Reporte de acceso del recurso humano

En una pgina Web, a la que tendr acceso un usuario administrador nicamente se podr acceder a un reporte de las personas que abrieron la puerta que est controlada por la aplicacin.

3.1.4. META

Esta seccin representa una visin general de la solucin, y provee una introduccin a los requerimientos. 3.1.4.1. Concepto de Solucin

La aplicacin consiste de: La aplicacin WEB La aplicacin Windows.

El siguiente diagrama describe la solucin a alto nivel.

232

3.1.4.2. Perfiles de Usuario

Los siguientes tipos de usuario son esperados para el uso de la aplicacin (basado en los documentos del Anexo 3.2: Definicin de actores). Administrador Es quien tiene la responsabilidad del mantenimiento adecuado de la Base de Datos, mantener en buen funcionamiento el lector biomtrico, capacitacin al personal de recursos humanos y realizar el proceso de entrenamiento de la Red Neuronal en su primera etapa.

233

Personal de RR.HH. Encargado de realizar la alimentacin de los datos al sistema, capacitacin en el uso del sistema y del lector biomtrico a los empleados de la organizacin, obtener los reportes y posteriormente de atender a casos especiales, como por ejemplo el caso de que un usuario ya registrado no pueda acceder. Usuarios Debern asistir a la toma de huellas dactilares, usar el sistema cada vez que se desee tener ingreso a un rea controlada.

3.1.4.3. Resumen de uso

Es un diagrama que muestra los casos de uso global de la aplicacin. Durante el proceso de toma de informacin se completar el diagrama. Los casos de uso sern creados y priorizados durante la etapa de planificacin (ver Anexo 3.3: Definicin de casos de uso).

3.1.4.4. Resumen de Requerimientos Los siguientes requerimientos han sido tomados de las entrevistas iniciales, sern desarrollados en su totalidad en la etapa de planificacin (ver Anexo 3.4: Requerimientos y Anexo 3.6: Pantallas).

234

3.1.4.4.1. Requerimientos del Negocio Los requerimientos del negocio ya han sido discutidos dentro del alcance (ver Anexo 3.5: Reglas del negocio).

3.1.4.4.2. Requerimientos Operacionales Los siguientes requerimientos dan una visin general de los aspectos operacionales a tomar en cuenta: Se debe minimizar el conocimiento tcnico al momento de realizar la herramienta, de manera que el mantenimiento de la base pueda ser realizado por cualquier persona con conocimientos bsicos de sistemas. Cualquier cambio en la informacin debe ser actualizado de manera instantnea en la aplicacin Web y ser propaganda a las herramientas de bsqueda.

3.1.5. CRITERIOS DE XITO

Para determinar el xito del proyecto, las siguientes mtricas pueden ser cuantificadas y ser utilizadas para medir el xito de la aplicacin. 3.1.5.1. Aplicacin Windows

La seguridad es un factor importante en tomar en cuenta. Las actualizaciones e inserciones de contenido deben ser rigurosamente monitoreados.

235

No se debe permitir el ingreso de informacin no vlida.

3.1.5.2. Aplicacin Web

Los escritorios deben tener todos los reportes necesarios para el buen desempeo de su funcin. La informacin debe ser obtenida de una manera rpida. El rendimiento es muy importante en WEB. Cambios en la informacin deben ser reflejados inmediatamente.

3.1.6. DEFINICIN DE RIESGOS

Ver Anexo 3.7: Documento de riesgos.

236

3.2. DISEO CONCEPTUAL

3.2.1. ESPECIFICACIONES FUNCIONALES

3.2.1.1. Especificaciones de Casos de Uso

Ver Anexo 3.8: Workflows por casos de uso.

3.2.1.1.1. UC1: Adquirir la huella dactilar En primer lugar se debe verificar si el lector biomtrico se encuentra conectado y listo para adquirir las huellas dactilares. Una vez que se ha realizado dichas verificaciones, el sistema entrar en espera de que un dedo sea colocado sobre el Microsoft Fingerprint Reader, y automticamente se dispara el evento de captura. Luego, se realiza la comprobacin de la calidad de la imagen, teniendo como resultado que el sistema arrojar un error si es mala. En el caso de pasar el filtro anterior, se mostrar la imagen adquirida. Para ms informacin ver UC1: Adquirir la huella dactilar en el Anexo 3.8.

237

3.2.1.1.2. UC2: Ingresar cdigo de usuario Se espera que el usuario digite en el teclado el cdigo que se le ha asignado, y se ejecuta el caso de uso nmero 6 para permitir o no el acceso a una zona restringida. Para ms informacin ver UC2: Ingresar cdigo de usuario en el Anexo 3.8.

3.2.1.1.3. UC3: Extraer las minucias Este caso de uso especifica la manera de extraer las caractersticas principales de una huella dactilar o minucias, que conformarn el vector de caractersticas que ser alimentado posteriormente a la RNA. Para ms informacin ver UC3: Extraer las minucias en el Anexo 3.8.

3.2.1.1.3.1. UC3.1: Remover el fondo Ya que una imagen de una huella dactilar generalmente incluye algn fondo que no contiene ninguna informacin til es necesario eliminarlo. Se divide a la huella dactilar en bloques de 16x16 y calcular la bloque. Se asume que si la pertenece al fondo. promedio de los valores de escala de grises de cada promedio es mayor que un umbral, entonces el bloque

3.2.1.1.3.2. UC3.2: Clculo de la orientacin local La huella dactilar de entrada es alisada utilizando un filtro Gausiano de 5x5 de y

. Luego se aplican los operadores de Sobel a la imagen alisada para estimar la magnitud del gradiente. Luego de eso, la huella dactilar es dividida en bloques de 16x16 con

238

sobreponiendo 8 pxeles en cada dimensin. Para cada bloque, la orientacin local del patrn de surcos es obtenida a travs de estimar el error medio cuadrado:

Donde direcciones

y e

son las magnitudes del gradiente de los operadores Sobel en las respectivamente.

3.2.1.1.3.3. UC3.3: Alisamiento adaptivo La huella dactilar obtenida luego de remover el fondo es adaptivamente alisada usando la gua de la orientacin local. El propsito de este proceso es el de eliminar los detalles ms finos como los poros. Se realiza un alisado uniforme a lo largo de la orientacin de los surcos locales y un alisamiento Gausiano normal. La parte esencial del filtro de alisamiento es el producto normalizado de un kernel uniforme de 5x1 y un kernel Gausiano de 1x3 de y .

Las posibles orientaciones de los filtros de alisamiento son individualizados en 16 valores. Un filtro apropiado debe ser seleccionado de acuerdo a la orientacin local y aplicado a cada pxel.

3.2.1.1.3.4. UC3.4: Binarizacin y atenuacin adaptivas. La huella dactilar alisada es dividida en bloques de 16x16 con una sobre posicin de 8 pxeles a lo largo de cada dimensin. Para cada bloque, se realiza una ecualizacin de histograma, y se binariza el bloque a travs de:

239

Donde

es el valor del pxel

en escala de grises en el bloque ecualizado,

es el

valor binario del pxel

en la imagen binaria, y

es el umbral de la Binarizacin. Se

obtienen surcos atenuados a travs de atenuar la imagen binaria.

3.2.1.1.3.5. UC3.5: Seleccin de las minucias potenciales. Se han diseado filtros contextuales basados en la direccionalidad de la imagen, el filtro bsico consiste en una combinacin lineal de dos filtros, el de promedio y el de diferencias. Un algoritmo iterativo de atenuacin paralelo es utilizado para obtener el esqueleto de los surcos de la huella dactilar. Las minucias son extradas al utilizar los Crossing Numbers . Un en un punto es definido como: . o ,e , donde es el valor del . Los

pxel en el vecindario de

tiene un periodo de 8, que es

tienen las siguientes propiedades:

CN

1 Punto de

2 Punto de

3 Punto de

4 Punto de cruce

Propiedad Punto

aislado finalizacin continuacin bifurcacin

Los puntos de finalizacin y bifurcaciones son detectados utilizando las propiedades de los .

240

Las minucias potenciales iniciales son seleccionados por los

en cada pxel en la imagen

atenuada. Generalmente, las minucias potenciales iniciales contienen mucho ruido por la binarizacin, la atenuacin y el error en la estimacin de la orientacin local. Se siguen dos criterios simples para filtrar las minucias potenciales: 1. En un rea local pequea, si se han escogido un punto de finalizacin y de bifurcacin como minucias potenciales iniciales, entonces se las ignora a ambas. 2. En un rea local pequea, si se han escogido como minucias potenciales iniciales a ms de un punto de finalizacin o de bifurcacin, entonces se debe ignorar a todas stas minucias. El resultado es un conjunto de minucias potenciales relativamente bueno.

3.2.1.1.3.6. UC3.6: Aplicacin de plantillas adaptivas En este punto, las plantillas aprendidas son aplicadas a las locaciones de las minucias potenciales que se obtuvieron. Supngase que la orientacin local en las locaciones de las minucias potenciales es entonces se rota la plantilla aprendida por ecuaciones: ,

y se calcula la correlacin utilizando las

Para compensar el error en la estimacin de la orientacin local, las correlaciones de la huella dactilar son calculadas con cinco plantillas que son las plantillas aprendidas rotadas

241

con

. Los valores ms grandes son tomados como la correlacin de

esa locacin. Sea: 1. El nmero de minucias potenciales en una imagen es 2. La correlacin de las minucias potenciales son 3. La media y la desviacin estndar de 4. son y . , donde , respectivamente. .

es una constante para ajustar el umbral de rechazo de falsas minucias y puede ser positivo o negativo.

Si contrario es falsa.

, se escoge la -sima minucia potencial como una verdadera, caso

3.2.1.1.4. UC4: Alimentar la RNA Como entrada a la red se tiene el vector de caractersticas obtenido a travs del caso de uso nmero 3. Si la red ha sido inicializada, y si cada capa de neuronas puede tener su respectiva estrategia, entonces cada uno de los elementos del vector entra a una respectiva neurona de la capa de entrada. Para ms informacin ver el UC4: Alimentar la RNA en el Anexo 3.8.

242

3.2.1.1.5. UC5: Obtener resultado de la RNA Se pasa de la capa de entrada a la capa intermedia para su procesamiento. Y luego, se obtienen los resultados a travs de la capa de salida. Para ms informacin ver el UC5: Obtener resultado de la RNA en el Anexo 3.8.

3.2.1.1.6. UC6: Permitir o denegar acceso Este proceso utiliza los resultados obtenidos del UC1 y del UC2, verificando si el patrn ha sido aprendido por la red neuronal, y de obtener una respuesta positiva, se verifica si el cdigo del usuario es vlido en la base de datos (uso del UC9). En el caso de permitir o denegar el acceso, se registra en el Log del sistema (UC8). Para ms informacin ver el UC6: Permitir o denegar acceso en el Anexo 3.8.

3.2.1.1.7. UC7: Entrenar la RNA Para realizar el entrenamiento de la red neuronal se debe adquirir una huella dactilar, luego realizar la extraccin de las minucias, y alimentar la RNA. Posteriormente se halla las salidas de las neuronas de la capa intermedia, se calcula la tasa de error de la capa de salida y se realiza la actualizacin de los datos. Para ms informacin ver el UC7: Entrenar la RNA en el Anexo 3.8.

243

3.2.1.1.8. UC8: Almacenar Log Dependiendo de si se ha permitido o no el acceso se almacenan los datos, que incluirn en ambos casos la fecha y la hora, y en el caso de un permiso positivo el usuario. Para ms informacin ver el UC8: Almacenar la RNA en el Anexo 3.8.

3.2.1.1.9. UC9: Lectura / Escritura en BDD Se recibe la accin que se necesita realizar sobre la base de datos y dependiendo del tipo de la misma se la ejecuta. Para ms informacin ver el UC9: Lectura / Escritura en BDD en el Anexo 3.8.

3.2.1.1.10. UC10: Mantener usuarios En el caso de que se desee crear un nuevo usuario, se recibirn los datos necesarios de la base de datos, adems se solicitar que el usuario ingrese su huella dactilar y que la RNA aprenda el patrn. Luego se enviar la consulta respectiva a la base de datos. En el caso de desear eliminar un usuario se recibir el cdigo del mismo, para enviar la consulta a la base de datos. En el caso de desear actualizar un usuario se recibirn los nuevos datos y se enviar la consulta respectiva a la base de datos. Para ms informacin ver el UC10: Mantener usuarios en el Anexo 3.8.

244

3.2.1.1.11. UC11: Leer reportes Tras la seleccin del reporte que se desea ver, se enva la consulta respectiva a la base de datos y se presenta la informacin. Para ms informacin ver el UC11: Leer reportes en el Anexo 3.8.

3.2.1.1.12. UC12: Aprender huella dactilar Se tiene dos entradas, el patrn a aprender, y la salida esperada. Dentro de este proceso se realiza el procesamiento del patrn, y el respectivo ajuste de los pesos, hasta que se obtiene una tasa delta de error aceptable, siempre comparada con la salida esperada. Una vez que esta condicin se puede decir que la red neurona ha aprendido el patrn. Para ms informacin ver el UC12: Aprender huella dactilar en el Anexo 3.8.

3.2.1.2. Escenarios de uso

Para mirar el diseo de las pantallas ver el Anexo 3.6.

245

3.2.1.2.1. Pantalla 1: Red Neuronal Artificial ACTOR 1. Clic en el botn Inicializar la RNA. ACCIN 1. Creacin de las neuronas. 2. Creacin de las capas. 3. Concatenacin de las capas. 4. Concatenacin de las neuronas. 2. Clic en el botn Entrenar la RNA. 1. Verificacin de inicializacin de la RNA. 1.1. Si ha sido inicializada abrir la ventana de entrenamiento de la RNA. 2. Si no ha sido inicializada se lanza una excepcin. 3. Clic en el botn Redefinir constantes. 1. Se almacenan los nuevos parmetros.

Para ms informacin ver el Workflow Pantalla 1: Red Neuronal Artificial, en el Anexo 3.9.

3.2.1.2.2. Pantalla 2: Entrenamiento ACTOR ACCIN

1. Clic en el botn Obtener patrn de 1. Ejecucin del UC1: Adquirir huella entrenamiento. 2. Clic en el botn Entrenar. dactilar. 1. Se ha adquirido el patrn de entrenamiento? 1.1. Si se ha adquirido, Se ejecuta el UC7: Entrenar la RNA. 1.2. Si no se ha adquirido, se lanza una

246

excepcin. 3. Clic en el botn Otro patrn. 1. Se destruye la informacin almacenada en la memoria de la adquisicin anterior. 2. Ejecucin de las acciones que se ejecutaran al dar clic sobre el botn Obtener patrn de entrenamiento. 4. Clic sobre el botn Terminar. 1. Cerrar la ventana actual.

Para ms informacin ver el Workflow Pantalla 2: Entrenamiento, en el Anexo 3.9.

3.2.1.2.3. Pantalla 3: Recursos Humanos ACTOR 1. Clic en el botn Nuevo. ACCIN 1. Cargar una nueva fila al final del control DatagridView que permita ingresar los nuevos datos. 2. Abrir la ventana Almacenar una huella dactilar. 3. Asignar un nuevo cdigo de usuario automticamente. 4. Guardar los datos en la base de datos. 2. Clic sobre la opcin Editar de una fila 1. Cambiar las celdas por controles del tipo del control datagridview. caja de texto editables. 2. Colocar en los controles caja de texto los valores actuales del registro.

247

3. Cambiar las opciones por Guardar o Cancelar. 4. Clic sobre una opcin. 4.1. Si ha sido la opcin Guardar, almacenar los datos en la base de datos, actualizando los datos correspondientes al usuario al que pertenece el cdigo asignado a la fila del datagridview. 4.2. Si ha sido la opcin Cancelar, cambiar las cajas de texto editables nuevamente a las celdas y cambiar las opciones guardar o cancelar por editar o eliminar. 3. Clic sobre la opcin Eliminar de una 1. Eliminar los datos correspondientes al fila del control datagridview. cdigo asignado a la fila seleccionada en el datagridview.

Para ms informacin ver el Workflow Pantalla 3: Recursos humanos, en el Anexo 3.9.

3.2.1.2.4. Pantalla 4: Reportes ACTOR ACCIN

1. Seleccin del reporte en el control ----combobox. 2. Clic sobre el botn Ver. 1. Se ha seleccionado un reporte?

248

1.1. En el caso de haber sido seleccionado un reporte enviar al UC9 la consulta respectiva. 1.2. En el caso de no haberse seleccionado un reporte lanzar una excepcin.

Para ms informacin ver el Workflow Pantalla 4: Reportes, en el Anexo 3.9.

3.2.1.2.5. Pantalla 5: Cliente ACTOR 1. Ingreso del cdigo de usuario. ACCIN 1. Esperar que se lance el evento de captura de la huella dactilar. 2. Colocar el dedo en el lector biomtrico. 1. Ejecucin del UC1. 2. Ejecucin del UC3. 3. Ejecucin del UC4. 4. Ejecucin del UC5. 5. Ejecucin del UC2. 6. Ejecucin del UC6.

Para ms informacin ver el Workflow Pantalla 5: Cliente, en el Anexo 3.9.

249

3.2.1.2.6. Pantalla 6: Almacenar una huella dactilar ACTOR 1. Clic en el botn Adquirir H.D.. 2. Clic en el botn Extraer minucias. ACCIN 1. Ejecucin del UC1. 1. Se ha adquirido la huella? 1.1. Si. Ejecutar UC3. 1.2. Ejecutar UC12. 1.3. No. Lanza una excepcin. 3. Clic en el botn Almacenar. 1. Se han adquirido las minucias? 1.1. Si. Devolver de los datos al para

mantenimiento

usuarios

guardarlos en la base de datos. 1.2. No. Lanzar una excepcin.

Para ms informacin ver el Workflow Pantalla 6: Almacenar una huella dactilar, en el Anexo 3.9.

250

3.3. DISEO LGICO

3.3.1. DIAGRAMA DE PAQUETES El diagrama de paquetes que se obtiene de la aplicacin desarrollada muestra la estructura de libreras en las que la aplicacin esta dividida. Muestra en la parte ms alta al proyecto que presenta la informacin en pantalla (frontend). Y en la parte media muestra las libreras desarrolladas para el manejo de huellas dactilares, y la red neuronal. Adems los componentes de terceros utilizados para el control del lector biomtrico, la adquisicin de imgenes y la obtencin de la plantilla de minucias. Ver Anexo 3.10.

3.3.2. DIAGRAMA DE CLASES Para mayor facilidad se ha dividido al diagrama de clases en cuatro ms pequeos, donde se muestran las clases ms importantes utilizadas en la aplicacin y la manera en que interactan entre ellas.

3.3.2.1. Diagrama de clases para FINGERPRINT.Aplicacion Muestra la manera en que interactan las pantallas de la aplicacin. Ver Anexo 3.11.

251

3.3.2.2. Diagrama de clases para ANN.Libreria Muestra la manera en que interactan las clases de la librera para el manejo de la Red Neuronal Artificial. Es importante mencionar que esta librera representa un marco de trabajo genrico para la creacin de redes neuronales de cualquier arquitectura. Siendo la clase EstrategiaRED, que es derivada de la interfaz IEstrategia, la que proporciona la arquitectura a la red. Ver Anexo 3.12.

3.3.2.3. Diagrama de clases para ANN.ModeloDatos Muestra la manera en que interactan entre s las clases de la librera desarrollada para almacenar y cargar una red neuronal desde y hacia archivos XML, permitiendo mantener las conexiones y pesos. Ver Anexo 3.13.

3.3.2.4. Diagrama de clases para FINGERPRINT.Componentes Muestra la manera en que las clases desarrolladas para el manejo del dispositivo biomtrico y sus operaciones interactan entre s. Esta librera funciona sobre los componentes de GRIAULE, habiendo adquirido las licencias para el uso y desarrollo de aplicaciones de esta empresa ya que fue imposible utilizar las libreras de los drivers del lector de Microsoft por si solas. Ver Anexo 3.14.

252

3.3.3. DIAGRAMA DE SECUENCIAS El diagrama de muestra el ciclo de vida de los objetos principales y la manera en que ellos se comunican entre s. Ver Anexo 3.15.

253

3.3. DESCRIPCIN DE LIBRERAS Y SUS COMPONENTES PRINCIPALES

3.3.1. CLASES BSICAS DE LA LIBRERA ANN.Libreria 3.3.1.1. Clase IEstrategiaNeurona


public interface IEstrategiaNeurona { double Activacion(double valor);

double EncontrarDelta(double salida, double factor_error);

double EncontrarValorRed(ConexionesNeurona entradas, double bias);

double EncontrarNuevoBias(double bias, double delta);

void ActualizarPesos(ref ConexionesNeurona conexiones, double delta); }

3.3.1.2. Clase IFabricaRed


public interface IFabricaRed { IRedNeuronal CrearRed(long neuronas_entrada, long neuronas_salida); }

3.3.1.3. Clase INeurona


public interface INeurona { double ValorBias { get; set; }

254

double ValorDelta { get; set; }

ColeccionNeuronas ConexionesHaciaAdelante { get; }

ConexionesNeurona Entradas { get; }

double ValorSalida { get; set; }

IEstrategiaNeurona Estrategia { get; set; }

void ActualizarDelta(double factrorError);

void ActualizarParametrosLibres();

void ActualizarSalida(); }

255

3.3.1.4. Clase IRedNeuronal


public interface IRedNeuronal { CapaNeuronas CapaEntrada { get; }

ColeccionCapaNeuronas Capas { get; }

CapaNeuronas CapaSalida { get; }

void ConectarCapas(CapaNeuronas Capa1, CapaNeuronas Capa2);

void ConectarCapas();

void ConectarNeuronas(INeurona fuente, INeurona destino, double peso);

void ConectarNeuronas(INeurona fuente, INeurona destino);

System.Collections.ArrayList ObtenerSalida();

System.Collections.ArrayList EjecutarRed(ArrayList entradas);

void EntrenarRed(DatosEntrenamiento entrenamiento); }

256

3.3.1.5. Clase EstrategiaRED


public class EstrategiaRED : IEstrategiaNeurona { #region IEstrategiaNeurona Members

///<summary> ///Define la funcin de activacin de la red. ///</summary> public double Activacion(double valor) { try { return (1 / (1 + Math.Exp(valor * (-1)))); } catch (Exception ex) { throw activacin", ex); } } new Excepcion_EstrategiaNeurona("Excepcin en la funcin de

///<summary> ///Permite el valor del Delta. ///</summary> public double EncontrarDelta(double salida, double factor_error) { try { return salida * (1 - salida) * factor_error; } catch (Exception ex) { throw new Excepcion_EstrategiaNeurona("Excepcion al encontrar el Delta", ex); } }

257

///<summary> ///Obtiene la sumatoria del producto del peso por el valor de la salida. ///</summary> public double EncontrarValorRed(ConexionesNeurona entradas, double bias) { try { double sum = bias; foreach (INeurona n in entradas.Neuronas()) { sum += (entradas.getPeso(n) * n.ValorSalida); } return sum; } catch (Exception ex) { throw new Excepcion_EstrategiaNeurona("Error al encontrar el valor de la red", ex); } }

///<summary> ///Encuentra el valor del bias, determinado segn la taza de aprendizaje y el bias anterior. ///</summary> public double EncontrarNuevoBias(double bias, double delta) { try { ConstantesNeurona cnst = new ConstantesNeurona(); return bias + cnst.TAZA_APRENDIZAJE * 1 * delta; } catch (Exception ex) { throw new Excepcion_EstrategiaNeurona("Error al encontrar el nuevo valor del Bias", ex); }

258

///<summary> ///Realiza la actualizacin de los pesos, siempre basado en la taza de aprendizaje, y el delta de la neurona. ///</summary> public void ActualizarPesos(ref ConexionesNeurona conexiones, double delta) { try { ConstantesNeurona cnst = new ConstantesNeurona(); foreach(INeurona n in conexiones.Neuronas()) { conexiones.setPeso(n, n.ValorSalida * delta); } } catch (Exception ex) { throw new Excepcion_EstrategiaNeurona("Error al actualizar los valores de pesos", ex); } } conexiones.getPeso(n) + cnst.TAZA_APRENDIZAJE *

#endregion }

3.3.1.6. Clase FabricaRED


public class FabricaRED:IFabricaRed { public IRedNeuronal CrearRed(long neuronas_entrada, long neuronas_salida) { ArrayList al = new ArrayList(); al.Add(neuronas_entrada); al.Add(neuronas_entrada);

259

al.Add(neuronas_salida); return CrearRed(al); }

/// <summary> /// Crea una red neuronal, recibiendo un arraylist con las neuronas. /// </summary> public IRedNeuronal CrearRed(System.Collections.ArrayList neuronas_en_capas) { RedNeuronal net = new RedNeuronal(); EstrategiaRED estrategia = new EstrategiaRED() ;

foreach(long n in neuronas_en_capas) { CapaNeuronas capa = new CapaNeuronas(); for (long i = 0; i <= n - 1; i++) { capa.Add(new Neurona(estrategia)); } net.Capas.Add(capa); } net.ConectarCapas(); return net; } }

3.3.1.7. Clase Neurona


public class Neurona : INeurona { System.Random rnd; double _bias; double _salida; double _delta; ColeccionNeuronas _conexiones_hacia_adelante; ConexionesNeurona _entradas;

260

IEstrategiaNeurona _estrategia;

///<summary> ///CONSTRUCTOR: ///Crea una neurona con los valores por defecto. ///</summary> public Neurona() { rnd = new Random(); _bias = (double)(rnd.NextDouble()); _salida = 0; _delta = 0; _conexiones_hacia_adelante = null; _entradas = null; _estrategia = null; }

///<summary> ///CONSTRUCTOR: ///Crea una neurona basado en una estrategia predefinida. ///</summary> public Neurona(IEstrategiaNeurona estrategia) { rnd = new Random(); _bias = double.Parse(rnd.NextDouble().ToString()); _salida = 0; _delta = 0; _conexiones_hacia_adelante = null; _entradas = null; _estrategia = estrategia; } #region INeurona Members

#region Propiedades public double ValorBias { get

261

{ return _bias; } set { _bias = value; } }

public double ValorDelta { get { return _delta; } set { _delta = value; } }

public ColeccionNeuronas ConexionesHaciaAdelante { get { return _conexiones_hacia_adelante; }

public ConexionesNeurona Entradas { get { return _entradas; } }

262

public double ValorSalida { get { return _salida; } set { _salida = value; } }

public IEstrategiaNeurona Estrategia { get { return _estrategia; } set { _estrategia = value; } } #endregion

/// <summary> /// Mtodo que actualiza el Delta de la neurona, utilizando el mtodo provisto en la estrategia de la red. /// </summary> /// <param name="factrorError"></param> public void ActualizarDelta(double factrorError) { if (_estrategia == null) { throw new Excepcion_EstrategiaNoInicializada("Estrategia de la neurona no inicializada", null);

263

ValorDelta = Estrategia.EncontrarDelta(ValorSalida, factrorError); }

/// <summary> /// El siguiente mtodo actualiza el valor del Bias y los pesos de la neurona utilizando los mtodos provistos por la estrategia de la red. /// </summary> public void ActualizarParametrosLibres() { if (_estrategia == null) { throw new Excepcion_EstrategiaNoInicializada("Estrategia de la neurona no inicializada", null); }

ValorBias = Estrategia.EncontrarNuevoBias(ValorBias, ValorDelta); Estrategia.ActualizarPesos(ref _entradas, ValorDelta); }

/// <summary> /// Mtodo que actualiza la salida de la neurona, utilizando los mtodos provistos por la estrategia de la red. /// </summary> public void ActualizarSalida() { if (_estrategia == null) { throw new Excepcion_EstrategiaNoInicializada("Estrategia de la neurona no inicializada", null); }

double valorRed = Estrategia.EncontrarValorRed(Entradas, ValorBias); ValorSalida = Estrategia.Activacion(valorRed); }

264

#endregion }

3.3.1.8. Clase RedHelper


class RedHelper { private IRedNeuronal _red; private ColeccionDatosEntrenamiento ColaEntrenamiento = new

ColeccionDatosEntrenamiento(); private bool _en_entrenamiento = false;

#region Propiedades public ColeccionDatosEntrenamiento ColaDatosEntrenamiento { get { return ColaEntrenamiento; } }

public RedHelper(IRedNeuronal red) { _red = red; } #endregion

///<summary> ///Inicializa la red neuronal que es pasada como parmetro. ///</summary> public void Inicializar(IRedNeuronal red) { _red = red; ColaEntrenamiento.Clear(); }

265

///<summary> ///Se agregan los datos de entrenamiento a la red. ///</summary> public void AgregarDatosEntrenamiento(DatosEntrenamiento datos) { if (_red == null) throw new Excepcion_NoInicializado("No se ha inicializado el Helper.", null); this.ColaDatosEntrenamiento.Add(datos); }

///<summary> ///Se agregan los datos de entrenamiento a la red, siendo estos un arreglo con los datos de entrada y otro con los de salida. ///</summary> public void AgregarDatosEntrenamiento(ArrayList entrada, ArrayList salida) { if (_red == null) throw new Excepcion_NoInicializado("No se ha inicializado el Helper.", null);

if (entrada.Count != _red.CapaEntrada.Count) throw new Excepcion_EntradaInvalida("El nmero de datos en la entrada no cuadran con el nmero de neuronas en la capa de entrada", null);

if (salida.Count != _red.CapaSalida.Count) throw new Excepcion_EntradaInvalida("El nmero de datos en la salida no cuadran con el nmero de neuronas en la capa de salida", null);

DatosEntrenamiento de = new DatosEntrenamiento(entrada, salida); AgregarDatosEntrenamiento(de); }

///<summary> ///Se caracteres. ///</summary> public void AgregarDatosEntrenamiento(string entrada, string salida) { agregan los datos de entrenamiento a la red, siendo estos cadenas de

266

ArrayList ent; ArrayList sal; ProcesamientoPatronesHelper ppHelper = new ProcesamientoPatronesHelper(); ent = ppHelper.Patron_A_ArrayList(entrada); sal = ppHelper.Patron_A_ArrayList(salida); AgregarDatosEntrenamiento(ent, sal); }

///<summary> ///Se agregan los datos de entrenamiento a la red, siendo estos valores enteros. ///</summary> public void AgregarDatosEntrenamiento(long entrada, long salida) { if (_red == null) throw new Excepcion_NoInicializado("No se ha inicializado el Helper.", null);

ProcesamientoPatronesHelper ppHelper = new ProcesamientoPatronesHelper(); string patron_in = ppHelper.Numerico_A_Patron(entrada, _red.CapaEntrada.Count); string patron_out = ppHelper.Numerico_A_Patron(salida, _red.CapaSalida.Count); AgregarDatosEntrenamiento(patron_in, patron_out); }

///<summary> ///Se agregan los datos de entrenamiento a la red, siendo estos imgenes. ///</summary> public void AgregarDatosEntrenamiento(System.Drawing.Image entrada,

System.Drawing.Image salida) { if (_red == null) throw new Excepcion_NoInicializado("Helper no inicializado.", null); if (entrada.Width * entrada.Height != _red.CapaEntrada.Count) throw new Excepcion_EntradaInvalida("El nmero de datos de entrada no cuadran con el nmero de neuronas de la capa de entrada", null); if (salida.Width * salida.Height != _red.CapaSalida.Count) throw new Excepcion_SalidaInvalida("El nmero de datos de salida no cuadran con el nmero de neuronas de la capa de salida", null); ProcesamientoImagenesHelper piHelper = new ProcesamientoImagenesHelper();

267

System.Collections.ArrayList alEntrada = piHelper.Imagen_A_ArrayList(entrada); System.Collections.ArrayList alSalida = piHelper.Imagen_A_ArrayList(salida);

AgregarDatosEntrenamiento(alEntrada, alSalida); }

///<summary> ///Se agregan los datos de entrenamiento a la red, siendo la entrada una imgen y la salida en arreglo. ///</summary> public void AgregarDatosEntrenamiento(System.Drawing.Image entrada,

System.Collections.ArrayList salida) { if (_red == null) throw new Excepcion_NoInicializado("El null); if (entrada.Width * entrada.Height != _red.CapaEntrada.Count) throw new Excepcion_EntradaInvalida("El nmero de datos de entrada no cuadra con el nmero de neuronas en la capa de entrada.", null); Helper no ha sido inicializado.",

ProcesamientoImagenesHelper piHelper = new ProcesamientoImagenesHelper(); //System.Drawing.Bitmap imgEntrada;

System.Collections.ArrayList alEntrada = piHelper.Imagen_A_ArrayList(entrada);

AgregarDatosEntrenamiento(alEntrada, salida); }

///<summary> ///Se agregan los datos de entrenamiento a la red, siendo la entrada una imgen y la salida una cadena de caracteres. ///</summary> public void AgregarDatosEntrenamiento(System.Drawing.Image entrada, string salida) { if (_red == null)

268

throw new Excepcion_NoInicializado("El null);

Helper no ha sido inicializado.",

if (entrada.Width * entrada.Height != _red.CapaEntrada.Count) throw new Excepcion_EntradaInvalida("El nmero de datos de entrada no cuadra con el nmero de neuronas en la capa de entrada.", null);

ProcesamientoImagenesHelper piHelper = new ProcesamientoImagenesHelper(); ProcesamientoPatronesHelper ppHelper = new ProcesamientoPatronesHelper();

System.Collections.ArrayList alEntrada = piHelper.Imagen_A_ArrayList(entrada); System.Collections.ArrayList alSalida = ppHelper.Patron_A_ArrayList(salida);

AgregarDatosEntrenamiento(alEntrada, alSalida); }

///<summary> ///Se agregan los datos de entrenamiento a la red, siendo la entrada una imgen y la salida un entero. ///</summary> public void AgregarDatosEntrenamiento( System.Drawing.Image entrada, long salida ) { if (_red == null) throw new Excepcion_NoInicializado("El null); if (entrada.Width * entrada.Height != _red.CapaEntrada.Count) throw new Excepcion_EntradaInvalida("El nmero de datos de entrada no cuadra con el nmero de neuronas en la capa de entrada.", null); Helper no ha sido inicializado.",

ProcesamientoImagenesHelper piHelper = new ProcesamientoImagenesHelper(); ProcesamientoPatronesHelper ppHelper = new ProcesamientoPatronesHelper();

System.Collections.ArrayList alEntrada = piHelper.Imagen_A_ArrayList(entrada); System.Collections.ArrayList _red.CapaSalida.Count); alSalida = ppHelper.Numerico_A_ArrayList(salida,

AgregarDatosEntrenamiento(alEntrada, alSalida); }

269

///<summary> ///Mtodo que permite realizar el entrenamiento de la red, segn los datos de entrenamiento que fueron ingresados al objeto. /// Recibe el nmero de iteraciones que debe realizar, y un parmetro que le indica si interrumpe o no en el caso que suceda un error. ///</summary> public void Entrenar (long iteraciones, bool Interrumpir_En_Error) { if (_red == null) throw new Excepcion_NoInicializado("El null); if (_en_entrenamiento) throw actualmente.", null); new Excepcion_RedHelper("Se esta realizando el entrenamiento Helper no ha sido inicializado.",

System.Random rnd = new Random(); _en_entrenamiento = true;

//Repite el nmero de iteraciones que se han asignado. for (long i = 0; i <= iteraciones - 1; i++) { System.Collections.ArrayList (ArrayList)ColaDatosEntrenamiento.Clone(); while (EstadosTemp.Count > 0) { try { int NoItem = rnd.Next() * (EstadosTemp.Count - 1); DatosEntrenamiento dent = (DatosEntrenamiento)EstadosTemp[NoItem]; EstadosTemp =

//Se llama al mtodo de entrenamiento de la red. _red.EntrenarRed(dent); EstadosTemp.Remove(dent); Application.DoEvents(); } catch (Exception ex)

270

{ if (Interrumpir_En_Error) _en_entrenamiento = false; throw entrenamiento.", ex); } } new Excepcion_RedHelper("Ha ocurrido un error durante el

bool cancelar = false; //HelperTrinity.EventHelper.Raise(ProcesoEntrenamiento, ProcesoEntrenamiento_EventHandler(i+1, iteraciones, ref cancelar)); OnProcesoEntrenamiento(i + 1, iteraciones, ref cancelar); if (cancelar) _en_entrenamiento = false; this, new

} }

public void BorrarDatosEntrenamiento() { this.ColaDatosEntrenamiento.Clear(); }

public event ProcesoEntrenamiento_EventHandler OnProcesoEntrenamiento; }

public

delegate

void

ProcesoEntrenamiento_EventHandler(long

iteracion_actual,

long

num_iteraciones, ref bool cancelar);

271

3.3.1.9. Clase RedNeuronal


public class RedNeuronal : IRedNeuronal { ///<summary> ///Variable donde se almacenarn las capas que contiene esta Red Neuronal ///</summary> private ColeccionCapaNeuronas _capas;

#region IRedNeuronal Members

#region Propiedades public CapaNeuronas CapaEntrada { get { if (_capas.Count < 2) { throw new Excepcion_NoSuficientesCapas("Al menos deben existir dos capas para entrenar la red", null); } return (CapaNeuronas)_capas[0]; } }

public ColeccionCapaNeuronas Capas { get { return _capas; } }

public CapaNeuronas CapaSalida { get {

272

if (_capas.Count < 2) { throw new Excepcion_NoSuficientesCapas("Al menos deben existir dos capas para entrenar la red", null); } return (CapaNeuronas)_capas[_capas.Count - 1]; } } #endregion

///<summary> ///Dadas dos capas como parmetros se las conecta. ///</summary> public void ConectarCapas(CapaNeuronas Capa1, CapaNeuronas Capa2) { if (_capas.Count < 2) throw new Excepcion_NoSuficientesCapas("Se debe tener al menos dos capas en la red neuronal para poder entrenarla", null);

foreach(INeurona nEntrada in Capa1) { foreach(INeurona nObjetivo in Capa2) { ConectarNeuronas(nEntrada, nObjetivo); } } }

///<summary> ///Se conectan todas las capas que contenga una coleccin de capas. ///</summary> public void ConectarCapas() { try { //CapaNeuronas capaPrevia; //CapaNeuronas capaSiguiente;

273

for (int i=1; i<=_capas.Count -1; i++) ConectarCapas((CapaNeuronas)_capas[i-1], (CapaNeuronas)_capas[i]); } catch (Exception ex) { throw new Excepcion_RedNeuronal("Error durante el intento de conexin de las capas de neuronas", ex); } }

///<summary> ///Se conectas dos neuronas, y se les asigna un peso. ///</summary> public void ConectarNeuronas(INeurona fuente, INeurona destino, double peso) { if (_capas.Count < 2) throw new Excepcion_NoSuficientesCapas("Se debe tener al menos dos capas en la red neuronal", null);

destino.Entradas.Add(ref fuente, peso); fuente.ConexionesHaciaAdelante.Add(destino); }

///<summary> ///Se conectan dos neuronas y como peso se asigna un nmero generado randmicamente. ///</summary> public void ConectarNeuronas(INeurona fuente, INeurona destino) { if (_capas.Count < 2) throw new Excepcion_NoSuficientesCapas("Se debe tener al menos dos capas en la red neuronal", null);

System.Random rnd = new Random(); ConectarNeuronas(fuente, destino, rnd.NextDouble()); }

///<summary>

274

///Se itera sobre todas las neuronas contenidas en la capa de salida de la red, y sus valores van siendo asignados en un contenedor. ///</summary> public System.Collections.ArrayList ObtenerSalida() {

ArrayList al = new ArrayList(); foreach (INeurona neurona in CapaSalida) { al.Add(neurona.ValorSalida); } return al; }

///<summary> ///Este es el mtodo que ejecuta la red neuronal, recibe un arreglo con las valores de entrada que deben ser pasados por la red. ///</summary> public System.Collections.ArrayList EjecutarRed(ArrayList entradas) { //Se verifica que el nmero de datos de entrada sea igual al nmero de neuronas que contenga la red. if (entradas.Count != CapaEntrada.Count) { throw new Excepcion_EntradaInvalida("El numero de entradas no cuadran con el nmero de neuronas en la capa de entrada", null); }

//Se verifica que todos los datos de la entrada puedan ser convertidos al formato aceptado por la red neuronal. for (int i = 0; i <= entradas.Count -1; i++) { try { entradas[i] = Convert.ToSingle(entradas[i]); } catch

275

{ int j = i + 1; throw new Excepcion_EntradaInvalida("No se ha podido convertir el valor de entrada en la posicin " + j.ToString() + " a punto flotante", null); } }

try { //Se asigna un valor de salida a cada neurona. int i = 0; foreach(INeurona neurona in CapaEntrada) { neurona.ValorSalida = Convert.ToSingle(entradas[i]); i++; }

CapaNeuronas capa;

//Se actualizarn las salidas en cada capa de la red. for (i = 0; i <= _capas.Count - 1; i++) { capa = (CapaNeuronas)_capas[i]; foreach(INeurona neurona in capa) { neurona.ActualizarSalida(); } }

return ObtenerSalida(); } catch (Exception ex) { throw new Excepcion_Ejecucion("Error durante la ejecucin de la red", ex); } }

276

///<summary> ///Mdoto utilizado para el entrenamiento de la red neuronal, se ingresan al mtodo los datos con los que se proceder a realizarlo. ///</summary> public void EntrenarRed(DatosEntrenamiento t) { //Deben existir al menos 2 capas en la red. if (_capas.Count < 2) throw new Excepcion_NoSuficientesCapas("Deben existir al menos dos capas en la red neurona para entrenarla", null);

//Se verifica que el nmero de entradas sea igual que el nmero de neuronas en la capa de entrada. if (t.Entradas.Count != CapaEntrada.Count) throw new Excepcion_NoSuficientesCapas("El nmero de entradas no concuerdan con el nmero de neuronas en la capa de entrada", null);

//Se verifica que el nmero de salidas sea igual que el nmero de neuronas en la capa de salida. if (t.Salidas.Count != CapaSalida.Count) throw new Excepcion_SalidaInvalida("El nmero de salidas no concuerdan con el nmero de neuronas en la capa de salida", null);

//Se verifica que se puedan transformar los datos en valores vlidos para la red. for (int i = 0; i <= t.Entradas.Count - 1; i++) { try { t.Entradas[i] = (double)(t.Entradas[i]); } catch { double j = i + 1; throw new Excepcion_EntradaInvalida("Imposible convertir el valor en la posicion " + j.ToString() + " a Double", null); } }

277

//Se verifica que se puedan transformar los datos de salida en valores vlidos para la red. for (int i = 0; i <= t.Salidas.Count - 1; i++) { try { t.Salidas[i] = (double)(t.Salidas[i]); } catch { double j = i + 1; throw new Excepcion_SalidaInvalida("Imposible convertir el valor en la posicion " + j.ToString() + " a double", null); } }

try { //Se asigna a cada neurona de la capa de entrada el valor que le corresponde de los datos de entrada de los datos de entrenamiento. int i = 0; foreach( INeurona n in CapaEntrada) { n.ValorSalida = (double)t.Entradas[i]; i++; }

//Se actualizan las salidas para cada capa de la red. CapaNeuronas cn; for (int cont=1; cont <= _capas.Count - 1; cont ++) { cn = (CapaNeuronas)_capas[cont]; foreach(INeurona n in cn) { n.ActualizarSalida(); }

278

//Se actualizan los valores Delta de cada neurona de la capa de salida. i = 0; foreach( INeurona n in CapaSalida) { n.ActualizarDelta((double)t.Salidas[i] - n.ValorSalida); i++; }

//Se realiza el proceso de actualizaciones de valores delta y los otros parmetros de todas las capas de la red. CapaNeuronas CapaActual; int capa; for (i=_capas.Count - 2; i >= 1; i--) { CapaActual = (CapaNeuronas)_capas[i];

foreach(INeurona n in CapaActual) { double factor_error = 0; foreach(INeurona neurona_conectada in n.ConexionesHaciaAdelante) { factor_error += (neurona_conectada.ValorDelta *

neurona_conectada.Entradas.getPeso(neurona_conectada)); }

n.ActualizarDelta(factor_error); } }

for (i = 1; i <= _capas.Count - 1; i++) { foreach (INeurona n in (CapaNeuronas)_capas[i]) { n.ActualizarParametrosLibres(); }

279

} } catch (Exception ex) { throw new Excepcion_Entrenamiento("Ha ocurrido un error durante el

entrenamiento de la red", ex); } }

#endregion }

3.3.1.10. Clase Serializador_Red


public class Serializador_Red { public void Guardar_Red(string archivo, ANN.Libreria.IRedNeuronal red) { try { ModeloDatos.Red ModeloRed = new Red();

int contCapa = 0; int contNeurona = 0;

foreach (CapaNeuronas capa in red.Capas) { ModeloDatos.Capa capamodelo = new ModeloDatos.Capa(); contNeurona = 0;

capamodelo.Nombre = "Capa " + contCapa;

foreach (INeurona neurona in capa) { ModeloDatos.Neurona neuronamodelo = new ModeloDatos.Neurona();

280

neuronamodelo.Bias = neurona.ValorBias; neuronamodelo.Nombre contNeurona.ToString(); neuronamodelo.Salida = neurona.ValorSalida; neuronamodelo.Delta = neurona.ValorDelta; = "C" + contCapa.ToString() + "N" +

foreach (INeurona con in neurona.Entradas.Keys) { ModeloDatos.Entrada entradamodelo = new ModeloDatos.Entrada(); Point pos = EncontrarPosicionNeurona(con, red); entradamodelo.Peso = (double)neurona.Entradas[con]; entradamodelo.Capa = pos.X; entradamodelo.Neurona = pos.Y; neuronamodelo.Conexiones.Add(entradamodelo); }

capamodelo.Add(neuronamodelo); contNeurona++; }

contCapa++; ModeloRed.Add(capamodelo); }

XmlSerializer miSerializador = new XmlSerializer(typeof(ModeloDatos.Red)); StreamWriter miWriter = new StreamWriter(archivo); miSerializador.Serialize(miWriter, ModeloRed);

miWriter.Close(); } catch (Exception ex) { throw new Excepcion_SerializacionRed("Error mientras se guardaba la red", ex); } }

281

private Point EncontrarPosicionNeurona(INeurona neurona, IRedNeuronal redn) { int contCapa = 0;

foreach (CapaNeuronas capa in redn.Capas) { try { int index = capa.IndexOf(neurona); if (index >= 0) return new Point(contCapa, index); } catch{} contCapa ++; }

return new Point(-1, -1); }

public void CargarRed(string archivo, ref ANN.Libreria.IRedNeuronal redn) { try { XmlSerializer serializador = new XmlSerializer(typeof(ModeloDatos.Red)); redn.Capas.Clear();

FileStream fs = new FileStream(archivo, FileMode.Open); XmlTextReader rdr = new XmlTextReader(fs);

ModeloDatos.Red redmodelo = (ModeloDatos.Red)serializador.Deserialize(rdr);

rdr.Close();

EstrategiaRED estrategia = new EstrategiaRED();

foreach (ModeloDatos.Capa capamodelo in redmodelo.ColeccionCapas) {

282

CapaNeuronas capa = new CapaNeuronas();

capa = (CapaNeuronas)redn.Capas.Add(capa);

foreach(ModeloDatos.Neurona neuronamodelo in capamodelo) { Neurona nr = new Neurona(estrategia); nr.ValorBias = neuronamodelo.Bias; nr.ValorDelta = neuronamodelo.Delta; nr.ValorSalida = neuronamodelo.Salida; capa.Add(nr); //nr = (Neurona)capa.Add(nr);

foreach neuronamodelo.Conexiones) { INeurona

(ModeloDatos.Entrada

entradamodelo

in

neuronaEnt

(INeurona)((CapaNeuronas)(redn.Capas[entradamodelo.Capa]))[entradamodelo.Neurona]; redn.ConectarNeuronas(neuronaEnt, nr, entradamodelo.Peso); } } } } catch (Exception ex) { throw new Excepcion_SerializacionRed("Error al cargar la red", ex); } } }

283

3.3.2. CLASES BSICAS DE LA LIBRERA FINGERPRINT.Componentes 3.3.2.1. Clase clsOperaciones


public struct ImagenRAW { public object imagen; public int ancho; public int alto; public int resolucion; };

public class clsOperaciones { /// <summary> /// Constantes definidas por el usuario. /// </summary> public const int ERROR_NO_SE_PUEDE_ABRIR_BDD = -999; public const int ERROR_IDENTIFICADOR_INVALIDO = -998; public const int ERROR_PLANTILLA_INVALIDA = -997;

/// <summary> /// Obtiene el Device Context para mostrar la imagen /// </summary> [DllImport("user32.dll", EntryPoint = "GetDC")] public static extern IntPtr GetDC(IntPtr ptr);

/// <summary> /// Libera el Device Context /// </summary> [DllImport("user32.dll", EntryPoint = "ReleaseDC")] public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc);

public clsBDD Acceso_A_Datos; public ImagenRAW Raw; public PictureBox pbImagen;

284

public clsPlantilla plantilla;

private ListBox lbLog; private CheckBox cbAutoExtraer; private CheckBox cbAutoIndentificar; private Button btnRegistrar; private Button btnExtraer; private Button btnIdentificar; private Button btnVerificar;

AxGrFingerXCtrl gControl;

public clsOperaciones(ListBox lb, PictureBox pb) { lbLog = lb; pbImagen = pb; }

public clsOperaciones(ListBox lb, Button bext, Button bidn, Button bver, CheckBox cbaext, CheckBox cbaidn, Button breg) { lbLog = lb; cbAutoExtraer = cbaext; cbAutoIndentificar = cbaidn; btnRegistrar = breg; btnExtraer = bext; btnIdentificar = bidn; btnVerificar = bver; }

/// <summary> /// Permite la escritura en el listbox pasado a esta clase. /// </summary> public void Escribir_En_Log(string msg) { lbLog.Items.Add(msg); lbLog.SelectedIndex = lbLog.Items.Count - 1;

285

lbLog.ClearSelected(); }

/// <summary> /// Describe lo que significa cada error de la librera de griaule. /// </summary> public void DescribirError(GRConstants codigo) { switch ((int)codigo) { case (int)GRConstants.GR_ERROR_INITIALIZE_FAIL: Escribir_En_Log("Error al inicializar la librera. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_NOT_INITIALIZED: Escribir_En_Log("La librera no ha sido inicializada. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_FAIL_LICENSE_READ: Escribir_En_Log("No se encuentra la licencia. (Error:" + codigo + ")"); MessageBox.Show("No se encuentra la licencia."); return; case (int)GRConstants.GR_ERROR_NO_VALID_LICENSE: Escribir_En_Log("Licencia invlida. (Error:" + codigo + ")"); MessageBox.Show("Licencia invlida."); return; case (int)GRConstants.GR_ERROR_NULL_ARGUMENT: Escribir_En_Log("El parmetro tiene un valor NULL. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_FAIL: Escribir_En_Log("Error al intentar crear un objeto GDI. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_ALLOC: Escribir_En_Log("Error al tratar de crear un contexto. No se puede

separar memoria para esta accin. (Error:" + codigo + ")");

286

return; case (int)GRConstants.GR_ERROR_PARAMETERS: Escribir_En_Log("Uno (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_WRONG_USE: Escribir_En_Log("Esta funcin no puede ser utilizada aqu. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_EXTRACT: Escribir_En_Log("Error en codigo + ")"); return; case (int)GRConstants.GR_ERROR_SIZE_OFF_RANGE: Escribir_En_Log("La imgen es o muy grande o muy pequea. codigo + ")"); return; case (int)GRConstants.GR_ERROR_RES_OFF_RANGE: Escribir_En_Log("La imgen tiene una resolucin o muy baja o muy alta. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_CONTEXT_NOT_CREATED: Escribir_En_Log("El contexto no pudo ser creado. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_INVALID_CONTEXT: Escribir_En_Log("El contexto no existe. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_CONNECT_SENSOR: Escribir_En_Log("Error al conectarse al lector biomtrico. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_CAPTURING: Escribir_En_Log("Error durante la captura del lector biomtrico. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_CANCEL_CAPTURING: (Error:" + la extraccin de la plantilla. (Error:" + o ms parmetros estn fuera de los lmites.

287

Escribir_En_Log("Error biomtrico. (Error:" + codigo + ")"); return;

durante

el

proceso

de

apagado

del

lector

case (int)GRConstants.GR_ERROR_INVALID_ID_SENSOR: Escribir_En_Log("El ID del lector biomtrico es invlido. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_SENSOR_NOT_CAPTURING: Escribir_En_Log("El lector biomtrico no est capturando. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_INVALID_EXT: Escribir_En_Log("El archivo tiene una extensin desconocido. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_INVALID_FILENAME: Escribir_En_Log("El nombre del archivo es invlido. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_INVALID_FILETYPE: Escribir_En_Log("El tipo de archivo es invlido. (Error:" + codigo + ")"); return; case (int)GRConstants.GR_ERROR_SENSOR: Escribir_En_Log("El lector biomtrico ha generado un error. (Error:" + codigo + ")"); return; case ERROR_PLANTILLA_INVALIDA: Escribir_En_Log("Plantilla invlida. (Error:" + codigo + ")"); return; case ERROR_IDENTIFICADOR_INVALIDO: Escribir_En_Log("Identificador invlido. (Error:" + codigo + ")"); return; case ERROR_NO_SE_PUEDE_ABRIR_BDD: Escribir_En_Log("Error (Error:" + codigo + ")"); return; al intentar conectarse a la base de datos.

288

default: Escribir_En_Log("Error:" + codigo); return; } }

/// <summary> /// Verifica si la plantilla no es null o si su tamao no es cero. /// </summary> private bool Plantilla_Valida() { if (plantilla.dataPlantilla != null && plantilla.tamanio > 0) return true; else return false; }

/// <summary> /// Inicializa un control que es pasado como parmetro. /// </summary> public int Inicializar (AxGrFingerXCtrl ctrl) { gControl = ctrl; GRConstants r; if (Acceso_A_Datos == null) { Acceso_A_Datos = new clsBDD(); } if (Acceso_A_Datos.AbrirBDD() == false) { return ERROR_NO_SE_PUEDE_ABRIR_BDD; } if (plantilla == null) { plantilla = new clsPlantilla(); }

289

Raw = new ImagenRAW(); r = (GRConstants)gControl.Initialize(); if (r < 0) return (int)r; else return (int)gControl.CapInitialize(); }

/// <summary> /// Termina las acciones que puede realizar el control de griaule. /// </summary> public void FinalizarUtilidades() { gControl.Finalize(); gControl.CapFinalize(); Acceso_A_Datos.CerrarBDD(); Raw.imagen = null; plantilla = null; Acceso_A_Datos = null; }

/// <summary> /// Muestra la huella digital en pantalla /// </summary> public IDContexto) { IPictureDisp handle_img = null; IntPtr hdc = System.IntPtr.Zero; System.Drawing.Image im = (System.Drawing.Image)handle_img; if (EsBiometrico) { gControl.BiometricDisplay(ref plantilla.dataPlantilla, ref Raw.imagen, void Mostrar_Huella_Digital_En_Pantalla(bool EsBiometrico, GRConstants

Raw.ancho, Raw.alto, Raw.resolucion, (int)hdc, ref im, (int)IDContexto); } else {

290

gControl.CapRawImageToHandle(ref Raw.imagen, Raw.ancho, Raw.alto, (int)hdc, ref im); }

if (im != null) { pbImagen.Image = ConversorImagenes.Ipicture_A_Imagen(handle_img); pbImagen.Update(); }

ReleaseDC(System.IntPtr.Zero, hdc); }

public int Registrar() { int id = 0; if (Plantilla_Valida()) { Acceso_A_Datos.AgregarPlantilla(plantilla, ref id); return id; } else { return -1; } }

/// <summary> /// Extrae las minucias de una imagen de huella dactilar. /// </summary> public int ExtraerPlantilla() { int resp; plantilla.tamanio = (int)GRConstants.GR_MAX_SIZE_TEMPLATE; resp = gControl.Extract(ref Raw.imagen, Raw.ancho, Raw.alto, Raw.resolucion, ref plantilla.dataPlantilla, ref plantilla.tamanio, (int)GRConstants.GR_DEFAULT_CONTEXT); if (resp < 0)

291

{ plantilla.tamanio = 0; } return resp; }

public int Identificar(ref int X) { GRConstants resultado; int id; SqlDataReader rdr; clsPlantilla plntRef;

if (!Plantilla_Valida()) { return ERROR_PLANTILLA_INVALIDA; }

resultado

(GRConstants)gControl.IdentifyPrepare(ref

plantilla.dataPlantilla,

(int)GRConstants.GR_DEFAULT_CONTEXT);

if (resultado < 0) { return (int)resultado; }

rdr = Acceso_A_Datos.ObtenerTodasPlantillas(); while (rdr.Read()) { plntRef = Acceso_A_Datos.ObtenerPlantilla(rdr); resultado = (GRConstants)gControl.Identify(ref plntRef.dataPlantilla, ref X, (int)GRConstants.GR_DEFAULT_CONTEXT); if (resultado == GRConstants.GR_MATCH) { id = Acceso_A_Datos.ObtenerID(rdr); rdr.Close(); return id;

292

} else if (resultado < 0) { rdr.Close(); return (int)resultado; } } rdr.Close(); return (int)GRConstants.GR_NOT_MATCH; }

public int Verificar(int id, ref int X) { clsPlantilla plntRef;

if (!Plantilla_Valida()) { return ERROR_PLANTILLA_INVALIDA; }

plntRef = Acceso_A_Datos.ObtenerPlantilla(id);

if ((plntRef.dataPlantilla == null) || (plntRef.tamanio == 0)) { return ERROR_IDENTIFICADOR_INVALIDO; }

return

(int)gControl.Verify(ref

plantilla.dataPlantilla,

ref

plntRef.dataPlantilla, ref X, (int)GRConstants.GR_DEFAULT_CONTEXT); } }

293

3.3.2.2. Clase clsBDD


public class clsBDD { private SqlConnection cnx; private SqlCommand cmd; private clsPlantilla tempPlantilla; public SqlConnectionStringBuilder cnxStrB;

public clsBDD() { cnxStrB = new SqlConnectionStringBuilder(); cnxStrB.InitialCatalog = "BIOCTRL"; cnxStrB.DataSource = @"juanpa\sql"; cnxStrB.IntegratedSecurity = true; }

/// <summary> /// Permite abrir la conexion de la base de datos. /// </summary> public bool AbrirBDD() { cnx = new SqlConnection(cnxStrB.ConnectionString); try { cnx.Open(); } catch { return false; } tempPlantilla = new clsPlantilla(); return true; }

/// <summary> /// Cierra la conexin activa de la base de datos.

294

/// </summary> public bool CerrarBDD() { if (cnx.State != ConnectionState.Closed) { try { cnx.Close(); } catch { return false; } return true; } else { return false; }

/// <summary> /// Permite borrar todos los datos de la tabla de usuarios. /// </summary> public bool BorrarDatos() { cmd = new SqlCommand("DELETE FROM bc_Usuarios", cnx); if (cnx.State != ConnectionState.Open) { try { cmd.ExecuteNonQuery(); } catch { return false;

295

} return true; } else { return false; } }

/// <summary> /// Permite insertar una plantilla con un cdigo asignado automticamente. /// </summary> public bool AgregarPlantilla(clsPlantilla tmpPlant, ref int id) { SqlParameter prm; cmd = new SqlCommand("insert into bc_Usuarios (bc_usr_plantilla) values

(@plantilla)", cnx); try { System.Byte[] t = new byte[tmpPlant.tamanio + 1]; System.Array.Copy(tmpPlant.dataPlantilla, 0, t, 0, tmpPlant.tamanio); prm = new SqlParameter("@plantilla", SqlDbType.VarBinary, tmpPlant.tamanio, ParameterDirection.Input, false, 0, 0, "ID", DataRowVersion.Current, t); cmd.Parameters.Add(prm); if (cnx.State == ConnectionState.Open) cmd.ExecuteNonQuery(); } catch { return false; } try { cmd = new SqlCommand("SELECT top 1 ID FROM bc_Usuarios ORDER BY ID DESC", cnx); id = Convert.ToInt32(cmd.ExecuteScalar()); }

296

catch { return false; } return true; }

/// <summary> /// Permite obtener todas las plantillas de la tabla de usuarios. /// </summary> public SqlDataReader ObtenerTodasPlantillas() { SqlDataReader rdr; cmd = new SqlCommand("select * from bc_Usuarios", cnx);

rdr = cmd.ExecuteReader();

return rdr; }

/// <summary> /// Permite obtener la plantilla especfica para un usuario. /// </summary> public clsPlantilla ObtenerPlantilla(int id) { SqlDataReader rdr = null; tempPlantilla.tamanio = 0; try { cmd = new SqlCommand("select * from bc_Usuarios where bc_usr_id = @id", cnx); cmd.Parameters.Add("@id", SqlDbType.Int, 4).Value = id; rdr = cmd.ExecuteReader(); rdr.Read(); ObtenerPlantilla(rdr); rdr.Close(); } catch

297

{ rdr.Close(); } return tempPlantilla; }

/// <summary> /// Devuelve la plantilla que regresa en un datareader. /// </summary> public clsPlantilla ObtenerPlantilla(SqlDataReader rdr) { long bytesleidos; tempPlantilla.tamanio = 0; System.Byte[] t = new byte[(int)GRConstants.GR_MAX_SIZE_TEMPLATE]; bytesleidos = rdr.GetBytes(1, 0, t, 0, t.Length); System.Array.Copy(t, 0, tempPlantilla.dataPlantilla, 0, (int)bytesleidos); tempPlantilla.tamanio = (int)bytesleidos; return tempPlantilla; }

public int ObtenerID(SqlDataReader rdr) { return rdr.GetInt32(0); } }

3.3.2.3. Clase clsPlantilla


public class clsPlantilla { public Array dataPlantilla; public int tamanio;

/// <summary> /// Crea una plantilla donde se almacenar el vector binario que contiene las minucias de una huella dactilar.

298

/// </summary> public clsPlantilla() { dataPlantilla = new byte[(int)GRConstants.GR_MAX_SIZE_TEMPLATE]; tamanio = 0; } }

299

3.4. DESCRIPCIN DE USO


La aplicacin Control Biomtrico de Acceso, est dividida en tres partes bsicamente, la primera es la Administracin de la aplicacin, la segunda es el mdulo para Recursos Humanos y la tercera es la aplicacin cliente. La siguiente es la pantalla principal, donde se podrn elegir cualquiera de las partes de la aplicacin:

Y las opciones que permite el men son las siguientes, en el caso de Servidor:

300

Para el caso de Cliente:

301

3.4.1. ADMINISTRACIN DE LA APLICACIN Si se selecciona la opcin Red Neuronal Artificial en el men Servidor, se abrir la siguiente pantalla:

Si se da un clic sobre el botn Inicializar la RNA se crear una red neuronal, con los parmetros definidos para esta aplicacin, que son: 700 neuronas en la capa de entrada, 700 en la capa intermedia y 700 en la capa de salida. Si se da un clic sobre el botn Guardar Red, se guardar la red creada en un archivo XML. El archivo deber guardarse como C:\MIRED.XML, para que pueda ser ledo en las siguientes pantallas. Si se da un clic sobre el botn Recuperar Red, se podr cargar en la memoria un archivo XML con una red neuronal.

302

Cualquier accin que vaya sucediendo en los procesos que ocurren en esta pantalla van a ser mostrados en el listado de acontecimientos. Si se da un clic en el botn Entrenar la RNA se abre una pantalla de entrenamiento, que tiene dos secciones, la primera es la de adquisicin de la huella dactilar y de entrenamiento, adems permite ingresar otro patrn o terminar el proceso:

La segunda parte muestra un detalle de los sucesos:

303

3.4.2. RECURSOS HUMANOS 3.4.2.1. Mantenimiento de usuarios La siguiente pantalla:

304

Muestra los datos de los usuarios que estn almacenados en la base de datos. Es importante mencionar que la huella dactilar NO es almacenada en la base de datos, lo que se guarda un arreglo binario que representa a las minucias de la misma, razn por la cual la imagen no es mostrada. El control donde se muestra la huella, es utilizado para mostrar una nueva, cuando se inserta un nuevo usuario a la base de datos. Cuando se desea actualizar un usuario que est mostrado en pantalla se debe cambiar los datos deseados, luego presionar el botn Actualizar, y posteriormente el botn guardar. Si se desea insertar un usuario se debe presionar el botn que contiene una cruz, y aparecer un registro en blanco. Luego de ingresar los datos, incluida la huella dactilar, se debe presionar el botn guardar. Cuando se desea leer una huella dactilar se debe presionar el botn Iniciar Lector, luego presionar el dedo sobre el lector, y luego presionar el botn Extraer Plantilla. 305

Cuando se presiona el botn guardar, se lanza el proceso de entrenamiento de la RNA con la huella dactilar adquirida, y luego se almacena en el archivo C:\MIRED.XML.

3.4.2.2. Reportes La siguiente pantalla:

Le permite al usuario seleccionar un reporte, que ser mostrado en el visor de la parte inferior.

306

3.4.3. APLICACIN CLIENTE La siguiente pantalla:

Es la que controla el acceso a una instalacin protegida por la aplicacin. El usuario que desee ingresar, deber insertar su cdigo de usuario, y luego deber colocar el dedo que ha registrado en el lector biomtrico. La aplicacin intentar verificar que el usuario es quien dice ser, al comparar el cdigo y la huella.

307

CAPTULO IV: CONCLUSIONES Y RECOMENDACIONES

4.1. CONCLUSIONES

1. El software obtenido del desarrollo de esta tesis de grado cumple con los objetivos planteados al inicio de la presente investigacin. 2. El lector biomtrico elegido (Microsoft Fingerprint Reader) dificult el trabajo de investigacin sobre la adquisicin de las huellas dactilares por no tener una arquitectura abierta y de fcil manipulacin. Fue necesario recurrir a libreras de terceros, especficamente el SDK 4.2 FULL de Griaule con el respectivo costo de licencia de uso, que permite el control completo del dispositivo biomtrico a travs de un ActiveX. 3. Es necesario un amplio conocimiento de matemticas y estadstica con el fin de comprender y posteriormente implementar los conceptos de reconocimiento de patrones y redes neuronales. 4. Una de las justificaciones para la realizacin de la presente investigacin consiste en la reduccin de costos en la adquisicin de software y hardware que en conjunto puedan brindar la misma utilidad que el software desarrollado. A travs del

308

Internet29 se puede encontrar que existen sistemas muy bsicos cuyos precios oscilan entre US$ 200,00 y US$ 2000,00 por unidad lectora, en comparacin con el costo que puede tener el software obtenido en esta tesis de grado, que estara distribuido de la siguiente manera: a. Lector Biomtrico Microsoft Fingerprint Reader30. (US$ 35,00). b. Licencias de software de desarrollo, C# Express Edition31 (US$ 0,00). c. Licencia de base de datos, SQL Express Edition32 (US$ 0,00). d. Licencia del Griaule SDK 4.2 FULL33 (US$ 37,00 cada una). Lo que da como costo total US$ 72,00 por unidad. 5. Es importante tener claro el problema que se pretenda resolver a travs de redes neuronales artificiales para escoger la arquitectura adecuada, caso contrario se corre el riesgo de elegir una opcin que dificulte el trabajo o no se logre la solucin deseada. 6. Luego de un anlisis exhaustivo de las diferentes arquitecturas de redes neuronales mencionadas en las secciones 2.5 y 2.6 del presente trabajo de investigacin, se tom la decisin de utilizar una Red Neuronal Artificial Backpropagation, ya que

NexTag Comparison Shopping. En lnea. Internet 7 de Mayo 2007. Disponible WWW http://www.nextag.com/Acroprint-ATRX-Secure-Punch-65934517/prices-html; http://www.nextag.com/Acroprint-Time-Clocks-Time-511130970/prices-html
30

29

MicrosoftMice & Keyboards. En lnea. Internet 7 de Mayo 2007. Disponible WWW http://www.microsoft.com/hardware/mouseandkeyboard/ProductDetails.aspx?pid=093&active_tab =comparePrices
31

Visual Studio Express: Visual C#. En lnea. Internet 7 de Mayo 2007. Disponible WWW http://msdn.microsoft.com/vstudio/express/visualcsharp/default.aspx
32

Visual Studio 2005: SQL Server Express. En lnea. Internet 7 de Mayo 2007. Disponible WWW http://msdn.microsoft.com/vstudio/express/sql/
33

Griaule Prices. En lnea. Internet 7 de Mayo 2007. Disponible WWW http://www.griaule.com/page/en-us/prices

309

entrenada de una manera apropiada, se orienta a dar respuestas razonables cuando se le presentan conjuntos de entrada que an no han sido considerados. Tpicamente, una nueva entrada conduce a una entrada similar a la salida correcta para vectores de entrada que se han empleado en el entrenamiento (hecho que es de suma utilidad en este caso especfico, en el que el entrenamiento se lo realiza cuando se adquiere una nueva huella dactilar), los cuales a la vez son similares a las nuevas entradas que estn siendo presentadas. Esta generalizacin, hace posible entrenar una red sobre un conjunto representativo de parejas entrada / salida, obteniendo buenos resultados sin tener la necesidad de entrenar la red sobre todas las posibles parejas de entrada / salida. El mtodo de entrenamiento, o algoritmo de entrenamiento, seleccionado es el de Gradiente Descendente, que trata de minimizar una funcin de error. 7. La arquitectura seleccionada de la red es: a. Capa de entrada: Esta formada por 700 neuronas, que es el nmero mximo de tems que tendr el vector de caractersticas obtenido de la huella dactilar. b. Capa de salida: Esta formada por 700 neuronas, que es el nmero de posibles individuos a reconocer. c. Capa intermedia: Est formada por 700 neuronas, nmero seleccionado al seguir la regla de Berke y Hajela34 que dice que debe ser igual al promedio de la suma de las neuronas de entrada y las neuronas de salida. 8. Las clases que representan a la red neuronal artificial son muy abiertas, y permiten tener cualquier arquitectura posible, al implementar las interfaces disponibles. Esto

34

Artificial Intelligence Techniques for the Design and Analisys of Deep Foundations. En lnea. Internet 7 de mayo del 2007. Disponible WWW http://www.ejge.com/1999/Ppr9909/Ppr9909.htm

310

hace que sea posible definir en el tiempo de ejecucin los nmeros de neuronas de cada capa, ya que se crearn dinmicamente las conexiones entre las neuronas sin importar su nmero. Adems, la manera en que se almacena la red en el archivo XML y en que se la recupera permite armar una red de cualquier caracterstica.

311

4.2. RECOMENDACIONES

1. La presente tesis de grado, que de acuerdo a los objetivos planteados y aprobados, es desarrollada a nivel de prototipo, se recomienda su implementacin en la Universidad Tecnolgica Equinoccial luego de realizar la integracin fsica y de software con las puertas de acceso del IDIC especialmente. 2. Se recomienda el estudio y la ampliacin de este proyecto; especficamente de la librera desarrollada para la red neuronal, que pretende ser un marco de trabajo genrico para la implementacin de distintos tipos de arquitecturas con un mnimo trabajo por parte del desarrollador. 3. Se sugiere la utilizacin de un lector biomtrico que pueda ser utilizado con una arquitectura abierta, a diferencia del Microsoft Fingerprint Reader que puede ser instalado exclusivamente en el sistema operativo Windows, y no para las versiones de servidor.

312

BIBLIOGRAFA

About Fingerprint Scanning. En lnea. Internet 10 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/fingerprint_articles/fingerprint_1.html

Alonso, Luis. Aplicaciones e Implementaciones de las Redes Neuronales en Reconocimiento de Patrones (AIRENE). En lnea. Internet 10 de noviembre de 2005. Disponible WWW http://lisisu02.fis.usal.es/~airene/airene.html

Applying Kohonen Networks. En lnea Internet 30 de Agosto del 2006. Disponible WWW http://www.generation5.org/content/2004/kohonenApplications.asp

Arellano Guzmn, Gregorio. Ayuquina Carabajo, Martha. Cruz Ochoa, Wilson. Zambrano Molina, Darwin. Inteligencia Artificial. En lnea. Internet 10 de noviembre de 2005. Disponible WWW http://cruzrojaguayas.org/inteligencia/

Artificial Neural Network Structires. En lnea. Internet 21 de Agosto del 2006. Disponible WWW http://lsc.fie.umich.mx/~juan/Materias/ANN/Papers/artificialneural-network-structures.pdf#search=%22Hornik-StinchcombeWhite%20theorem%22

Associative Model: Hopfield Model. En lnea. Internet 7 de noviembre de 2005. Disponible WWW http://diwww.epfl.ch/mantra/tutorial/english/hopfield/html/

Belt Ibrica. Lufthansa ensaya el control de pasajeros por huella dactilar. En lnea. Internet 11 de Noviembre de 2005. Disponible WWW http://www.belt.es/noticias/2005/julio/15/lufthtansa.asp

313

Best, Ben. Overview of Neural Networks. En lnea. Internet 12 de octubre del 2005. Disponible WWW http://www.benbest.com/computer/nn.html

Bhanu, Bir; Tan, Xuejun. Computational Algorithms for Fingerprint Recognition. Estados Unidos de Amrica: Kluwer Academic Publishers, 2004.

Biometric Engine - Defining Identity. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/Bio21st.pdf

Biometric Recognition: Security and Privacy concerns. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.csun.edu/~deb53351/Papers/Prabhakar_Biometric_recognition.pdf

Biometrics 101. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/guide3.html

Biometrics history Looking at biometrics Technologies from the past to the present. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.video-surveillance-guide.com/biometrics-history.htm

Brain & Computer--How Biological Neurons Work. En lnea. Internet 20 de Agosto del 2006. Disponible WWW http://library.thinkquest.org/19314/neurons.htm

Discriminantes lineales. En lnea. Internet 20 de Agosto del 2006. Disponible WWW iie.fing.edu.uy/ense/asign/recpat/material/rp05_disc_lineales.ppt

Dong, Jiyang. Xu, Shenchu. Chen, Zhenxiang. Wu, Boxi. On permutation Symmetries of Hopfield Model Neural Network. China: Departamento de Fsica de la Universidad d Xiamen, 2000.

El Rincn de la Ciencia. Identificacin de Huellas Dactilares. En lnea. Internet 8 de noviembre de 2005. Disponible WWW http://centros5.pntic.mec.es/ies.victoria.kent/Rincon-C/Curiosid/Rc-57/Rc-57a.htm

314

Fingerprint Identification - What You Need to Know. En lnea. Internet 11 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/fingerprint_articles/fingerprint_4.html

Fingerprint Identification - What You Need to Know. En lnea. Internet 11 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/fingerprint_articles/fingerprint_4.html

Fingerprint Indexing Based on Singular Point Correlation. En lnea. Internet 15 de Agosto del 2006. Disponible WWW http://www.dcs.qmul.ac.uk/~phao/Papers/ICIP05ZC.pdf#search=%22fingerprint%20indexing%22

Fingerprint Matching - Dr. Anil K. Jain's Lecture. En lnea. Internet 15 de Agosto del 2006. Disponible WWW http://www.pims.math.ca/industrial/2002/mitacsagm/jain/

Gmez Martnez, Mario. Redes de Hopfield. En lnea. Internet 8 de noviembre de 2005. Disponible WWW http://www.iiia.csic.es/~mario/rna/tutorial/RNA_hopfield.html

Gonzlez, Rafael C., Woods, Richard E. Tratamiento Digital de Imgenes. Estados Unidos de Amrica: Addison-Wesley/Diaz de Santos, 1996.

Identification versus Verification. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.findbiometrics.com/Pages/guide4.html

Introduction to Finite Automata. En lnea. Internet 1 de Septiembre del 2006. Disponible WWW http://www.cs.odu.edu/~toida/nerzic/390teched/regular/fa/intr_2_fa.html

Kononen Networks. En lnea. Internet 30 de Agosto del 2006. Disponible WWW http://www.cs.bham.ac.uk/~jlw/sem2a2/Web/Kohonen.htm

315

Kutza, Karsten. Neural Networks at your fingertips. En lnea. Internet 12 de octubre del 2005. Disponible WWW http://www.neural-networks-at-your-fingertips.com/

Looney, Carl. Pattern Recognition using Neural Networks: theory and algorithms for engineers and scientists. Estados Unidos de Amrica: Oxford University Press, 1996.

Maltoni, Davide; Maio, Dario; Jain, Anil K.; Prabhakar, Salil. Handbook of Fingerprint Recognition. Estados Unidos de Amrica: Springer. 2003.

Microsoft Corporation. Visual Studio 2005 Team System: Microsoft Solutions Framework. En lnea. Internet 14 de octubre del 2005. Disponible WWW http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnvsent/html/vsts-msf.asp

Miller, Granville G. Visual Studio Team System 2005: The Microsoft Solutions Framework: An Integrated Approach to Agile or Formal Software Development Process. En lnea. Internet 14 de octubre del 2005. Disponible WWW http://blogs.msdn.com/askburton/archive/2004/12/22/330976.aspx

Neural Networks and Machine Learning. En lnea Internet 20 de Julio. disponible WWW http://www.newton.cam.ac.uk/reports/9798/nnm.html

Ornstein, L. Unsupervised Pattern-Recognition and Artificial Neural Networks. En lnea. Internet 12 de octubre del 2005. Disponible WWW http://www.pipeline.com/~lenornst/PatternRecognition&NN.html

The 123 of biometric technology. En lnea. Internet 1 de Agosto del 2006. Disponible WWW http://www.itsc.org.sg/synthesis/2002/biometric.pdf

The History of Fingerprints . En lnea. Internet 1 de Agosto del 2006. Disponible WWW htmhttp://www.onin.com/fp/fphistory.html

316

Torres Moreno, Juan Manuel. Algunos modelos informticos; memoria, computadoras y amnesia. En lnea. Internet 8 de noviembre de 2005. Disponible WWW http://www.jornada.unam.mx/1998/09/14/cien-memoria.html

Universidad de Granada. Patrones y Reconocimiento de Patrones. En lnea. Internet 10 de noviembre de 2005. Disponible WWW http://wwwetsi2.ugr.es/depar/ccia/rf/www/tema1_00-01_www/node2.html

Universidad de la Repblica. Sistema de Identificacin Dactilar. En lnea. Internet 10 de Noviembre de 2005. Disponible WWW http://www.fing.edu.uy/~almansa/t5_1998/t5acceso.html

Vicente, M. Asuncin. Inteligencia Artificial y Reconocimiento de Patrones. En lnea. Internet 9 de noviembre de 2005. Disponible WWW http://lorca.umh.es/isa/es/asignaturas/iarp/

Wikipedia: Huellas dactilares. En lnea. Internet 8 de noviembre de 2005. Disponible WWW http://es.wikipedia.org/wiki/Huellas_dactilares

Wikipedia: Red neuronal artificial. En lnea. Internet 8 de Noviembre de 2005. Disponible WWW http://es.wikipedia.org/wiki/Red_ neuronal_artificial

Wikipedia: Red neuronal artificial. En lnea. Internet 8 de Noviembre de 2005. Disponible WWW http://es.wikipedia.org/wiki/Red_ neuronal_artificial

317

ANEXOS

318

ANEXO1:GLOSARIODETRMINOS
AFIS: viene del ingls Automatic Fingerprint Identification Systems, y son los sistemasautomatizadosdereconocimientodehuellasdactilares. APRENDIZAJE: Es la manera en que la red va a aprender a resolver los problemas, bsicamentetienedostipos:SupervisadoyNoSupervisado. ATRACTOR: Es un estado en las redes recurrentes en el que siempre se llega a si mismo. BIOMETRA: Encierra a varios mtodos de reconocimiento de seres humanos a travsdesuscaractersticascomportamentalesofisiolgicas. CLASE: Es un conjunto de caractersticas que son afines, por eso estn clasificadas dentrodeunamismaclase. CLUSTER:Esunracimodecaractersticasqueestnmuycercanas. ENTRENAMIENTO: Es el proceso a travs del cual una red neuronal artificial aprende la manera en que debe realizar la clasificacin de los patrones que ingresanaella,yatravsdelcualposteriormenteobtieneresultados. ESPACIO DE CARACTERSTICAS: Es el espacio geomtrico en el que se ubican las caractersticas obtenidas, y donde se trabajar en su agrupacin para lograr reconocerunpatrn. FUNCIN DE RED: Calcula el valor total de entrada al neuronodo, teniendo como salidageneralmentelasumaponderadadetodaslasentradasponderadas. FUNCIN DE TRANSFERENCIA: Calcula el nivel de estado de activacin de la neuronaenbasealaentradatotalponderada.

HUELLAS DACTILARES: Son las marcas que todos los seres humanos tenemos en la punta de los dedos. Estas marcas son nicas, pudiendo utilizarlas para reconocer efectivamenteaalguiennicamenteconellas.

IDENTIFICACIN, SISTEMA DE: Consiste en un sistema que busca una huella dactilar (en este caso particular) en toda una base de datos hasta encontrar o no unacoincidencia.

MAPEO: En esta tesis se utilize el trmino relacin como sinnimo. Es una relacin entre conjuntos, igual que una funcin matemtica, pero de manera ms generalyaqueeldominiooelcodominionosiemprepuedensernumricos.

MEMORIA ASOCIATIVA (ASSOCIATIVE MEMORY): Es un modo de almacenamiento de informacin en la que una informacin est directamente asociada con otra, y para obtener un resultado de una bsqueda es necesario ingresar una informacin paraversiexisteotraasociadaaella.

MEMORIA DE CONTENIDO DIRECCIONABLE: Es una memoria cuyo contenido es su propiadireccin.

MINUCIA: Son los puntos caractersticos de una huella dactilar que permiten su reconocimiento.

MODELO DE REDES NEURONALES DE HOPFIELD: Es un modelo distribuido de memoria asociativa altamente utilizado en el reconocimiento de patrones en mapasdebits.Paraestemodelocadaneuronarepresentaunpxel,ypuedentomar valores de ON(+1) y OFF(1). La red neuronal tiene almacenados algunos patrones de pxeles que fueron alimentados durante una fase inicial de carga. Durante una segunda fase, la de recuperacin de estos patrones para hacer la comparacin con alguna entrada, la red va realizando las comparaciones y va evolucionando hasta obtener un patrn de pxeles igual o similar dentro de los que se tenan

almacenados.Enstemodeloexisteunaconectividadcompleta,es decirquetodas lasneuronasestnconectadasentres. MONOCAPA:Serefierealasredesqueposeenunasolacapadeneuronodos. MONOTICIDAD: se dice que una funcin tiene monoticidad (o es monotnica) si conserva un orden dado, es decir, por ejemplo los valores resultados de una funcinmonotnicairnaumentandosilasentradastambinvanaumentando. MULTICAPA:Serefierealasredesqueposeendosomscapasdeneuronnodos. NO SUPERVISADO, APRENDIZAJE: La red neuronal no recibe ninguna influencia externaenelprocesodeentrenamiento. PERCEPTRN:Eselprimerneuronodoquerealmentefuncion. REDNEURONALARTIFICIAL(ARTIFICIALNEURALNETWORK):Esunaaplicacinque trata de simular el comportamiento de las neuronas en el cerebro humano en la toma de decisiones. Para esto se tienen los mismos elementos que en un cerebro, como son la neurona artificial que es un pedazo de cdigo que realiza un determinado proceso. Esta neurona artificial tiene entradas y salidas, a travs de las cuales se conecta con otras neuronas artificiales (sinapsis), y a travs de esta interconexin, que puede estar en una arquitectura de una o varias capas, se optimizan los resultados. Para lograr que una red neuronal obtenga las mejores salidas debe pasar por un proceso de entrenamiento que viene dado por condicionespreviamenteconocidasyquesondadasporlanaturalezadelproblema quesedeseasolucionar. SSE: Es la sumatoria de los cuadrados de las diferencias de un conjunto de datos dado con una media determinada. En el campo de las redes neuronales artificiales seloutilizacomounamedidaderendimiento.

SUPERVISADO, APRENDIZAJE: La red neuronal recibe junto con la entrada el valor quedeseaobtener.

UMBRAL: Es un valor determinado dentro de un neuronodo que determina la activacinonodelmismo.

VERIFICACIN, SISTEMA DE: Consiste en un sistema que busca una huella dactilar basadoenunaclaveoPINingresadoporelusuarioalsistema,detalmaneraquesi la huella almacenada que corresponde al PIN es igual a la leda es el usuario que reclamadichaidentidad.

ANEXO2:CRONOGRAMA

Id 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Task Name Diseo del Plan Aprobacin del Plan Revisin de la literatura Investigacin y comparacin de los tipos de RNA Investigacin del manejo del lector biomtrico Desarrollo de la adquisicin de huellas Pruebas de la adquisicin de huellas Documentacin de adquisicin de huellas Desarrollo de la RNA Pruebas de la RNA Documentacin de la RNA Desarrollo de la aplicacin de administracin Pruebas de la aplicacin de administracin Documentacin de la aplicacin de administracin Integracin de las partes Pruebas de la Aplicacin completa Documentacin de la Aplicacin integrada Extraccin de conclusiones Extraccin de recomendaciones Preparacin del borrador Correccin del borrador Presentacin del documento final Calificacin del documento final Solicitud del grado oral

Duracin 10 das 10 das? 20 das 30 das 10 das 10 das 10 das 5 das 20 das 20 das? 5 das 10 das 10 das? 5 das 10 das 10 das? 5 das 3 das 3 das 10 das 10 das 10 das 15 das 15 das

Comienzo mar 01/11/05 mar 15/11/05 mar 01/11/05 mar 29/11/05 lun 09/01/06 sb 21/01/06 sb 21/01/06 vie 03/02/06 jue 09/02/06 jue 09/02/06 mi 08/03/06 mi 15/03/06 mi 15/03/06 mi 29/03/06 mi 05/04/06 mi 05/04/06 mi 19/04/06 mi 26/04/06 mi 26/04/06 mi 19/04/06 mi 03/05/06 mi 17/05/06 mi 31/05/06 mi 21/06/06

Fin lun 14/11/05

Predecesoras

30 oct '05 06 nov '05 13 nov '05 20 nov '05 27 nov '05 S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X 01/11 14/11 15/11 01/11 29/11 28/ 28/

lun 28/11/05 1 lun 28/11/05 dom 08/01/06 3,2 vie 20/01/06 4 jue 02/02/06 5 jue 02/02/06 5 mi 08/02/06 7,6 mar 07/03/06 8 mar 07/03/06 8 mar 14/03/06 9,10 mar 28/03/06 11 mar 28/03/06 11 mar 04/04/06 13,12 mar 18/04/06 14 mar 18/04/06 14 mar 25/04/06 15,16 vie 28/04/06 17 vie 28/04/06 17 mar 02/05/06 16 mar 16/05/06 20,18,19 mar 30/05/06 21 mar 20/06/06 22 mar 11/07/06 23

Task Proyecto: Cronograma Tesis Date: Lunes, 14 Nov 2005 Progress Milestone Summary

Rolled Up Task Rolled Up Milestone Rolled Up Progress Split Page 1

External Tasks Project Summary Group By Summary Deadline

Id 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Task Name Diseo del Plan Aprobacin del Plan Revisin de la literatura Investigacin y comparacin de los tipos de RNA Investigacin del manejo del lector biomtrico Desarrollo de la adquisicin de huellas Pruebas de la adquisicin de huellas Documentacin de adquisicin de huellas Desarrollo de la RNA Pruebas de la RNA Documentacin de la RNA Desarrollo de la aplicacin de administracin Pruebas de la aplicacin de administracin Documentacin de la aplicacin de administracin Integracin de las partes Pruebas de la Aplicacin completa Documentacin de la Aplicacin integrada Extraccin de conclusiones Extraccin de recomendaciones Preparacin del borrador Correccin del borrador Presentacin del documento final Calificacin del documento final Solicitud del grado oral

04 dic '05 11 dic '05 18 dic '05 25 dic '05 01 ene '06 08 ene '06 15 ene '06 22 ene '06 J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J 1 1 08/01 09/01 21/01 21/01 20/01

Task Proyecto: Cronograma Tesis Date: Lunes, 14 Nov 2005 Progress Milestone Summary

Rolled Up Task Rolled Up Milestone Rolled Up Progress Split Page 2

External Tasks Project Summary Group By Summary Deadline

Id 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Task Name Diseo del Plan Aprobacin del Plan Revisin de la literatura Investigacin y comparacin de los tipos de RNA Investigacin del manejo del lector biomtrico Desarrollo de la adquisicin de huellas Pruebas de la adquisicin de huellas Documentacin de adquisicin de huellas Desarrollo de la RNA Pruebas de la RNA Documentacin de la RNA Desarrollo de la aplicacin de administracin Pruebas de la aplicacin de administracin Documentacin de la aplicacin de administracin Integracin de las partes Pruebas de la Aplicacin completa Documentacin de la Aplicacin integrada Extraccin de conclusiones Extraccin de recomendaciones Preparacin del borrador Correccin del borrador Presentacin del documento final Calificacin del documento final Solicitud del grado oral

29 ene '06 05 feb '06 12 feb '06 19 feb '06 26 feb '06 05 mar '06 12 mar '06 19 mar '06 V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V

02/02 02/02 03/02 09/02 09/02 08/03 15/03 15/03 08/02 07/03 07/03 14/03

Task Proyecto: Cronograma Tesis Date: Lunes, 14 Nov 2005 Progress Milestone Summary

Rolled Up Task Rolled Up Milestone Rolled Up Progress Split Page 3

External Tasks Project Summary Group By Summary Deadline

Id 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Task Name Diseo del Plan Aprobacin del Plan Revisin de la literatura Investigacin y comparacin de los tipos de RNA Investigacin del manejo del lector biomtrico Desarrollo de la adquisicin de huellas Pruebas de la adquisicin de huellas Documentacin de adquisicin de huellas Desarrollo de la RNA Pruebas de la RNA Documentacin de la RNA Desarrollo de la aplicacin de administracin Pruebas de la aplicacin de administracin Documentacin de la aplicacin de administracin Integracin de las partes Pruebas de la Aplicacin completa Documentacin de la Aplicacin integrada Extraccin de conclusiones Extraccin de recomendaciones Preparacin del borrador Correccin del borrador Presentacin del documento final Calificacin del documento final Solicitud del grado oral

26 mar '06 02 abr '06 09 abr '06 16 abr '06 23 abr '06 30 abr '06 07 may '06 14 may '06 S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S

28/03 28/03 29/03 05/04 05/04 19/04 26/04 26/04 19/04 03/05 17/05 04/04 18/04 18/04 25/04 28/04 28/04 02/05 16/05

Task Proyecto: Cronograma Tesis Date: Lunes, 14 Nov 2005 Progress Milestone Summary

Rolled Up Task Rolled Up Milestone Rolled Up Progress Split Page 4

External Tasks Project Summary Group By Summary Deadline

Id 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Task Name Diseo del Plan Aprobacin del Plan Revisin de la literatura Investigacin y comparacin de los tipos de RNA Investigacin del manejo del lector biomtrico Desarrollo de la adquisicin de huellas Pruebas de la adquisicin de huellas Documentacin de adquisicin de huellas Desarrollo de la RNA Pruebas de la RNA Documentacin de la RNA Desarrollo de la aplicacin de administracin Pruebas de la aplicacin de administracin Documentacin de la aplicacin de administracin Integracin de las partes Pruebas de la Aplicacin completa Documentacin de la Aplicacin integrada Extraccin de conclusiones Extraccin de recomendaciones Preparacin del borrador Correccin del borrador Presentacin del documento final Calificacin del documento final Solicitud del grado oral

21 may '06 28 may '06 04 jun '06 11 jun '06 18 jun '06 25 jun '06 02 jul '06 09 jul '06 1 D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D L M X J V S D

30/05 31/05 21/06 20/06 11/07

Task Proyecto: Cronograma Tesis Date: Lunes, 14 Nov 2005 Progress Milestone Summary

Rolled Up Task Rolled Up Milestone Rolled Up Progress Split Page 5

External Tasks Project Summary Group By Summary Deadline

ANEXO3.1.:ENTREVISTAS

Entrevista con la Administracin Control Biomtrico de Acceso

Autor Posicin del Autor Fecha

Juan Pablo Ponce Vsquez Abril 24, 2006

Versin: 1.0

Tabla de contenidos
Resumen de la Entrevista .............................................................................................. 2 Detalles de la entrevista................................................................................................. 2

Resumen de la Entrevista
Se ha definido en la entrevista que se utilizar el lector de huellas dactilares Microsoft Fingerprint Reader junto con las libreras que lo acompaan y las complementarias en el sistema operativo Windows XP que es donde funciona. Se ha definido en la entrevista que como tcnica de reconocimiento de las huellas dactilares se utilizarn Redes Neuronales Artificiales, y todava est por definirse que tipo y que arquitectura. Se ha definido que se utilizar Visual Studio 2005, el lenguaje de desarrollo ser C# 2.0 y la base de datos en la que se almacenar ser SQL Server 2005 Standard Edition. Para cualquier tipo de reportes se utilizar tecnologa Web, utilizando Reporting Services para mayor facilidad.

Detalles de la entrevista
El entrevistado dio sugerencias tiles para el desarrollo y planeamiento del sistema: Se necesita realizar una investigacin detallada sobre los tipos de redes neuronales y sus arquitecturas para utilizar la que brinde ptimos resultados en este tipo de problemas. Se ha seleccionado como tecnologa la nueva plataforma .NET 2005 para el desarrollo de la Aplicacin. Se ha seleccionado el Microsoft Fingerprint Reader como el lector biomtrico por su magnifica integracin con el sistema operativo Windows XP que es donde funcionara la aplicacin de adquisicin de huellas dactilares.

Entrevista con el Departamento de RRHH Control Biomtrico de Acceso

Autor Posicin del Autor Fecha

Juan Pablo Ponce Vsquez Abril 24, 2006

Versin: 1.0

Tabla de contenidos
Resumen de la Entrevista .............................................................................................. 2 Detalles de la entrevista................................................................................................. 2

Resumen de la Entrevista
Se ha solicitado un mtodo fcil y rpido para la adquisicin de las huellas dactilares. Se ha solicitado que se entreguen paramitrizados por fechas.

Detalles de la entrevista
El entrevistado dio sugerencias tiles para el desarrollo y planeamiento del sistema: El sistema debera reconocer la huella dactilar no nicamente en una posicin, sino que debera poder reconocerla aunque el usuario haya colocado su dedo con distintos ngulos de inclinacin. El sistema debera permitir un nmero limitado de intentos de acceso antes de dar una alarma. El sistema debera emitir varios reportes: 1. Usuarios que en una fecha determinada no han utilizado la aplicacin. 2. Intentos fallidos de uso de la aplicacin.

Entrevista con los Usuarios Control Biomtrico de Acceso

Autor Posicin del Autor Fecha

Juan Pablo Ponce Vsquez Abril 24, 2006

Versin: 1.0

Tabla de contenidos
Resumen de la Entrevista .............................................................................................. 2 Detalles de la entrevista................................................................................................. 2

Resumen de la Entrevista
Se ha solicitado que el proceso de reconocimiento sea rpido y eficiente. Se ha solicitado que el proceso de recoleccin de huellas dactilares sea rpido y eficiente.

Detalles de la entrevista
El entrevistado dio sugerencias tiles para el desarrollo y planeamiento del sistema: El sistema debera realizar el proceso de reconocimiento instantneamente para evitar prdidas de tiempo. El proceso de registro en el departamento de RRHH debera ser lo ms rpido.

ANEXO3.2.:DEFINICINDEACTORES

ACTOR
La persona, oraganizacin, o sistema externo que interacta con el sistema. Administrador

DESCRIPCIN
Describe el rol y las actividades que son realizadas cuando el actor interacta con el sistema. Es quien tiene la responsabilidad del mantenimiento adecuado de la Base de Datos, mantener en buen funcionamiento el lector biomtrico, capacitacin al personal de recursos humanos y realizar el proceso de entrenamiento de la Red Neuronal en su primera etapa. Encargado de realizar la alimentacin de los datos al sistema, capacitacin en el uso del sistema y del lector biomtrico a los empleados de la organizacin, obtener los reportesy posteriormente de atender a casos especiales, como por ejemplo el caso de que un usuario ya registrado no pueda acceder. Debern asistir a la toma de huellas dactilares, usar el sistema cada vez que se desee tener ingreso a un rea controlada.

FUENTE
La persona o ente real que brind la informacin para conocer la interaccin del actor con el sistema. N/D

TTULO DEL NEGOCIO


Lista la entidades del mundo real que corresponden al actor Departamento de sistemas de la organizacin.

Personal de RR.HH.

N/D

Departamento de RR.HH. De la organizacin.

Usuarios

N/D

Empleados de la organizacin.

ANEXO3.3.:DEFINICINDECASOSDEUSO

Control Biomtrico de Acceso


-Fin5 -Fin6 UC7: Entrenar la RNA * uses Administrador extends -Fin2 * uses -Fin1 * -Fin3 * * uses Usuario uses UC9: Lectura / Escritura en BDD -Fin4 UC2: Ingresar cdigo de usuario UC5: Obtener resultado de la RNA uses extends uses UC6: Permitir o denegar acceso uses -Fin10 uses UC11: Leer reportes UC8: Almacenar log -Fin9 * RRHH -Fin7 * UC1: Adquirir la huella dactilar UC12: Aprender huella dactilar uses UC10: Mantener usuarios * -Fin8 * uses UC3: Extraer las minucias uses UC4:Alimentar la RNA

ANEXO3.4.:REQUERIMIENTOS

ORIG ID
1 2 3 4 5 6 7

DESCRIPCIN DEL REQUERIMIENTO


Mantenimiento de usuarios. Captura de la huella dactilar. Extraccin de minucias. Alimentacin de datos a la RNA (para aprendizaje y ejecucin) Verificacin de la existencia de un usuario. Log de transacciones propio del sistema. Generacin de reportes.

PRIORIDAD
1 1 1 1 1 2 3

FUENTE
RRHH RRHH Administrador Administrador RRHH RRHH RRHH

ANEXO3.5.:REGLASDELNEGOCIO

RN ID
1

TTULO DE LA REGLA DE NEGOCIO


Mantenimiento de usuarios.

DESCRIPCIN

AUTORIDAD

UC / RN
UC10, UC9, UC1

PROCESO ACTUAL
1. Creacin: El usuario proporcionar sus datos a RRHH para su almacenamiento en el sistema, adems presionar su dedo en el lector biomtrico para poder registrar su huella dactilar en la BDD asociada con su cdigo de usuario que le ser provisto para el posterior proceso de verificacin. 2. Actualizacin: El usuario proporcionar sus nuevos datos, de haberlos, para altualizar la BDD. 3. Eliminacin: Se eliminar de la BDD a los usuarios que no pertenezcan ms a la organizacin en la que se implemente este sistema.

Proceso que permite la creacin, RRHH actualizacin y eliminacin de usuarios en la base de datos.

Captura de la huella dactilar.

Extraccin de minucias.

Alimentacin de datos a la RNA (para aprendizaje y ejecucin).

Administrador Proceso que permite la captura de la huella dactilar en un formato que habilite a la posterior extraccin de sus caractersticas bsicas (minucias) tanto para su almacenamiento o su procesamiento en la RNA. Administrador Es el proceso en el cual se extraen las caractersticas bsicas de la huella dactilar que va a ser almacenada o procesada por la RNA Es el proceso en el cual se alimentan los Administrador datos esenciales de una huella dactilar a la red neuronal. Este proceso puede ser utilizado en las etapas de entrenamiento, aprendizaje y ejecucin de la RNA. Es el proceso en el que un usuario coloca RRHH su dedo en un lector biomtrico que protege el acceso a algn lugar restringido, y se le permite ingresar o no.

UC1

1. El usuario presionar su dedo sobre el lector biomtrico, el cual automticamente obtendr una imagen que representa a la huella dactilar.

UC3

UC4, UC5, UC7, UC12

1. Se aplicarn, de manera automtica, los filtros a la imagen obtenida a travs del lector biomtrico que permitan obtener las caractersticas esenciales (minucias). 1. Se alimenta un vector de caractersticas (minucias) obtenido previamente a la RNA, y dependiendo del proceso en el que se encuentre, la red lo aprender, lo usar como dato de aprendizaje, o lo procesar con el fin de obtener un resultado. 1. El usuario coloca su dedo en el lector de huellas dactilares (lector biomtrico), y a travs del teclado ingresar su cdigo de usuario.

5 Verificacin de la existencia de un usuario.

UC1, UC2, UC3, UC4, UC5, UC6, UC8, UC9

6 Log de transacciones propio del sistema.

Es el proceso en el que se almacenan los RRHH intentos fallidos o correctos de acceso al sitio protegido por un lector biomtrico.

UC6, UC8, UC9

2. La huella es obtenida, y procesada con el fin de obtener el vector de caractersticas. 3. El vector de caractersticas obtenido es ingresado a la RNA para su procesamiento. 4. En el caso de que la huella dactilar haya sido aprendida por la RNA, el sistema verificar la existencia del cdigo del usuario. 5. Segn los resultados obtenidos se permite o no el acceso al rea restringida. 1. En el caso de que sea un intento fallido se registrar la fecha, la hora y un comentario como intento fallido. 2. En el caso de que sea un intento vlido se registrar la fecha, la hora y el usuario que accedi al sitio protegido. 1. Se mostrarn los reportes de: Accesos vlidos en un rango de fechas, Accesos invlidos en un rango de fechas, y, Todos los intentos en un rango de fechas.

Generacin de reportes.

Es el proceso en el que se seleccionan los RRHH reportes habilitados para ser mostrados.

UC9, UC11

ANEXO3.6.:PANTALLAS

Nombre: Pantalla principal del sistema (muestra las opciones de servidor). Descripcin: Desde esta pantalla se puede seleccionar la opcin que se desea utilizar del sistema. Permisos: Administradores, RRHH. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir Red Neuronal Artificial

Nombre: Pantalla principal del sistema (muestra las opciones de cliente). Descripcin: Desde esta pantalla se puede seleccionar la opcin que se desea utilizar del sistema. Permisos: Administradores, RRHH. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir Administracin de Usuarios Reportes Aplicacin cliente Recursos Humanos ...

Nombre: Red Neuronal Artificia (PANTALLA 1). Descripcin: Permite inicializar y lanzar la pantalla de entrenamiento de la red. Adems permite cambiar las configuraciones bsicas. Permisos: Administradores. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir

Servidor: Red Neuronal Artificial


Inicializar la RNA Entrenar la RNA Secuencia de acontecimientos: Inicializando Inicializado

Constantes Tasa de aprendizaje: Delta permitido: Raz de Random: Redefinir constantes % %

Nombre: Entrenamiento (PANTALLA 2). Descripcin: Permite realizar el entrenamiento de la red. Permisos: Administradores. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir

Servidor: Entrenamiento
Obtener patrn de entrenamiento Entrenar ... Patrn de entrenamiento:

Otro patrn

Terminar

Nombre: Mantenimiento de usuarios (PANTALLA 3). Descripcin: Permite realizar el mantenimiento de la lista de usuarios. Permisos: RRHH, Administradores. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor

Cliente: Recursos Humanos

Cliente

Acerca de ...

Salir

Enter Text Enter Text Enter Text Enter Text Enter Text

Inicializar Extraer Plantilla

Nombre: Reportes (PANTALLA 4). Descripcin: Permite seleccionar un reporte. Permisos: RRHH, Administradores. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir

Cliente: Reportes

Elija el reporte que desea: Escriba texto Ver

Nombre: Cliente (PANTALLA 5). Descripcin: Es la pantalla que se muestra a los usuarios el momento en que colocarn su dedo para intentar ingresar a un sitio protegido por el sistema biomtrico. Permisos: Usuarios, Administradores, RRHH. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir

Cliente Ingrese su cdigo de usuario:


1234

Nombre: Almacenar una huella dactilar (PANTALLA 6). Descripcin: Permite almacenar la huella dactilar luego de realizar la extraccin de las minucias. Permisos: Administradores, RRHH. Tipo: Formulario Windows. Control Biomtrico de Acceso
Servidor Cliente Acerca de ... Salir

Cliente: Almacenar una huella dactilar


Cdigo de usuario: 4321 Adquirir H.D. Extraer minucias Almacenar

ANEXO3.7.:DOCUMENTODERIESGOS

RIEGOS POSIBLES

DESIGNACIN

PLAN DE MITIGACIN

PLAN DE CONTINGENCIA

DISPARADORES

RESPONSABLE

Lista de posibles riesgos identificados de Designar una tormentad de ideas, entrevistas, y/o base preocupacin o un problema con una X. de conocimientos de riesgos. Designar un riesgo con una R. El lector biomtrico seleccionado es de R dificil manipulacin programtica, lo que provoca un retraso en el desarrollo mientras se busca la manera de manipularlo. El modelo de RNA seleccionado no brinda R los resultados de confiabilidad deseados.

Que se debe hacer para reducir los Que se debe hacer para mitigar el efecto. Cuando se debe ejecutar las Quin debe ejecutar el plan de riesgos. acciones. contingencia.

Asesorarse sobre el producto Planeacin Comprar la licencia de Griaule para la seleccionado, realizando manipulacin del Microsoft Fingerprint bsquedas intensivas en Internet y Reader. con el proveedor para conocer si existen SDK's disponibles en el mercado. Realizar una investigacin intensivaDisear una aplicacin que permita tener Planeacin, Desarrollo una arquitectura abierta, es decir, que con sobre arquitecturas de RNAs, utilizando libros y foros temticos. cambios pequeos se puedan cambiar las Averiguar a personas con especificaciones de la RNA seleccionada. experiencia en el tema sobre la mejor arquitectura para el reconocimiento de huellas dactilares

Arquitecto.

Arquitecto, Lider de desarrollo.

ANEXO3.8.:WORKFLOWSPORCASOSDEUSO

Inicio

Inicializar el lector biomtrico.

Si

Lector biomtrico conectado?

No

Lector biomtrico inicializado?

No

Si Inicio de lectura de huellas dactilares.

Mostrar error.

Capturar

SI

Se ha pulsado un dedo sobre el lector biomtrico?

NO

Esperar

La calidad de la imagen es ...

Mala

Buena o Excelente

Mostrar la imagen adquirida

Fin

UC1: ADQUIRIR LA HUELLA DACTILAR

Inicio

Cdigo de Usuario

UC6: Permitir o denegar el acceso

Fin

UC2: INGRESAR CDIGO DE USUARIO

Inicio

Remover el fondo de la imagen.

Clculo de la orientacin local.

Alisamiento adaptivo.

Binarizacin y atenuacin adaptivas.

Seleccin de las minucias potenciales.

Aplicacin de plantillas adaptiva.

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Dividir la imagen en bloques de 16x16

Para cada bloque:

Calcular la u(s) promedio de los valores de escala de grises.

Si

El u(s) promedio es mayor que el umbral?

No

Eliminar el bloque ya que pertenece al fondo.

Mantener el bloque ya que pertenece a la huella dactilar.

Fin del lazo

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Pasar un filtro Gaussiano de 5x5 cuyos u=0, y o=1

Se aplican operadores de Sobel.

Dividir la imagen en bloques de 16x16 con una sobreposicin de 8 pxeles en cada dimensin

Para cada bloque:

Calculo de la orientacin local de cada surco.

Fin del lazo

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Alisamiento uniforme a lo largo de la orientacin de los surcos locales.

Alisamiento gaussiano normal

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Dividir a la imagen en bloques de 16x16 con una sobreposicin de 8 pxeles en cada dimensin.

Para cada bloque:

Realizar una ecualizacin de histograma.

Binarizar el bloque.

Fin del lazo

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Clculo de su respectivo Crossing Number en un pxel.

0 1

CN es igual a: 3

Punto aislado

Punto de finalizacin

Punto de continuacin

Punto de bifurcacin

Punto de cruce

Seleccin de la minucia principal de un rea pequea.

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Rotar la plantilla aprendida por Beta.

Calcular su correlacin.

Compensar el error en la estimacin de la orientacin local.

Fin

UC3: EXTRAER LAS MINUCIAS

Inicio

Vector de carctersticas

Esta inicializada la RNA?

No

Si

Las neuronas tienen su estrategia?

No

Mensaje de error.

Cada valor del vector de caractersticas ingresa a una neurona de la capa de entrada.

Fin

UC4: ALIMENTAR LA RNA

Inicio

Pasar de la Capa de entrada a la capa Intermedia de la RNA.

Procesamiento en la capa intermedia segn la estrategia definida para la RNA.

Pasar los datos procesados a la capa de salida de la RNA.

Fin

UC5: OBTENER RESULTADO DE LA RNA

Inicio

UC9: Lectura / Escritura en BDD

Si

El patrn ingresado ha sido aprendido con anterioridad?

No

Existe el cdigo de usuario?

No

Denegar acceso.

Si

Permitir acceso

UC8: Almacenar log

Fin

UC6: PERMITIR O DENEGAR ACCESO

Inicio

UC1: Adquirir la huella dactilar

UC3: Extraer las minucias

UC4:Alimentar la RNA

Encontrar la salida de las neuronas de la capa intermedia.

Encontrar la tasa de error (delta) de la capa de salida.

Encontrar la tasa de error (delta) de la capa intermedia.

Actualizacin de parmetros de las capas intermedia y de salida.

Fin

UC7: ENTRENAR LA RNA

Inicio

Fecha, hora, usuario.

Permitir

Denegar o Permitir?

Denegar

Fecha, hora, denegacin de acceso.

UC9: Lectura / Escritura en BDD

Fin

UC8: ALMACENAR LOG

Inicio

Consulta

Ejecutar consulta

Select

Accion

Insert, Update, Delete

Ejecutar accin

Stored Procedure

Ejecutar SP

Devolver respuesta

Fin

UC9: LECTURA / ESCRITURA EN BDD

Inicio

Ingreso de datos

Nuevo

Accin

Eliminar

Cdigo del usuario.

Actualizar

UC1: Adquirir la huella dactilar

Cdigo del usuario

Consulta: Borrar usuario.

UC12: Aprender huella dactilar

Modificacin de datos

Consulta: Insertar

Consulta: Actualizar

UC9: Lectura / Escritura en BDD

Fin

UC10 MANTENER USUARIOS

Inicio

Seleccionar un reporte a ver.

Consulta apropiada.

UC9: Lectura / Escritura en BDD

Presentar resultados.

Fin

UC11: LEER REPORTES

Inicio

Vector de entrada

Vector de salida esperado

Hasta que la tasa de error sea aceptable

UC4: Alimentar la huella dactilar

UC5: Obtener resultado de la RNA

Compara con el vector de salida esperado, a travs de la tasa de error (delta).

Fin del bucle

Actualizar los pesos.

Fin

UC12: APRENDER HUELLA DACTILAR

ANEXO3.9.:WORKFLOWSPANTALLAS

Inicio

Cargar controles.

Accin

Inicializar la RNA

Accin

Redefinir constantes

Entrenar la RNA

Proceso de inicializacin de la RNA.

No

Inicializada?

Guardar nuevos valores de constantes.

Si

Abrir pantalla de entrenamiento.

Fin

PANTALLA RED NEURONA ARTIFICIAL

Inicio

Cargar controles.

Accin

Obtener patrn de entrenamiento

Accin

Terminar

Otro patrn

Entrenar

UC1: Adquirir la huella dactilar

Destruir informacin en memoria.

Patrn Adquirido?

Cerrar ventana.

Si No UC7: Entrenar la RNA

Fin

PANTALLA ENTRENAMIENTO

Inicio

Cargar controles

UC9: Lectura / Escritura en BDD

Accin

Nueva fila en el DatagridView

Nuevo

Accin

Seleccionar un registro

Abrir pantalla Almacenar una huella dactilar.

Cargar textboxes en lugar de las celdas corresponcientes

Actualizar

Accin

Ingresar los datos.

Ingresar los datos nuevos.

UC10: Mantener usuarios

Eliminar

Actualizar pantalla.

Fin

PANTALLA CLIENTE

Inicio

Cargar controles.

Seleccin del reporte.

UC11: Leer reportes

Mostrar informacin.

Fin

PANTALLA REPORTES

Inicio

Cargar controles

Ingreso del cdigo.

UC1: Adquirir la huella dactilar

UC3: Extraer las minucias

UC4:Alimentar la RNA

UC5: Obtener resultado de la RNA

UC2: Ingresar cdigo de usuario

UC6: Permitir o denegar acceso

Fin

PANTALLA CLIENTE

Inicio

Cargar controles

Adquirir H.D.

UC1: Adquirir la huella dactilar

Extraer minucias

Huella adquirida?

No

Mensaje de error

Si

UC3: Extraer las minucias

PANTALLA: ALMACENAR UNA HUELLA DACTILAR

NO Almacenar

Minucias adquiridas?

SI

UC12: Aprender huella dactilar

Devolver datos a la pantalla Mantenimiento de Usuarios

Fin

ANEXO3.10.:DIAGRAMADEPAQUETES

subsistema FINGERPRINT.Aplicacion

subsistema FINGERPRINT.Servicios

uses subsistema ANN.Libreria uses uses uses subsistema FINGERPRINT.EntidadesNegocio

subsistema ANN.ModeloDatos

uses subsistema FINGERPRINT.Componentes

stdole

GrFingerXLib

AxGrFingerXLib

ANEXO3.11.:DIAGRAMADECLASESFINGERPRINT.Aplicacion

Aplicacion::Program -Main() 1 -llama

1 Aplicacion::Form1 1 +Form1() -redNeuronalArtificialToolStripMenuItem_Click(entrada sender : object, entrada e : EventArgs) -aplicacinClienteToolStripMenuItem_Click(entrada sender : object, entrada e : EventArgs) -administracinDeUsuariosToolStripMenuItem_Click(entrada sender : object, entrada e : EventArgs) -reportesToolStripMenuItem_Click(entrada sender : object, entrada e : EventArgs) 1 -llama 1 -llama 1 -llama

-llama

1 ApCliente::frmApCliente +frmApCliente()

1 RRHH::frmReportView +frmReportView()

1 Servidor::frmRNA +frmRNA() 1 1 -llama RRHH::frmMntUsuarios +frmMntUsuarios() -llama

1 Servidor::frmRNATraining +frmRNATraining()

RRHH::frmAlmacenarHD +frmAlmacenarHD() 1

ANEXO3.12.:DIAGRAMADECLASESANN.Libreria

Libreria::Neurona INeurona -rnd : Random -_bias : double -_salida : double -_delta : double -_conexiones_hacia_adelante : ColeccionNeuronas -_entradas : ConexionesNeurona -_estrategia : IEstrategiaNeurona +Neurona() +Neurona(entrada estrategia : IEstrategiaNeurona) *

IEstrategiaNeurona 1 -tiene

Libreria::EstrategiaRED

Libreria::DatosEntrenamiento -_entradas : ArrayList -_salidas : ArrayList +DatosEntrenamiento(entrada entrada : ArrayList, entrada salida : ArrayList) +DatosEntrenamiento() +Entradas() : ArrayList +Salidas() : ArrayList *

-tiene -Serializa Libreria::Serializador_Red +Guardar_Red(entrada archivo : string, entrada red : IRedNeuronal) -EncontrarPosicionNeurona(entrada neurona : INeurona, entrada redn : IRedNeuronal) : Point +CargarRed(entrada archivo : string, entrada y salida redn : IRedNeuronal)

Libreria::CapaNeuronas

* *

1 Libreria::RedHelper 1 -tiene Libreria::RedNeuronal -_capas : ColeccionCapaNeuronas -entrena * * *

-tiene

IRedNeuronal

* IFabricaRed

-crea Libreria::FabricaRED

+CrearRed(entrada neuronas_en_capas : ArrayList) : IRedNeuronal

-_red : IRedNeuronal -ColaEntrenamiento : ColeccionDatosEntrenamiento = new ColeccionDatosEntrenamiento() -_en_entrenamiento : bool = false +ColaDatosEntrenamiento() : ColeccionDatosEntrenamiento +RedHelper(entrada red : IRedNeuronal) +RedHelper() +Inicializar(entrada red : IRedNeuronal) +AgregarDatosEntrenamiento(entrada datos : DatosEntrenamiento) +AgregarDatosEntrenamiento(entrada entrada : ArrayList, entrada salida : ArrayList) +AgregarDatosEntrenamiento(entrada entrada : string, entrada salida : string) +AgregarDatosEntrenamiento(entrada entrada : long, entrada salida : long) +AgregarDatosEntrenamiento(entrada entrada : Image, entrada salida : Image) +AgregarDatosEntrenamiento(entrada entrada : Image, entrada salida : ArrayList) +AgregarDatosEntrenamiento(entrada entrada : Image, entrada salida : string) +AgregarDatosEntrenamiento(entrada entrada : Image, entrada salida : long) +Entrenar(entrada iteraciones : long, entrada Interrumpir_En_Error : bool) +BorrarDatosEntrenamiento() +OnProcesoEntrenamiento() : ProcesoEntrenamiento_EventHandler

ANEXO3.13.:DIAGRAMADECLASESANN.ModeloDatos

ModeloDatos::Entrada +__capa : int +__capaespecificada : bool +__neurona : int +__neuronaespecificada : bool +__peso : double +__pesoespecificado : bool +Capa() : int +Neurona() : int +Peso() : double ModeloDatos::Neurona -tiene +__nombre : string +__bias : double +__biasespecificado : bool +__salida : double +__salidaespecificado : bool +__delta : double +__deltaespecificado : bool +__conexiones : Conexiones +Nombre() : string +Bias() : double +Salida() : double +Delta() : double +Conexiones() : Conexiones

* 1 -tiene ModeloDatos::Conexiones +__modoinicconexiones : ModoInicConexiones +__modoinicconexionesespecificado : bool +__modoinicpesos : ModoInicPesos +__modoinicpesosespecificado : bool +__coleccionentradas : ColeccionEntradas +GetEnumerator() : IEnumerator +Add(entrada obj : Entrada) : Entrada +getItem(entrada index : int) : Entrada +getCount() : int +Clear() +Remove(entrada index : int) : Entrada +Remove(entrada obj : object) +ModoInicConexiones() : ModoInicConexiones +ModoInicPesos() : ModoInicPesos +ColeccionEntradas() : ColeccionEntradas

-tiene

ModeloDatos::Capa +__nombre : string +__coleccionneuronas : ColeccionNeuronas +GetEnumerator() : IEnumerator +Add(entrada obj : Neurona) : Neurona +getItem(entrada index : int) : Neurona +getCount() : int +Clear() +Remove(entrada index : int) : Neurona +Remove(entrada obj : object) +Nombre() : string +ColeccionNeuronas() : ColeccionNeuronas *

ModeloDatos::Red +__nombre : string +__coleccioncapas : ColeccionCapas +getEnumerator() : IEnumerator +Add(entrada obj : Capa) : Capa +getItem(entrada index : int) : Capa +getCount() : int +Clear() +Remove(entrada index : int) : Capa +Remove(entrada obj : object) +Nombre() : string +ColeccionCapas() : ColeccionCapas

-tiene

ANEXO3.14.:DIAGRAMADECLASESFINGERPRINT.Componentes

Componentes::clsOperaciones +ERROR_NO_SE_PUEDE_ABRIR_BDD : int = -999 +ERROR_IDENTIFICADOR_INVALIDO : int = -998 +ERROR_PLANTILLA_INVALIDA : int = -997 +Acceso_A_Datos : clsBDD +Raw : ImagenRAW +pbImagen : PictureBox -plantilla : clsPlantilla -lbLog : ListBox -cbAutoExtraer : CheckBox -cbAutoIndentificar : CheckBox -btnRegistrar : Button -btnExtraer : Button -btnIdentificar : Button -btnVerificar : Button -gControl : AxGrFingerXCtrl +GetDC(entrada ptr : IntPtr) : IntPtr +ReleaseDC(entrada hWnd : IntPtr, entrada hDc : IntPtr) : IntPtr +clsOperaciones(entrada lb : ListBox, entrada pb : PictureBox) +clsOperaciones(entrada lb : ListBox, entrada bext : Button, entrada bidn : Button, entrada bver : Button, entrada cbaext : CheckBox, entrada cbaidn : CheckBox, entrada breg : Button) +Escribir_En_Log(entrada msg : string) +DescribirError(entrada codigo : GRConstants) -Plantilla_Valida() : bool +Inicializar(entrada ctrl : AxGrFingerXCtrl) : int +FinalizarUtilidades() +Mostrar_Huella_Digital_En_Pantalla(entrada EsBiometrico : bool, entrada IDContexto : GRConstants) +Registrar() : int +ExtraerPlantilla() : int +Identificar(entrada y salida X : int) : int +Verificar(entrada id : int, entrada y salida X : int) : int 1 -usa 1 -tiene 1 -usa

-tiene

Componentes::clsPlantilla +dataPlantilla : Array +tamanio : int +clsPlantilla()

* Componentes::ConversorImagenes +ConversorImagenes() +Ipicture_A_Imagen(entrada IPicture : IPictureDisp) : Image

* estructura Componentes::ImagenRAW +imagen : object +ancho : int +alto : int +resolucion : int 1 Componentes::clsBDD -cnx : SqlConnection -cmd : SqlCommand -tempPlantilla : clsPlantilla +cnxStrB : SqlConnectionStringBuilder +clsBDD() +AbrirBDD() : bool +CerrarBDD() : bool +BorrarDatos() : bool +AgregarPlantilla(entrada tmpPlant : clsPlantilla, entrada y salida id : int) : bool +ObtenerTodasPlantillas() : SqlDataReader +ObtenerPlantilla(entrada id : int) : clsPlantilla +ObtenerPlantilla(entrada rdr : SqlDataReader) : clsPlantilla +ObtenerID(entrada rdr : SqlDataReader) : int

ANEXO3.15.:DIAGRAMADESECUENCIAS

oRNA

oCapas

oNeurona

oRNAHelper

oDatosEntrenamiento

oOperaciones

oPlantilla

oBDD

Add:=Add(obj) Add:=Add(obj) Add:=Add(obj) ConectarCapas Neurona(estrategia) Add:=Add(obj) ConectarNeuronas RedHelper(red)

DatosEntrenamiento(entrada, salida) Inicializar:=Inicializar(ctrl) clsPlantilla() Plantilla_Valida:=Plantilla_Valida()

ExtraerPlantilla:=ExtraerPlantilla() AbrirBDD:=AbrirBDD() ObtenerPlantilla:=ObtenerPlantilla(id) Escribir_En_Log(msg) Inicializar(red) AgregarDatosEntrenamiento

Entrenar

EjecutarRed(entrada) ObtenerSalida Verificar:=Verificar(id, X) Escribir_En_Log(msg)

Anda mungkin juga menyukai