Full text
id188516 RECONOCIMIENTO DE CARAS MEDIANTE TÉCNICAS DE VISIÓN POR COMPUTADOR PABLO RODRIGUEZ ELVIRA Director/a JOANCLIMENTVILARÓ(DepartamentodeIngenieríadeSistemas,AutomáticaeInformática Industrial) Titulación GradoenIngenieríaInformática(Computación) Memoria del trabajo de fin de grado Facultat d'Informàtica de Barcelona (FIB) Universitat Politècnica de Catalunya (UPC) - BarcelonaTech 01/07/2024
´ Index 1 Introducci´on y contexto 5 1.1 Contexto .................................... 5 1.2 Conceptos ................................... 6 1.2.1 Sistema de reconocimiento facial . . . . . . . . . . . . . . . . . . . . 6 1.2.2 An´alisis de componentes principales - Eigenfaces ........... 7 1.2.3 An´alisis discriminante lineal - Fisherfaces .............. 8 1.2.4 Algoritmo K-vecinos m´as cercanos . . . . . . . . . . . . . . . . . . . 8 1.2.5 Autoencoders .............................. 9 1.3 Identificaci´on del problema ........................ 9 1.3.1 Encontrar conjuntos de im´agenes tratable . . . . . . . . . . . . . . 10 1.3.2 Implementaci´on cada soluci´on . . . . . . . . . . . . . . . . . . . . . 10 1.3.3 Comparaci´on de resultados . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Agentes implicados ............................. 10 2 An´alisis detallado de las t´ecnicas de reconocimiento facial 11 2.1 PCA ....................................... 11 2.1.1 Definici´on y principios b´asicos . . . . . . . . . . . . . . . . . . . . . 11 2.1.2 Fundamentos matem´aticos . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.3 Maximizaci´on de la varianza de los componentes principales . . . . 12 2.1.4 Aplicaci´on en el reconocimiento facial . . . . . . . . . . . . . . . . . 12 2.1.5 Ventajas y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 LDA ....................................... 14 2.2.1 Definici´on y principios b´asicos . . . . . . . . . . . . . . . . . . . . . 14 2.2.2 Fundamentos matem´aticos . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.3 Maximizaci´on de la separabilidad entre clases . . . . . . . . . . . . 16 2.2.4 Aplicaci´on en el reconocimiento facial . . . . . . . . . . . . . . . . . 16 2.2.5 Ventajas y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.6 Comparaci´on con PCA . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3 Autoencoders ................................. 17 2.3.1 Definici´on y principios b´asicos . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 Fundamentos matem´aticos . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.3 Compresi´on y representaci´on en el espacio latente . . . . . . . . . . 19 2.3.4 Aplicaci´on en el reconocimiento facial . . . . . . . . . . . . . . . . . 19 2.3.5 Ventajas y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.6 Comparaci´on con PCA y LDA . . . . . . . . . . . . . . . . . . . . . 20 2.4 Algoritmo de clasificaci´on: k-Nearest Neighbors ........... 20 2.4.1 Descripci´on general del algoritmo . . . . . . . . . . . . . . . . . . . 20 2.4.2 Representaci´on de im´agenes . . . . . . . . . . . . . . . . . . . . . . 21 2.4.3 Proceso de clasificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4.4 Ventajas y desventajas . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Implementaci´on del proyecto 23 3.1 Configuraci´on de hardware y software .................. 23 3.2 Descripci´on de librer´ıas comunes ..................... 23 3.3 Archivo PCA model.py ........................... 24 3.3.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Librer´ıas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3.3 Atributos de la clase Modelo ...................... 24 3.3.4 M´etodos de la clase Modelo ...................... 25 3.4 Archivo LDA model.py ........................... 26 3.4.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.2 Librer´ıas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4.3 Atributos de la clase Modelo ...................... 27 3.4.4 M´etodos de la clase Modelo ...................... 27 3.5 Archivo Autoencoder model.py ...................... 28 3.5.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.5.2 Arquitectura del autoencoder construido . . . . . . . . . . . . . . . 29 3.5.3 Librer´ıas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.5.4 Atributos de la clase AutoencoderModel ................ 32 3.5.5 M´etodos de la clase AutoencoderModel ................ 32 3.6 Archivo dataset loader.py ......................... 33 3.6.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.6.2 Documentaci´on de funciones . . . . . . . . . . . . . . . . . . . . . . 33 3.7 Archivo train model.py ........................... 35 3.7.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.7.2 Documentaci´on de funciones . . . . . . . . . . . . . . . . . . . . . . 35 3.8 Archivo obtain results models.py .................... 38 3.8.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.8.2 Documentaci´on de funciones . . . . . . . . . . . . . . . . . . . . . . 38 3.9 Archivo analyse datasets.py ........................ 40 3.9.1 Descripci´on general . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.9.2 Documentaci´on de funciones . . . . . . . . . . . . . . . . . . . . . . 40 4 Resultados 41 4.1 Conjuntos de datos utilizados ....................... 41 4.1.1 ORL - Olivetti Research Laboratory Face Dataset . . . . . . . . . . 41 4.1.2 YALE - Yale Face Database . . . . . . . . . . . . . . . . . . . . . . 43 4.1.3 LFW - Labeled Faces in the Wild . . . . . . . . . . . . . . . . . . . 44 4.2 Descripci´on detallada de los experimentos ............... 47 4.2.1 Modelos con todos los hiperpar´ametros optimizados . . . . . . . . . 47 4.2.2 Modelos con n´umero de caracter´ısticas fijo . . . . . . . . . . . . . . 48 4.3 M´etricas de rendimiento .......................... 48 4.4 Resultados con dataset ORL ....................... 50 4.4.1 Mejoresmodelos ............................ 50 4.4.2 Modelos con n´umero de caracter´ısticas fijo . . . . . . . . . . . . . . 55 4.5 Resultados con dataset YALE ....................... 61 4.5.1 Mejoresmodelos ............................ 61 4.5.2 Modelos con n´umero de caracter´ısticas fijo . . . . . . . . . . . . . . 67 4.6 Resultados con dataset LFW ....................... 73 4.6.1 Mejoresmodelos ............................ 73 4.6.2 Modelos con n´umero de caracter´ısticas fijo . . . . . . . . . . . . . . 79 4.7 Resultados con dataset LFW extendido ................ 85 4.7.1 Mejoresmodelos ............................ 85 4.7.2 Modelos con n´umero de caracter´ısticas fijo . . . . . . . . . . . . . . 89
5 Desviaciones en la planificaci´on del proyecto 94 6 Informe de sostenibilidad 94 6.1 Dimensi´on econ´omica ............................ 95 6.2 An´alisis econ´omico del proyecto ..................... 95 6.2.1 Costesdepersonal ........................... 95 6.2.2 Costesgen´ericos............................. 96 6.2.3 Contingencia .............................. 97 6.2.4 Imprevistos ............................... 97 6.2.5 Costetotal ............................... 98 6.3 Dimensi´on social ...............................100 6.3.1 Impacto de la visi´on por computador en la sociedad . . . . . . . . . 100 6.3.2 Just´ıcia algor´ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 6.3.3 ´ Etica en la visi´on por computador . . . . . . . . . . . . . . . . . . . 100 6.4 Dimensi´on ambiental ............................102 7 Conclusiones 102 8 Bibliograf´ıa 104 ´ Indice de tablas 1 Comparaci´on de modelos Autoencoder CPU vs GPU . . . . . . . . . . . . 28 2 Contenido de una matriz de confusi´on . . . . . . . . . . . . . . . . . . . . . 49 3 M´etricas y par´ametros del mejor modelo PCA para el dataset ORL . . . . 51 4 M´etricas y par´ametros del mejor modelo LDA para el dataset ORL . . . . 53 5 M´etricas y par´ametros del mejor modelo Autoencoder para el dataset ORL 55 6 M´etricas y par´ametros del modelo PCA fijo para el dataset ORL . . . . . . 56 7 M´etricas y par´ametros del modelo LDA fijo para el dataset ORL . . . . . . 58 8 M´etricas y par´ametros del modelo Autoencoder fijo para el dataset ORL . 60 9 M´etricas y par´ametros del mejor modelo PCA para el dataset YALE . . . . 62 10 M´etricas y par´ametros del mejor modelo LDA para el dataset YALE . . . . 64 11 M´etricas y par´ametros del mejor modelo Autoencoder para el dataset YALE 66 12 M´etricas y par´ametros del modelo PCA fijo para el dataset YALE . . . . . 68 13 M´etricas y par´ametros del modelo LDA fijo para el dataset YALE . . . . . 70 14 M´etricas y par´ametros del modelo Autoencoder fijo para el dataset YALE . 72 15 M´etricas y par´ametros del mejor modelo PCA para el dataset LFW . . . . 74 16 M´etricas y par´ametros del mejor modelo LDA para el dataset LFW . . . . 76 17 M´etricas y par´ametros del mejor modelo Autoencoder para el dataset LFW 78 18 M´etricas y par´ametros del modelo PCA fijo para el dataset LFW . . . . . 80 19 M´etricas y par´ametros del modelo LDA fijo para el dataset LFW . . . . . 82 20 M´etricas y par´ametros del modelo Autoencoder fijo para el dataset LFW . 84 21 M´etricas y par´ametros del mejor modelo PCA para el dataset LFW extendido 85 22 M´etricas y par´ametros del mejor modelo LDA para el dataset LFW extendido 87 23 M´etricas y par´ametros del mejor modelo Autoencoder para el dataset LFW extendido .................................... 88 24 M´etricas y par´ametros del modelo PCA fijo para el dataset LFW extendido 89 25 M´etricas y par´ametros del modelo LDA fijo para el dataset LFW extendido 91
26 M´etricas y par´ametros del modelo Autoencoder fijo para el dataset LFW extendido .................................... 92 27 Desviaci´on temporal de las actividades . . . . . . . . . . . . . . . . . . . . 94 28 Costesdepersonal ............................... 95 29 Costedelasactividades ............................ 96 30 Coste del consumo de los ordenadores . . . . . . . . . . . . . . . . . . . . . 97 31 Coste de los recursos hardware ......................... 97 32 Contingencias.................................. 97 33 Imprevistos ................................... 98 34 Presupuestofinal ................................ 98 ´ Indice de figuras 1 Sistemas de reconocimiento facial . . . . . . . . . . . . . . . . . . . . . . . 7 2 Ejemplos de Eigenfaces ............................. 12 3 Funcionamiento del algoritmo k-NN . . . . . . . . . . . . . . . . . . . . . . 13 4 Esquema del modelo autoencoder ....................... 18 5 Proceso de clasificaci´on de k-NN . . . . . . . . . . . . . . . . . . . . . . . . 21 6 Gr´afica de la funci´on ReLU . . . . . . . . . . . . . . . . . . . . . . . . . . 29 7 Gr´afica de la funci´on sigmoid . . . . . . . . . . . . . . . . . . . . . . . . . 30 8 Esquema de validaci´on cruzada K-Fold .................... 36 9 Histograma de clases del dataset ORL .................... 42 10 Histograma de intensidades del dataset ORL................. 42 11 Ejemplos de im´agenes del dataset ORL.................... 43 12 Histograma de clases del dataset YALE.................... 43 13 Histograma de intensidades del dataset YALE ................ 44 14 Ejemplos de im´agenes del dataset YALE ................... 44 15 Histograma de clases del dataset LFW .................... 45 16 Histograma de intensidades del dataset LFW................. 45 17 Ejemplos de im´agenes del dataset LFW.................... 46 18 Matriz de confusi´on del mejor modelo PCA para el dataset ORL . . . . . . 50 19 Espacio de caras del mejor modelo PCA para el dataset ORL . . . . . . . . 51 20 Im´agenes mal clasificadas por el mejor modelo PCA para el dataset ORL . 52 21 Matriz de confusi´on del mejor modelo LDA para el dataset ORL . . . . . . 52 22 Espacio de caras del mejor modelo LDA para el dataset ORL . . . . . . . . 53 23 Im´agenes mal clasificadas por el mejor modelo LDA para el dataset ORL . 54 24 Matriz de confusi´on del mejor modelo Autoencoder para el dataset ORL . 54 25 Im´agenes mal clasificadas por el mejor modelo Autoencoder para el dataset ORL....................................... 55 26 Matriz de confusi´on del modelo PCA fijo para el dataset ORL . . . . . . . 56 27 Espacio de caras del modelo PCA fijo para el dataset ORL . . . . . . . . . 57 28 Im´agenes mal clasificadas por el modelo PCA fijo para el dataset ORL . . 57 29 Matriz de confusi´on del modelo LDA fijo para el dataset ORL . . . . . . . 58 30 Espacio de caras del modelo LDA fijo para el dataset ORL . . . . . . . . . 59 31 Im´agenes mal clasificadas por el modelo LDA fijo para el dataset ORL . . 59 32 Matriz de confusi´on del modelo Autoencoder fijo para el dataset ORL . . . 60 33 Im´agenes mal clasificadas por el modelo Autoencoder fijo para el dataset ORL....................................... 61
34 Matriz de confusi´on del mejor modelo PCA para el dataset YALE . . . . . 62 35 Espacio de caras del mejor modelo PCA para el dataset YALE . . . . . . . 63 36 Im´agenes mal clasificadas por el mejor modelo PCA para el dataset YALE 63 37 Matriz de confusi´on del mejor modelo LDA para el dataset YALE . . . . . 64 38 Espacio de caras del mejor modelo LDA para el dataset YALE . . . . . . . 65 39 Im´agenes mal clasificadas por el mejor modelo LDA para el dataset YALE 65 40 Matriz de confusi´on del mejor modelo Autoencoder para el dataset YALE . 66 41 Im´agenes mal clasificadas por el mejor modelo Autoencoder para el dataset YALE ...................................... 67 42 Matriz de confusi´on del modelo PCA fijo para el dataset YALE . . . . . . 68 43 Espacio de caras del modelo PCA fijo para el dataset YALE . . . . . . . . 69 44 Im´agenes mal clasificadas por el modelo PCA fijo para el dataset YALE . . 69 45 Matriz de confusi´on del modelo LDA fijo para el dataset YALE . . . . . . 70 46 Espacio de caras del modelo LDA fijo para el dataset YALE . . . . . . . . 71 47 Im´agenes mal clasificadas por el modelo LDA fijo para el dataset YALE . . 71 48 Matriz de confusi´on del modelo Autoencoder fijo para el dataset YALE . . 72 49 Im´agenes mal clasificadas por el modelo Autoencoder fijo para el dataset YALE ...................................... 73 50 Matriz de confusi´on del mejor modelo PCA para el dataset LFW . . . . . . 74 51 Espacio de caras del mejor modelo PCA para el dataset LFW . . . . . . . 75 52 Im´agenes mal clasificadas por el mejor modelo PCA para el dataset LFW . 75 53 Matriz de confusi´on del mejor modelo LDA para el dataset LFW . . . . . . 76 54 Espacio de caras del mejor modelo LDA para el dataset LFW . . . . . . . 77 55 Im´agenes mal clasificadas por el mejor modelo LDA para el dataset LFW . 77 56 Matriz de confusi´on del mejor modelo Autoencoder para el dataset LFW . 78 57 Im´agenes mal clasificadas por el mejor modelo Autoencoder para el dataset LFW....................................... 79 58 Matriz de confusi´on del modelo PCA fijo para el dataset LFW . . . . . . . 80 59 Espacio de caras del modelo PCA fijo para el dataset LFW . . . . . . . . . 81 60 Im´agenes mal clasificadas por el modelo PCA fijo para el dataset LFW . . 81 61 Matriz de confusi´on del modelo LDA fijo para el dataset LFW . . . . . . . 82 62 Espacio de caras del modelo LDA fijo para el dataset LFW . . . . . . . . . 83 63 Im´agenes mal clasificadas por el modelo LDA fijo para el dataset LFW . . 83 64 Matriz de confusi´on del modelo Autoencoder fijo para el dataset LFW . . . 84 65 Im´agenes mal clasificadas por el modelo Autoencoder fijo para el dataset LFW....................................... 85 66 Espacio de caras del mejor modelo PCA para el dataset LFW extendido . 86 67 Im´agenes mal clasificadas por el mejor modelo PCA para el dataset LFW extendido .................................... 86 68 Espacio de caras del mejor modelo LDA para el dataset LFW extendido . . 87 69 Im´agenes mal clasificadas por el mejor modelo LDA para el dataset LFW extendido .................................... 88 70 Im´agenes mal clasificadas por el mejor modelo Autoencoder para el dataset LFWextendido................................. 89 71 Espacio de caras del modelo PCA fijo para el dataset LFW extendido . . . 90 72 Im´agenes mal clasificadas por el modelo PCA fijo para el dataset LFW extendido .................................... 90 73 Espacio de caras del modelo LDA fijo para el dataset LFW extendido . . . 91
74 Im´agenes mal clasificadas por el modelo LDA fijo para el dataset LFW extendido .................................... 92 75 Im´agenes mal clasificadas por el modelo Autoencoder fijo para el dataset LFWextendido................................. 93
Resumen Este proyecto se centra en la comparaci´on de diversas t´ecnicas de reconocimiento facial con el enfoque de determinar cu´al de ellas obtiene mejores resultados en cada conjunto de im´agenes. Se ha elaborado un modelo para cada t´ecnica con todas sus caracter´ısticas y se han entrenado utilizando diversos conjuntos de im´agenes. El prop´osito principal de este trabajo ha sido analizar a fondo las t´ecnicas de an´alisis de componentes principales (PCA), an´alisis discriminante lineal (LDA) y Autoencoders para poder llevar a cabo diversas comparaciones entre ellas. Las t´ecnicas de PCA y LDA han sido unas de las m´as utilizadas en el pasado en el campo del reconocimiento facial y se ha considerado interesante la comparaci´on con t´ecnicas recientes como los Autoencoders. Se han hecho comparaciones de t´ecnicas similares en otros trabajos, pero en este se ha decidido analizar de manera exhaustiva cada t´ecnica con diversas m´etricas de rendimiento para entender el porqu´e de sus diferencias. Adem´as, el proyecto ha incluido la programaci´on de cada una de las t´ecnicas, permitiendo as´ı saber en todo momento c´omo se comporta el modelo y pudiendo hacer cambios si es necesario. Tambi´en ayuda a mantener la reproducibilidad, ya que al proporcionar c´odigo flexible aumenta la transparencia y facilita la verificaci´on de los resultados. Palabras clave: visi´on por computador, aprendizaje autom´atico, modelos de reconocimiento facial, comparaci´on de modelos. Abstract This project focuses on the comparison of different face recognition techniques with the aim of determining which technique performs best on each set of images. A full-featured model has been developed for each technique and trained using a variety of image sets. The main purpose of this work has been to thoroughly analyse the principal component analysis (PCA), linear discriminant analysis (LDA) and Autoencoders techniques in order to carry out various comparisons between them. PCA and LDA techniques have been among the most widely used in the past in the field of face recognition and it was considered interesting to compare them with recent techniques such as Autoencoders. Comparisons of similar techniques have been made in other works, but in this one it has been decided to analyse each technique exhaustively with different performance metrics in order to understand the reasons for their differences. In addition, the project has included programming for each of the techniques, allowing us to know how the model is performing at all times and to make changes if necessary. It also helps to maintain reproducibility, as providing flexible code increases transparency and facilitates verification of results. Keywords: computer vision, machine learning, face recognition models, model comparison. Resum Aquest projecte se centra en la comparaci´o de diverses t`ecniques de reconeixement facial amb l’enfocament de determinar quin obt´e millors resultats en cada 3
conjunt d’imatges. S’ha elaborat un model per a cada t`ecnica amb totes les caracter´ıstiques i s’han entrenat utilitzant diversos conjunts d’imatges. El prop`osit principal d’aquest treball ha estat analitzar a fons les t`ecniques d’an`alisi de components principals (PCA), an`alisi discriminant lineal (LDA) i Autoencoders per poder fer diverses comparacions entre elles. Les t`ecniques de PCA i LDA han estat unes de les m´es utilitzades en el passat al camp del reconeixement facial i s’ha considerat interessant la comparaci´o amb t`ecniques recents com els Autoencoders. S’han fet comparacions de t`ecniques similars en altres treballs, per`o s’ha decidit analitzar de manera exhaustiva cada t`ecnica amb diverses m`etriques de rendiment per entendre el perqu`e de les seves difer`encies. A m´es, el projecte ha incl`os la programaci´o de cadascuna de les t`ecniques, permetent aix´ı saber en tot moment com es comporta el model i podent fer canvis si cal. Tamb´e ajuda a mantenir la reproductibilitat, ja que en proporcionar codi flexible augmenta la transpar`encia i facilita la verificaci´o dels resultats. Paraules clau: visi´o per computador, aprenentatge autom`atic, models de reconeixement facial, comparaci´o de models. 4
2 An´alisis detallado de las t´ecnicas de reconocimiento facial El reconocimiento de caras es una tarea fundamental en el campo de la visi´on por computador y el aprendizaje autom´atico, con aplicaciones que van desde la seguridad hasta la interacci´on humana con m´aquinas. Existen diversas t´ecnicas para abordar esta tarea, cada una con sus propias ventajas y limitaciones. En este trabajo de fin de grado se comparar´an tres m´etodos destacados, dos de ellos siendo t´ecnicas cl´asicas y otro m´as actual: An´alisis de Componentes Principales (PCA), An´alisis Discriminante Lineal (LDA) y Autoencoders. En este apartado se analizar´an estas t´ecnicas desde un punto de vista te´orico y se explicar´an las ventajas e inconvenientes de cada una de ellas en el reconocimiento facial. Tambi´en se explicar´a el algoritmo de clasificaci´on usado para realizar las pruebas de clasificaci´on mediante las caracter´ısticas extra´ıdas de cada una de las t´ecnicas, en mi caso he decidido usar el k-Nearest Neighbors (k-vecinos m´as cercanos). Antes de empezar, cabe aclarar que los conjuntos de im´agenes que se han utilizado son de dominio p´ublico y est´an disponibles bajo una licencia que permite su uso para fines de investigaci´on y no comerciales. No se menciona expl´ıcitamente una licencia Creative Commons, pero el uso est´a restringido a investigaci´on acad´emica. 2.1 PCA 2.1.1 Definici´on y principios b´asicos El An´alisis de Componentes Principales (PCA, por sus siglas en ingl´es) es una t´ecnica de reducci´on de dimensionalidad utilizada en el procesamiento de datos y en el aprendizaje autom´atico. Este m´etodo fue presentado por primera vez en 1991 por Matthew Turk y Alex Pentland en su trabajo seminal titulado Eigenfaces for Recognition. Este m´etodo utiliza PCA para reducir la dimensionalidad de las im´agenes faciales y resaltar las caracter´ısticas m´as importantes para la identificaci´on, formando lo que se conoce como eigenfaces o caras propias [9]. Su objetivo principal es reducir la cantidad de variables en un conjunto de datos preservando la mayor cantidad posible de variabilidad presente en dichos datos. Esta t´ecnica es especialmente ´util cuando se trabaja con datos de alta dimensionalidad, como en el caso de im´agenes faciales, donde cada p´ıxel puede considerarse una dimensi´on [10]. Esta t´ecnica transforma un conjunto de datos con m´ultiples variables correlacionadas en un nuevo conjunto de variables no correlacionadas llamadas componentes principales, que son combinaciones lineales de las variables originales y se ordenan de mayor a menor captura de variabilidad de datos, es decir, la primera componente captura la mayor variabilidad de datos. 2.1.2 Fundamentos matem´aticos El An´alisis de Componentes Principales se puede interpretar como una aplicaci´on espec´ıfica de la descomposici´on de valores singulares de una matriz (SVD, por sus siglas en ingl´es), t´ecnica que se utiliza para descomponerla en sus partes constituyentes y es aplicable a cualquier matriz rectangular [15]. Dada una matriz Xde dimensiones n×d, donde nes el n´umero de muestras y del n´umero de caracter´ısticas (dimensiones), el objetivo es encontrar una transformaci´on lineal que cumpla estas caracter´ısticas: X=UΣVT(1) 11
donde: •Ues una matriz ortogonal que contiene los vectores singulares de X. •Σ es una matriz diagonal que contiene los valores singulares de X. •VTes la transpuesta de V, otra matriz ortogonal que contiene los componentes principales. 2.1.3 Maximizaci´on de la varianza de los componentes principales Los componentes principales son vectores ortogonales que maximizan la varianza de los datos proyectados en ellos. La idea es que al proyectar los datos en estos componentes principales, se retiene la mayor parte de la informaci´on (varianza) en el menor n´umero de dimensiones posible. La varianza es una medida estad´ıstica que indica cu´anto se dispersan los valores de un conjunto de datos respecto a su media. En el contexto de im´agenes, cada imagen puede ser vista como un punto en un espacio de alta dimensionalidad, donde cada dimensi´on corresponde a un p´ıxel [16]. Es clave maximizar la varianza porque ayuda a capturar la mayor cantidad de la informaci´on debido a que, en base a la suposici´on que hace PCA, las direcciones de mayor varianza contienen la mayor´ıa de caracter´ısticas distintivas de las im´agenes. Por ejemplo, en im´agenes faciales, las variaciones m´as grandes podr´ıan estar relacionadas con diferencias en la forma de la cara, la expresi´on facial, la iluminaci´on, etc. Adem´as, al seleccionar solo los componentes con un valor propio asociado m´as grande, es decir, los que capturan mayor varianza, podemos reducir dr´asticamente el n´umero de dimensiones del conjunto de datos mientras retenemos la mayor parte de la informaci´on original. Cada componente principal tambi´en se puede llamar eigenface en el contexto de reconocimiento facial mediante PCA. Una eigenface no es m´as que un vector propio (eigenvector). Cada eigenface es una “cara base” que se obtiene de los datos de entrenamiento, y cualquier cara en el conjunto de datos puede representarse como una combinaci´on lineal de estas eigenfaces. Figura 2: Im´agenes de las 2 eigenfaces m´as representativas de un conjunto de datos. Generaci´on propia. 2.1.4 Aplicaci´on en el reconocimiento facial Para aplicar este m´etodo de PCA en el reconocimiento facial se tiene que construir una matriz Ade dimensiones L×M, donde L=w×hes la imagen en escala de grises vectorizada (wyhson las dimensiones de las im´agenes) y Mson las diferentes im´agenes. 12
Despu´es de aplicar varios procesos a esta matriz, se obtienen las eigenfaces ordenadas por valor propio asociado m´as grande. Cada imagen del conjunto de datos se proyecta en el espacio de dichas eigenfaces. Esto implica expresar cada imagen como una combinaci´on lineal de las eigenfaces seleccionadas. El resultado es una representaci´on de menor dimensi´on de las im´agenes originales, que retiene las caracter´ısticas m´as importantes para la discriminaci´on facial. Con las im´agenes proyectadas en el espacio de eigenfaces, se entrena un clasificador (por ejemplo, un algoritmo de k-Nearest Neighbors, SVM, etc.). Este clasificador se utilizar´a para reconocer nuevas im´agenes faciales. Figura 3: Funcionamiento del algoritmo k-NN [17]. 2.1.5 Ventajas y limitaciones Una de las principales ventajas de PCA en el reconocimiento facial es su alta reducci´on de dimensionalidad de los datos de entrada. Por ejemplo, una imagen de 100×100 p´ıxeles tiene 10.000 caracter´ısticas, pero PCA puede reducir este n´umero a unas pocas decenas o cientos de componentes principales. Esto disminuye los requerimientos computacionales para el procesamiento y an´alisis. Tambi´en ayuda a la eliminaci´on del ruido en las im´agenes, ya que centrarse en las componentes principales que capturan la mayor varianza de los datos ayuda a eliminar las variaciones irrelevantes, adem´as de que las eigenfaces m´as significativas capturan las caracter´ısticas m´as importantes y distintivas de las caras. Otro punto fuerte es la eficiencia computacional, ya que la reducci´on de dimensionalidad permite que los algoritmos de clasificaci´on y reconocimiento trabajen m´as r´apido. Adem´as con menos dimensiones, los modelos de aprendizaje supervisado requieren menos tiempo y recursos para entrenarse. PCA tiene la ventaja que es un m´etodo estad´ıstico bien conocido y comprendido, adem´as de que las eigenfaces pueden visualizarse como im´agenes, lo que proporciona una interpretaci´on intuitiva de las caracter´ısticas capturadas por los componentes principales. Las mayores limitaciones de PCA son la sensibilidad a variaciones en iluminaci´on, pose y expresi´on, ya que PCA no sabe distinguir entre este tipo de variaciones y las debidas a las diferencias en las caracter´ısticas de los rostros. PCA asume que las relaciones entre las variables originales son lineales. Esto puede no ser as´ı, es decir, puede haber relaciones no lineales complejas que PCA no puede capturar adecuadamente, adem´as de que PCA no busca maximizar la separabilidad entre diferentes clases (personas) en el espacio reducido. Otra desventaja es que el c´alculo inicial de la matriz de covarianza y sus eigenvectores puede ser computacionalmente costoso, especialmente con conjuntos de datos grandes [18]. 13
En la pr´actica, PCA se usa a menudo junto con otras t´ecnicas para mitigar estas limitaciones y mejorar el rendimiento global del sistema de reconocimiento facial. 2.2 LDA 2.2.1 Definici´on y principios b´asicos El An´alisis Discriminante Lineal (LDA, por sus siglas en ingl´es) es una t´ecnica estad´ıstica utilizada para encontrar una combinaci´on lineal de caracter´ısticas que separa o caracteriza dos o m´as clases de objetos o eventos. En el contexto del reconocimiento facial, LDA se utiliza para reducir la dimensionalidad de los datos y encontrar las caracter´ısticas que mejor discriminan entre diferentes individuos (clases). En 1991, Cheng et al. introdujo por primera vez el m´etodo de an´alisis discriminante lineal (LDA) para el reconocimiento de caras. Este m´etodo trata de encontrar un subespacio lineal que maximice la separaci´on de dos clases de patrones seg´un el criterio de Fisher. [19]. Los principios b´asicos de LDA son los siguientes: •Separabilidad de clases: LDA se basa en la idea de maximizar la separabilidad entre diferentes clases. Esto se logra proyectando los datos en un espacio de menor dimensi´on donde las clases est´en lo m´as separadas posible. •Matriz de dispersi´on: LDA usa dos matrices de dispersi´on: – Matriz de dispersi´on dentro de las clases (Sw,S within): Representa la variabilidad de cada clase en s´ı misma. – Matriz de dispersi´on entre clases (Sb,S between): Representa la variabilidad entre las diferentes clases. •Proyecci´on lineal: LDA encuentra una matriz de proyecci´on, llam´emosla W, que maximiza la raz´on de la dispersi´on entre clases (Sb) respecto a la dispersi´on dentro de las clases (Sw). Queremos que Whaga que las clases est´en lo m´as separadas posible y, al mismo tiempo, que los datos dentro de cada clase est´en lo m´as agrupados posible. Esto se logra resolviendo el siguiente problema de optimizaci´on: W= arg m´ax W|WTSbW| |WTSwW|(2) •Reducci´on de dimensionalidad: Al proyectar los datos originales en el espacio transformado utilizando W, LDA reduce la dimensionalidad del problema. Esto hace que sea m´as f´acil procesar y clasificar los datos porque estamos trabajando en un espacio de menor dimensi´on donde las clases est´an bien separadas. 2.2.2 Fundamentos matem´aticos LDA utiliza matrices de dispersi´on para medir c´omo los datos se distribuyen en el espacio. En el contexto de reconocimiento facial, estas matrices ayudan a encontrar las direcciones en las que las clases (im´agenes de diferentes personas) est´an m´as separadas [20]. 14
•Matriz de dispersi´on dentro de las clases (Sw): Mide la variabilidad de las muestras dentro de cada clase. Se calcula como: Sw= c X i=1 X x∈Xi (x−µi)(x−µi)T(3) Donde: –ces el n´umero de clases. –Xies el conjunto de muestras de la clase i. –xes una muestra de la clase i. –µies la media de la clase i. •Matriz de dispersi´on entre clases (Sb): Mide la variabilidad entre las diferentes clases. Se define como: Sb= c X i=1 Ni(µi−µ)(µi−µ)T(4) Donde: –Nies el n´umero de muestras en la clase i. –µies la media de la clase i. –µes la media global de todas las muestras. El objetivo de LDA es maximizar la raz´on de la dispersi´on entre las clases respecto a la dispersi´on de dentro de las clases. Esto se expresa mediante el criterio de Fisher [20]: J(W) = WTSbW |WTSwW|(5) Donde: •Wes la matriz de proyecci´on que buscamos. •|·|denota el determinante de una matriz. Para encontrar la matriz de proyecci´on Wque maximiza J(W), hay que resolver el siguiente problema de optimizaci´on usando multiplicadores de Lagrange. L(W, λ) = WTSbW−λWTSwW−I(6) Tomamos la derivada con respecto a Wy establecemos que sea cero: ∂L ∂W = 0 (7) Lo que nos lleva a: SbW=SwWΛ (8) Donde Λ es una matriz diagonal de multiplicadores de Lagrange (eigenvalores). Esto es un problema est´andar de b´usqueda de eigenvalores λy sus correspondientes eigenvectores. 15
Se seleccionan los eigenvectores correspondientes a los mayores eigenvalores para formar la matriz de proyecci´on W. Estos vectores maximizan la separabilidad entre las clases en el espacio proyectado. Una vez se ha encontrado W, las muestras originales xse proyectan en el nuevo espacio utilizando: y=WTx(9) Donde yes la nueva representaci´on de xen el espacio reducido. En este nuevo espacio, las clases (im´agenes de diferentes personas) estar´an m´as separadas. 2.2.3 Maximizaci´on de la separabilidad entre clases El principal enfoque de LDA es proyectar los datos en un espacio donde las diferencias entre las clases se amplifiquen y las similitudes dentro de las clases se reduzcan. Esto es especialmente ´util en el reconocimiento facial, donde las caracter´ısticas distintivas de cada individuo deben ser destacadas mientras se minimizan las variaciones dentro de la misma clase (mismo individuo). 2.2.4 Aplicaci´on en el reconocimiento facial De manera an´aloga a PCA, una vez obtenido el espacio de los eigenvectores seleccionados, se proyectan todas las im´agenes del conjunto de datos en este nuevo espacio. Cada nueva imagen se calcula como y=WTx. Luego, se entrena un clasificador (como k-Nearest Neighbors, SVM, etc.) con las im´agenes proyectadas. Una vez entrenado dicho clasificador, ya lo podemos utilizar para reconocer nuevas im´agenes faciales, o reconocer el conjunto de test de nuestro conjunto de datos. Tambi´en es com´un combinar PCA con LDA, de tal manera que primero se reduce el n´umero de dimensiones del espacio con PCA y despu´es se aplica LDA. Aun as´ı, esto puede causar p´erdidas de informaci´on discriminante para LDA [19]. 2.2.5 Ventajas y limitaciones Las principales ventajas de LDA es que se enfoca en maximizar la separabalidad entre diferentes clases. Esto es especialmente ´util en aplicaciones de reconocimiento facial ya que es crucial distinguir entre diferentes individuos. Al reducir la dimensionalidad del espacio de caracter´ısticas, LDA facilita el procesamiento de los datos y reduce el ruido, lo que puede mejorar la precisi´on del reconocimiento facial. Al proyectar los datos en un espacio donde las clases est´an bien separadas, LDA puede mejorar el rendimiento de los clasificadores utilizados posteriormente, como SVM o k-Nearest Neighbors. A diferencia de algunos otros m´etodos de reducci´on de dimensionalidad, LDA est´a dise˜nado para manejar directamente problemas con m´ultiples clases, lo que lo hace muy ´util en escenarios de reconocimiento facial con m´ultiples individuos. Las principales limitaciones son que LDA asume que las caracter´ısticas de cada clase est´an normalmente distribuidas. Si los datos no siguen una distribuci´on normal, el rendimiento de LDA puede verse afectado. Tambi´en existe una limitaci´on en la cantidad de componentes discriminantes que puede generar LDA, ya que solo puede generar c-1, donde ces el n´umero de clases. Esto puede ser una limitaci´on si se necesita una mayor cantidad 16
de componentes para una separaci´on efectiva. LDA puede ser sensible a outliers, ya que estos pueden afectar significativamente las matrices de dispersi´on calculadas. Tambi´en asume que las clases son linealmente separables en el espacio proyectado. Si las clases no son linealmente separables, el rendimiento de LDA puede no ser ´optimo [21]. 2.2.6 Comparaci´on con PCA Por ´ultimo, es adecuado hacer una peque˜na comparativa entre PCA y LDA. La idea principal es que PCA se centra en maximizar la varianza total en los datos proyectados sin tener en cuenta las etiquetas de clase. ´ Unicamente busca direcciones que capturen la mayor cantidad de variabilidad en los datos. Por otro lado, LDA se centra en maximizar la separabilidad entre clases y minimizar la variabilidad dentro de las clases teniendo en cuenta las etiquetas de las mismas. PCA no garantiza la separaci´on de clases en el espacio proyectado, ya que solo maximiza la varianza. Por otro lado, LDA garantiza la maximizaci´on de la separabilidad entre clases. Despu´es de analizar estos datos, es l´ogico pensar que LDA se destaca en tareas de clasificaci´on supervisadas debido a su enfoque en la maximizaci´on de la separabilidad entre clases, mientras que PCA es m´as adecuado para la reducci´on de dimensionalidad en contextos no supervisados. 2.3 Autoencoders 2.3.1 Definici´on y principios b´asicos Un autoencoder es un tipo de arquitectura de red neuronal dise˜nada para comprimir (codificar) eficazmente los datos de entrada hasta reducirlos a sus caracter´ısticas esenciales y, a continuaci´on, reconstruir (descodificar) la entrada original a partir de esta representaci´on comprimida [22]. La mayor´ıa de los tipos de autoencoders se utilizan para tareas de inteligencia artificial relacionadas con la extracci´on de caracter´ısticas, como la compresi´on de datos, la eliminaci´on de ruido en im´agenes, la detecci´on de anomal´ıas y el reconocimiento facial. Un objetivo fundamental del dise˜no y el entrenamiento de un autoencoder es descubrir el n´umero m´ınimo de caracter´ısticas importantes necesarias para una reconstrucci´on eficaz de los datos de entrada. Ciertos tipos de autoencoders, como los variacionales (VAE) y los adversariales (AAE), adaptan la arquitectura para su uso en tareas generativas, como la generaci´on de im´agenes o la generaci´on de datos de series temporales para identificar tendencias en funciones. La estructura general consiste en dos partes principales: •Codificador (Encoder): Esta parte de la red toma la entrada y la transforma en una representaci´on de menor dimensi´on, conocida como espacio latente o c´odigo. El objetivo del codificador es aprender una funci´on que mappee los datos de entrada a un espacio comprimido mientras retiene la informaci´on esencial. •Cuello de botella (Bottleneck): Contiene la representaci´on m´as comprimida de la entrada; es al mismo tiempo la capa de salida de la red codificadora y la capa de entrada de la red decodificadora. •Decodificador (Decoder): El decodificador toma la representaci´on latente generada por el codificador y la transforma de nuevo a una forma que se asemeje a la entrada original. El objetivo del decodificador es reconstruir los datos originales a partir de la representaci´on comprimida. 17
Un autoencoder regular tiene una estructura de red neuronal sim´etrica, por ejemplo, si el codificador tiene una secuencia de capas con 128, 64 y 32 neuronas, el decodificador acostumbrar´a a tener una secuencia de capas con 32, 64 y 128 neuronas respectivamente. Figura 4: Esquema del modelo autoencoder [13]. Las funciones de activaci´on se utilizan en las capas del codificador y el decodificador, y se encargan de modificar el valor resultado o imponer un l´ımite que se debe sobrepasar para poder proseguir a otra neurona [23]. Permiten que la red aprenda relaciones no lineales entre los datos, ya que transforman la salida lineal de una neurona en una salida no lineal. La funci´on de p´erdida es la que contrasta el resultado de la red con el objetivo que marca el entrenador (denominado verdad subyacente o ground truth). En otras palabras, parametriza cu´anto se ha equivocado la red [24]. El objetivo del entrenamiento del autoencoder es minimizar dicha funci´on de p´erdida utilizando diversos algoritmos de optimizaci´on. El proceso de retropropagaci´on (backpropagation) es un proceso de optimizaci´on iterativo que ajusta los pesos de las conexiones neuronales para minimizar el error en la salida de la red. Consta de dos fases principales: •Propagaci´on hacia delante: La entrada se pasa a trav´es de la red para obtener una salida. •Propagaci´on hacia atr´as: El error entre la salida obtenida y la salida deseada se propaga de vuelta a trav´es de la red, calculando gradientes que se usan para actualizar los pesos de la red mediante el descenso de gradiente. Este proceso se realiza utilizando la derivada de la funci´on de activaci´on. 2.3.2 Fundamentos matem´aticos En esta secci´on se explicar´an los fundamentos matem´aticos detr´as de los autoencoders regulares, que es el modelo que se emplea en este trabajo, incluyendo su arquitectura, funci´on de p´erdida y proceso de optimizaci´on [25]. •Codificador (Encoder): El codificador toma la entrada x∈Rdy la transforma en una representaci´on de menor dimensi´on z∈Rm, donde m < d. Esto se hace a trav´es de una serie de capas ocultas con funciones de activaci´on no lineales. Matem´aticamente, el codificador se puede representar como: z=f(Wex+be) (10) donde Weybeson los pesos y sesgos del codificador, y fes una funci´on de activaci´on como ReLU, sigmoid otanh. 18
•Decodificador (Decoder): El decodificador toma la representaci´on latente zy la transforma de nuevo a una reconstrucci´on ˆx ∈Rd, intentando aproximar la entrada original x. El decodificador se puede representar como: ˆx =g(Wdz+bd) (11) donde Wdybdson los pesos y sesgos del decodificador, y ges una funci´on de activaci´on. •Funci´on de p´erdida El objetivo del autoencoder es minimizar la diferencia entre la entrada original xy la salida reconstruida ˆx. La funci´on de p´erdida m´as com´unmente utilizada es el error cuadr´atico medio (MSE), que se define como: L(x,ˆ x) = 1 n n X i=1 (xi−ˆxi)2(12) donde n es el n´umero de caracter´ısticas de la entrada. Esta funci´on de p´erdida mide la discrepancia entre la entrada y la salida reconstruida y se utiliza para ajustar los pesos y sesgos del autoencoder durante el entrenamiento [26]. •Optimizaci´on El entrenamiento del autoencoder implica minimizar la funci´on de p´erdida para ajustar los pesos y sesgos del codificador y el decodificador. Esto se hace a trav´es de un proceso de optimizaci´on, t´ıpicamente usando el algoritmo de retropropagaci´on (backpropagation) junto con un optimizador como Adam o SGD (Stochastic Gradient Descent) [27]. Primero se calcula el gradiente de la funci´on de p´erdida con respecto a los pesos y sesgos del autoencoder. Despu´es, los pesos y sesgos se van actualizando seg´un la regla del optimizador. Un ejemplo de estas reglas es la del descenso de gradiente estoc´astico: W←W−η∂L ∂W (13) donde ηes la tasa de aprendizaje. 2.3.3 Compresi´on y representaci´on en el espacio latente Los autoencoders son particularmente ´utiles para la compresi´on de datos. Este proceso implica reducir la dimensionalidad de los datos originales a una representaci´on m´as compacta, llamada espacio latente, que mantiene la informaci´on esencial de los datos. Esta reducci´on de dimensionalidad facilita el almacenamiento y procesamiento de los datos, ayuda a eliminar el ruido y facilita su an´alisis. El espacio latente es un espacio de caracter´ısticas de menor dimensi´on que captura las variaciones m´as significativas de los datos originales. Las caracter´ısticas en este espacio latente son las que el autoencoder considera m´as importantes para reconstruir la entrada original. Esto permite visualizar y explorar estructuras intr´ınsecas de los datos como clusters3de diferentes clases. 2.3.4 Aplicaci´on en el reconocimiento facial De manera an´aloga a PCA y LDA, los autoencoders tambi´en pueden ser utilizados para la reducci´on de dimensionalidad y la extracci´on de caracter´ısticas en el reconocimiento facial. 3grupos de datos que son similares entre s´ı seg´un alguna m´etrica de similitud. 19
Una vez que el autoencoder ha sido entrenado, se utiliza el codificador para transformar las im´agenes faciales en representaciones de menor dimensi´on en el espacio latente. Una vez obtenidas estas representaciones latentes y sus etiquetas de clase correspondientes, se entrena un clasificador como el ya mencionado k-Nearest Neighbors. 2.3.5 Ventajas y limitaciones Los autoencoders ofrecen una soluci´on poderosa para la reducci´on de dimensionalidad y la extracci´on de caracter´ısticas en el reconocimiento facial, especialmente debido a su capacidad para aprender representaciones no lineales de los datos. Al comprimir la informaci´on en un espacio latente de menor dimensi´on, los autoencoders pueden eliminar el ruido y las redundancias, mejorando la calidad de las representaciones y facilitando el almacenamiento y procesamiento de grandes vol´umenes de datos. Sin embargo, tambi´en presentan algunas limitaciones. Requieren grandes conjuntos de datos y altos recursos computacionales para entrenar de manera efectiva, lo que puede ser costoso y llevar mucho tiempo. Tambi´en existe el riesgo de sobreajuste si el modelo es demasiado complejo para el tama˜no del conjunto de datos, lo que reduce su capacidad para generalizar a datos no vistos. Adem´as, las representaciones aprendidas pueden ser dif´ıciles de interpretar y el proceso de ajuste de hiperpar´ametros puede ser tedioso [28]. 2.3.6 Comparaci´on con PCA y LDA PCA y LDA son t´ecnicas efectivas y eficientes para la reducci´on de dimensionalidad y clasificaci´on lineal, respectivamente, pero est´an limitadas a capturar solo relaciones lineales en los datos. Los autoencoders, por otro lado, ofrecen una mayor flexibilidad y potencia al ser capaces de aprender representaciones no lineales complejas, lo que los hace adecuados para tareas avanzadas de reducci´on de dimensionalidad y extracci´on de caracter´ısticas. Sin embargo, los autoencoders requieren m´as datos y recursos computacionales, lo que puede ser una limitaci´on en ciertos escenarios. La elecci´on entre estas t´ecnicas depende del tipo de datos, el objetivo del an´alisis y los recursos disponibles. Aun as´ı, hay estudios que indican que los autoencoders presentan muchas ventajas como extractor de caracter´ısticas. Por ejemplo, una de las investigaciones compara el autoencoder regular con el an´alisis de componentes principales (PCA) en el reconocimiento facial [29]. Se˜nala que es superior a PCA como extractor de caracter´ısticas porque es capaz de aprender representaciones complejas de los datos. 2.4 Algoritmo de clasificaci´on: k-Nearest Neighbors 2.4.1 Descripci´on general del algoritmo El algoritmo k-vecinos m´as cercanos (en ingl´es k-nearest neighbors,k-NN ) es un m´etodo de aprendizaje autom´atico supervisado que se puede utilizar para resolver problemas de clasificaci´on y regresi´on. El algoritmo identifica los k puntos de datos m´as cercanos (donde k es un n´umero entero positivo) al punto de consulta bas´andose en alguna medida de distancia (como la distancia euclidiana), y realiza una predicci´on basada en la proximidad de estos k vecinos. Generalmente se usa como un algoritmo de clasificaci´on, partiendo de la suposici´on de que se pueden encontrar puntos similares cerca uno del otro [12]. 20
3.4.3 Atributos de la clase Modelo •n components PCA (int): N´umero de componentes principales (eigenfaces) a usar en la parte de PCA. •n components LDA (int): N´umero de componentes a usar en LDA. •n neighbors (int): N´umero de vecinos (k) a considerar en el clasificador k-NN •lda (object): Instancia de la clase LDA. •knn (object): Instancia del clasificador k-NN. •model type (string): Tipo de modelo, en este caso “LDA”. 3.4.4 M´etodos de la clase Modelo Los m´etodos score,save yload no se explicar´an en este apartado, ya que son exactamente iguales que los de PCA. •init (self, n components pca, n components lda, n neighbors): – Descripci´on: Inicializa los par´ametros del modelo. – Par´ametros: ∗n components pca (int): N´umero de componentes principales para PCA. ∗n components lda (int): N´umero de componentes para LDA. ∗n neighbors (int): N´umero de vecinos (k) en el k-NN. •fit(self, X train, y train) – Descripci´on: Entrena el modelo con los datos de entrenamiento. – Par´ametros: ∗X train (array): Conjunto de datos de entrenamiento. ∗y train (array): Etiquetas del conjunto de datos de entrenamiento. – Proceso: ∗Centrar los datos restando la media de la matriz de im´agenes a cada imagen. ∗Aplicar el m´etodo de PCA para reducir la dimensionalidad inicial. ∗Calcular y normalizar las eigenfaces obtenidas de PCA. ∗Proyectar las im´agenes del conjunto de datos en el espacio generado por las eigenfaces de PCA. ∗Aplicar LDA sobre los datos proyectados por PCA para mejorar la discriminaci´on entre clases. ∗Entrenar el clasificador k-NN con las proyecciones obtenidas de LDA. •project(self, X): – Descripci´on: Proyecta los datos en el espacio generado por PCA y LDA. – Par´ametros: 27
∗X(array): Conjunto de im´agenes a proyectar. – Retorno: Im´agenes proyectadas en el espacio LDA. – Proceso: ∗Centrar los datos restando la media. ∗Proyectar los datos en el espacio PCA. ∗Transformar los datos proyectados en PCA utilizando LDA. •predict(self, X test): – Descripci´on: Realiza las predicciones usando el modelo entrenado. – Par´ametros: ∗X test (array): Conjunto de datos de prueba. – Retorno: Vector de predicciones para los datos de prueba. – Proceso: ∗Proyectar los datos de prueba en el espacio generado por PCA y LDA. ∗Realizar predicciones con el clasificador k-NN entrenado. •score(self, X test, y test): – Descripci´on: Eval´ua el modelo calculando la precisi´on de las predicciones. – Par´ametros: ∗X test (array): Conjunto de datos de prueba. ∗y test (array): Etiquetas del conjunto de datos de prueba. – Retorno: Valor num´erico de la precisi´on de las predicciones. 3.5 Archivo Autoencoder model.py Antes de explicar este archivo, cabe mencionar que se han hecho pruebas comparativas entrenando los modelos con la CPU con la ´ultima versi´on de Python y Tensorflow y usando la GPU con una versi´on de Python y Tensorflow anteriores (3.10 y 2.10.1) tal como se ha explicado en el apartado de configuraci´on de hardware ysoftware. La conclusi´on es que el tiempo de entrenamiento de la GPU es significativamente menor, a continuaci´on se muestran los resultados: Modelo Tiempo de entrenamiento (s) Autoencoder CPU 439.49 Autoencoder GPU 135.82 Speed-Up 3.235 Tabla 1: Comparaci´on de modelos Autoencoder entrenados con CPU y GPU 3.5.1 Descripci´on general Este archivo define la clase AutoencoderModel que implementa un sistema de reconocimiento de im´agenes utilizando un autoencoder para la reducci´on de dimensionalidad y un clasificador k-NN para la clasificaci´on. La clase permite entrenar el autoencoder con datos de entrenamiento, hacer predicciones y evaluar el rendimiento del modelo. Adem´as, incluye funcionalidades para guardar y cargar el estado del modelo. 28
3.5.2 Arquitectura del autoencoder construido El autoencoder consta de dos partes principales: el encoder y el decoder. A continuaci´on se describe la arquitectura detallada de cada una de las partes. El encoder es responsable de reducir la dimensionalidad de los datos de entrada, extrayendo una representaci´on compacta (o codificaci´on) de las im´agenes. Sus componentes son: •Entrada (Input): Las dimensiones de la entrada vienen indicadas por la variable input shape, que var´ıa seg´un el conjunto de datos que se est´e usando. •Capa de aplanado (Flatten): Aplana las im´agenes a un vector unidimensional. Esto es necesario para pasar los datos a trav´es de las capas densas. •Capa densa (Dense): Tiene 512 neuronas y su funci´on de activaci´on es ReLU, una de las m´as populares en redes neuronales profundas. Su f´ormula es sencilla y se define como: ReLU(x) = (0 si x < 0 xsi x≥0 Gr´aficamente: −2−1 0 1 2 0 0,5 1 1,5 2 Funci´on ReLU Figura 6: Gr´afica de la funci´on ReLU La funci´on ReLU es ampliamente utilizada debido a su simplicidad y su capacidad para ayudar a los modelos a converger r´apidamente. Adem´as, al ser no saturante, evita el problema del desvanecimiento del gradiente5(vanishing gradient), lo que facilita el entrenamiento de redes neuronales profundas [32]. Esta capa totalmente conectada aplica una transformaci´on lineal seguida de una activaci´on ReLU, lo que introduce no linealidad en la red. •Capa densa (Dense): Esta es otra capa densa totalmente conectada con la misma funci´on de activaci´on ReLU, pero esta vez con 256 neuronas. Agregar esta capa 5los gradientes de la funci´on de p´erdida respecto a los pesos de la red neuronal se vuelven muy peque˜nos, haciendo que la actualizaci´on de los pesos sea m´ınima o nula. 29
adicional puede aumentar la capacidad del modelo para aprender caracter´ısticas m´as complejas y abstractas de los datos. •Capa de codificaci´on (Dense): Esta capa reduce la dimensionalidad a un par´ametro llamado encoding dim con funci´on de activaci´on ReLU, generando una representaci´on codificada de las im´agenes de entrada. El decoder toma la representaci´on codificada generada por el encoder y la transforma de nuevo a la forma original de los datos de entrada, reconstruyendo la imagen original. Sus componentes son: •Capa densa (Dense): Tiene 256 neuronas y aplica una transformaci´on lineal seguida de una activaci´on ReLU, expandiendo as´ı la representaci´on codificada. •Capa densa (Dense): Una capa densa con 512 neuronas y funci´on de activaci´on ReLU. Contin´ua la reconstrucci´on de los datos, aumentando la dimensionalidad de nuevo. •Capa densa (Dense): El n´umero de neuronas de esta capa es el tama˜no del vector de la imagen aplanada. Aplica una transformaci´on lineal seguida de una activaci´on sigmoid, que produce una salida en el rango [0,1]. Esta es la representaci´on aplanada de la imagen reconstruida. La funci´on sigmoid mapea cualquier valor real a un rango entre 0 y 1, lo que la hace ´util para modelar probabilidades. Su salida suave y continua ayuda a gestionar la saturaci´on de gradientes en el entrenamiento de redes neuronales [33], y se define como: σ(x) = 1 1 + e−x Gr´aficamente: −10 −5 0 5 10 0 0,2 0,4 0,6 0,8 1 Funci´on sigmoid Figura 7: Gr´afica de la funci´on sigmoid Los mayores problemas son su complejidad computacional debido a que su c´alculo contiene la funci´on exponencial e−x, su salida no centrada en 0 (es [0,1]) ya que puede afectar la convergencia de la red y el problema de la saturaci´on, que es que 30
las entradas muy grandes o muy peque˜nas (positivas o negativas) producen salidas cercanas a 1 o a 0 respectivamente. En estos rangos, la derivada de la funci´on se aproxima a cero, lo que provoca que los gradientes tambi´en sean muy peque˜nos durante el proceso de retropropagaci´on en el entrenamiento de redes neuronales [33]. •Capa de reconfiguraci´on (Reshape): Esta capa reconfigura la salida unidimensional de la capa densa anterior en la forma original de los datos de entrada. Finalmente, el modelo se ha compilado usando estos par´ametros: •Optimizador Adam (Adaptive Moment Estimation): Es un optimizador que combina las ventajas de dos m´etodos: – Adagrad (Adaptive Gradient Algorithm), que adapta la tasa de aprendizaje para cada par´ametro, proporcionando una mayor tasa de aprendizaje para par´ametros infrecuentes. – RMSProp (Root Mean Square Propagation), que ajusta la tasa de aprendizaje en funci´on de las medias m´oviles de los gradientes recientes. Adam calcula una tasa de aprendizaje adaptativa para cada par´ametro del modelo basado en las primeras y segundas derivadas (momentos) de los gradientes. Sus principales ventajas son el manejo eficiente de problemas de optimizaci´on con grandes vol´umenes de datos y par´ametros, requiere menos ajustes en la tasa de aprendizaje y tiene una convergencia r´apida y robusta. •Funci´on de p´erdida MSE (Mean Squared Error): Una de las funciones de p´erdida m´as comunes y ampliamente utilizadas en problemas de regresi´on y aprendizaje supervisado, incluyendo la formaci´on de autoencoders. MSE mide la diferencia promedio al cuadrado entre los valores predichos por el modelo y los valores reales de los datos. 3.5.3 Librer´ıas utilizadas Las librer´ıas comunes utilizadas son numpy,os,sklearn.neighbors ysklearn.metrics. Las librer´ıas espec´ıficas son las siguientes: •keras.models: Parte de Keras, una librer´ıa de alto nivel para redes neuronales. En el c´odigo se usan las clases Model,Sequential yload model para definir y cargar los modelos del autoencoder. •keras.layers: Parte de Keras que incluye una variedad de capas para construir redes neuronales. Las capas Dense,Flatten,Reshape yInput se usan para construir la arquitectura del autoencoder. •pickle: Librer´ıa est´andar de Python utilizada para la serializaci´on y deserializaci´on de estructuras de datos. Se usa pickle.dump ypickle.load para guardar y cargar determinados atributos de 31
3.5.4 Atributos de la clase AutoencoderModel •encoder: Parte del modelo que reduce la dimensionalidad de los datos de entrada. •decoder: Parte del modelo que reconstruye los datos de entrada a partir de la representaci´on codificada. •knn: Instancia del clasificador k-NN. •model type: Tipo de modelo, en este caso “Autoencoder”. 3.5.5 M´etodos de la clase AutoencoderModel •init (self, encoding dim, n neighbors, input shape): – Descripci´on: Inicializa los par´ametros del modelo y define la arquitectura del autoencoder. – Par´ametros: ∗encoding dim: Dimensi´on de la capa de codificaci´on. ∗n neighbors: N´umero de vecinos (k) en el k-NN. ∗input shape: Tupla que contiene la altura y anchura de las im´agenes de entrada. •call(self, inputs) – Descripci´on: Realiza una pasada hacia adelante a trav´es del autoencoder. – Par´ametros: ∗inputs: Datos de entrada. – Retorno: Datos reconstruidos a partir de la representaci´on codificada. •compile(self, optimizer, loss): – Descripci´on: Compila el modelo con el optimizador y la funci´on de p´erdida especificados. – Par´ametros: ∗optimizer: Optimizador a utilizar. ∗loss: Funci´on de p´erdida a utilizar. •fit(self, X train, y train) – Descripci´on: Entrena el autoencoder con los par´ametros seleccionados y el clasificador KNN con los datos de entrenamiento. – Par´ametros: ∗X train: Conjunto de datos de entrenamiento. ∗y train: Etiquetas del conjunto de datos de entrenamiento. •predict(self, X test): – Descripci´on: Realiza predicciones utilizando el clasificador k-NN sobre los datos de prueba. 32
– Par´ametros: ∗X test: Conjunto de datos de prueba. – Retorno: Vector de predicciones para los datos de prueba. •save(self, filepath): – Descripci´on: Guarda el estado del modelo en un archivo. – Par´ametros: ∗filepath: Ruta donde se guardar´a el modelo. – Proceso: ∗Crear el directorio si no existe. ∗Guardar el encoder y el decoder utilizando save de Keras. Decid´ı hacer esto ya que la librer´ıa joblib no es capaz de guardar modelos de Keras. ∗Guardar el clasificador k-NN y otros atributos usando la librer´ıa pickle. •load(cls, filepath): – Descripci´on: Carga un modelo guardado desde un archivo. – Par´ametros: ∗filepath: Ruta del archivo desde donde se cargar´a el modelo. – Retorno: Instancia de la clase AutoencoderModel cargada desde el archivo. – Proceso: ∗Cargar el encoder y el decoder usando load model de Keras. ∗Cargar el clasificador k-NN y otros atributos usando pickle. ∗Crear una instancia del modelo y asignar los componentes cargados. ∗Compilar el modelo con el optimizador y la funci´on de p´erdida especificados. 3.6 Archivo dataset loader.py 3.6.1 Descripci´on general Este script contiene el proceso de carga de los conjuntos de datos que se utilizan en este trabajo. El c´odigo est´a dise˜nado para ser flexible en t´erminos de si las im´agenes deben ser aplanadas o no y permite la especificaci´on de varios par´ametros, como el tama˜no del conjunto de prueba y el n´umero m´ınimo de im´agenes por persona en el caso del dataset LFW. 3.6.2 Documentaci´on de funciones •load local dataset: Esta funci´on se encarga de cargar los datasets que se encuentran en local, es decir, ORL y YALE. Convierte las im´agenes a vectores de caracter´ısticas, las divide en conjuntos de entrenamiento y prueba y obtiene informaci´on sobre las dimensiones de las im´agenes y el n´umero de clases presentes en el dataset. 33
– Par´ametros: ∗dataset name (string): Nombre del dataset que se quiere cargar. ∗test size (float, opcional): Proporci´on del conjunto de datos que se utilizar´a como conjunto de prueba (por defecto 0.3). ∗flatten (bool, opcional): Indica si las im´agenes deben ser aplanadas (por defecto True). – Retorno: ∗X train (array) Datos de entrenamiento. ∗X test (array) Datos de prueba. ∗y train (array) Etiquetas del conjunto de datos de entrenamiento. ∗y test (array) Etiquetas del conjunto de datos de prueba. ∗img dims (tuple) Dimensiones de las im´agenes (altura, anchura). ∗num classes (int) N´umero de clases (individuos). •load lfw dataset: Esta funci´on se encarga de cargar el conjunto de datos LFW utilizando fetch lfw people de sklearn, preprocesa las im´agenes seg´un el par´ametro flatten y divide los datos en conjuntos de entrenamiento y prueba. Tambi´en obtiene las dimensiones de las im´agenes y el n´umero de clases. Antes de retornar escala los valores de las intensidades de los p´ıxeles del rango [0,1] a [0,255] para mantener la coherencia con los dem´as datasets. – Par´ametros: ∗test size (float, opcional): Proporci´on del conjunto de datos que se utilizar´a como conjunto de prueba (por defecto 0.3). ∗min faces per person (int, opcional): N´umero m´ınimo de im´agenes por persona. ∗flatten (bool, opcional): Indica si las im´agenes deben ser aplanadas (por defecto True). – Retorno: ∗X train (array) Datos de entrenamiento. ∗X test (array) Datos de prueba. ∗y train (array) Etiquetas del conjunto de datos de entrenamiento. ∗y test (array) Etiquetas del conjunto de datos de prueba. ∗img dims (tuple) Dimensiones de las im´agenes (altura, anchura). ∗num classes (int) N´umero de clases (individuos). •load dataset: Esta funci´on encapsula las dos funciones explicadas anteriormente. Se encarga de llamar a una u otra funci´on seg´un el dataset que toque cargar. Se usa principalmente para no tener siempre dos imports en los archivos que requieran cargar datasets y ´unicamente con llamar a esta funci´on sea suficiente. – Par´ametros: 34
∗dataset name (string): Nombre del dataset a cargar. ∗test size (float, opcional): Proporci´on del conjunto de datos que se utilizar´a como conjunto de prueba (por defecto 0.3) ∗flatten (bool, opcional): Indica si las im´agenes deben ser aplanadas (por defecto True). – Retorno: ∗X train (array) Datos de entrenamiento. ∗X test (array) Datos de prueba. ∗y train (array) Etiquetas del conjunto de datos de entrenamiento. ∗y test (array) Etiquetas del conjunto de datos de prueba. ∗img dims (tuple) Dimensiones de las im´agenes (altura, anchura). ∗num classes (int) N´umero de clases (individuos). 3.7 Archivo train model.py 3.7.1 Descripci´on general Este archivo contiene el proceso de entrenamiento y evaluaci´on de tres modelos de reducci´on de dimensionalidad y clasificaci´on explicados anteriormente. Los modelos son entrenados y evaluados en varios conjuntos de datos de im´agenes faciales, incluyendo datasets locales y el conocido conjunto de datos LFW (Labelled Faces in the Wild). La metodolog´ıa incluye la carga de datos mediante la funci´on load dataset del archivo dataset loader.py, configuraci´on de par´ametros del modelo, b´usqueda de los mejores hiperpar´ametros mediante validaci´on cruzada y evaluaci´on final en un conjunto de prueba. 3.7.2 Documentaci´on de funciones •get mean cross val score: Esta funci´on calcula la precisi´on media de un modelo utilizando validaci´on cruzada, una t´ecnica utilizada en el aprendizaje autom´atico para evaluar la capacidad de generalizaci´on de un modelo. Consiste en dividir el conjunto de datos en varias partes o ”pliegues”(folds). El modelo se entrena en una parte de los datos y se prueba en la parte restante. Este proceso se repite m´ultiples veces, cada vez utilizando una secci´on diferente para la prueba y las dem´as para el entrenamiento. Los resultados se promedian para obtener una estimaci´on m´as robusta del rendimiento del modelo [34]. Se ha usado el m´etodo K-Fold, donde el conjunto de datos de entrenamiento se divide en k partes. El modelo se entrena K veces, cada vez utilizando k-1 pliegues para el entrenamiento y el pliegue restante para la prueba. El esquema es el siguiente: 35
Figura 8: Esquema de validaci´on cruzada K-Fold [35] – Par´ametros ∗X train (array): Datos de entrenamiento. ∗y train (array): Etiquetas del conjunto de datos de entrenamiento. ∗model (object): Modelo a evaluar. – Retorno ∗float: Precisi´on media del modelo en la validaci´on cruzada. •configure models variable parameters: Esta funci´on configura los par´ametros del modelo para realizar optimizaci´on de hiperpar´ametros, definiendo rangos espec´ıficos de par´ametros dependiendo del tipo de modelo (PCA, LDA, Autoencoder). En caso de LDA, se busca empezar con un n´umero de componentes de PCA que capture al menos un 80 % de la variabilidad total presente en los datos originales. – Par´ametros ∗model type (string): Tipo de modelo (“PCA”, “LDA” o “Autoencoder”) ∗X train (array): Datos de entrenamiento. ∗num classes (int): N´umero de clases en el conjunto de datos. ∗img dims (tuple): Dimensiones de las im´agenes (altura, anchura). – Retorno ∗dict: Diccionario de par´ametros del modelo. ∗class: Clase del modelo. •configure models fixed parameters: Esta funci´on configura los par´ametros del modelo con un n´umero fijo de caracter´ısticas para realizar el experimento mencionado al principio del apartado. – Par´ametros ∗model type (string): Tipo de modelo (“PCA”, “LDA”, “Autoencoder”) 36
Figura 11: Ejemplos de las 4 primeras im´agenes del dataset ORL El histograma de clases indica que existen 10 im´agenes por persona. Se puede observar que la distribuci´on del histograma de las intensidades de los p´ıxeles cubre un amplio rango de intensidades, lo que indica que las im´agenes tienen una buena variedad de tonos y hay muy pocos p´ıxeles con intensidades cercanas a 0 o a 255. 4.1.2 YALE - Yale Face Database El conjunto de datos YALE consta de 165 im´agenes formato .jpg de 15 individuos diferentes [38]. Las im´agenes son de 100 p´ıxeles de ancho por 100 de alto, y fueron capturadas en el Centro de Visi´on Computacional y Reconocimiento de Patrones de la Universidad de Yale. Cada individuo fue fotografiado con diferentes expresiones faciales (feliz, triste, dormido, etc.) y bajo diferentes condiciones de iluminaci´on, lo que introduce variabilidad y desaf´ıos adicionales en el reconocimiento facial. Figura 12: Histograma de clases del dataset YALE 43
Figura 13: Histograma de intensidades de los p´ıxeles de las im´agenes del dataset YALE Figura 14: Ejemplos de las 4 primeras im´agenes del dataset YALE Con el histograma de clases podemos observar que existen 20 im´agenes por persona. En el histograma de intensidades podemos observar que hay un pico muy grande en 255, esto es debido a los p´ıxeles blancos del fondo de las im´agenes. Observando la distribuci´on y no teniendo en cuenta los p´ıxeles de fondo podemos obtener que la mayor´ıa de p´ıxeles se sit´uan en intensidades medias, de 0 a 150 aproximadamente. 4.1.3 LFW - Labeled Faces in the Wild El conjunto de datos LFW contiene m´as de 13,000 im´agenes de rostros obtenidas de internet [39]. Estas im´agenes son de 94 p´ıxeles de ancho por 125 de alto. Representan 5,749 personas diferentes en diversas condiciones, incluyendo variaciones en la pose, la iluminaci´on y las expresiones faciales. LFW es conocido por su uso en la evaluaci´on de algoritmos de verificaci´on y reconocimiento facial, proporcionando un escenario del mundo real con 44
im´agenes no controladas y etiquetadas manualmente. Para los resultados preliminares se ha reducido el tama˜no del dataset haciendo que solo aparezcan aquellos individuos que tengan 70 im´agenes o m´as, es decir, este subconjunto tiene 1288 im´agenes de 7 individuos (clases). Para el dataset final se ha hecho que aparezcan todos los individuos que tengan 10 im´agenes o m´as. Este subconjunto tiene 4324 im´agenes de 158 individuos. Los distintos subconjuntos de este dataset se han cargado mediante la funci´on fetch lfw people de la librer´ıa de Python scikit-learn [40]. Figura 15: Histograma de clases del dataset LFW Figura 16: Histograma de intensidades de los p´ıxeles de las im´agenes del dataset LFW 45
Figura 17: Ejemplos de las 4 primeras im´agenes del dataset LFW Con el histograma de clases del dataset podemos observar que tenemos m´as im´agenes de la clase 3 que de las dem´as, esto indica algo de desbalance entre clases, cosa que podr´ıa afectar al rendimiento de los modelos ya que pueden tender a sesgarse hacia la clase predominante. Podemos observar que la distribuci´on de las intensidades de los p´ıxeles tiene forma de campana de Gauss cosa que indica que las intensidades est´an distribuidas de manera relativamente sim´etrica alrededor de un valor medio, que ser´ıa alrededor de 125. Hay una cantidad significativa de p´ıxeles en el rango de intensidades bajas a medias (entre 100 y 150). 46
4.2 Descripci´on detallada de los experimentos El flujo de trabajo que se ha seguido es, por una parte, obtener los mejores modelos haciendo una optimizaci´on de todos sus hiperpar´ametros para despu´es poder compararlos. Por otro lado, se ha decidido realizar una prueba en la que todos los modelos se entrenan con un n´umero igual de caracter´ısticas (features) para realizar una comparaci´on justa. Con estos dos experimentos se observar´an una gran variedad de comparativas y se podr´an sacar muchas conclusiones, por ejemplo nos permitir´a saber si realmente los modelos con los par´ametros optimizados ofrecen mejor rendimiento y precisi´on o si por el contrario los modelos con n´umero de caracter´ısticas fijo desempe˜nan de una manera similar. Se ha decidido dividir los conjuntos de datos en 70 % muestras de entrenamiento y 30 % muestras de prueba. En cada vuelta de validaci´on cruzada se dividir´a el conjunto de datos en 5 partes, es decir, el modelo se entrenar´a con 4 de estas partes y se validar´a con la parte restante, repitiendo este proceso 5 veces. Antes de dividir los datos en las diferentes partes (folds), se mezclar´an para asegurar que cada fold sea representativo de toda la muestra. 4.2.1 Modelos con todos los hiperpar´ametros optimizados Este experimento consiste en entrenar todos los modelos optimizando todos sus hiperpar´ametros para obtener la mejor combinaci´on de ellos. Cada modelo tiene un rango de valores asignado en cada uno de sus hiperpar´ametros sobre el cual se iterar´a para descubrir cu´ales son los mejores. Dichos rangos de valores son arbitrarios, pero bajo mi criterio son los que m´as adecuados me han parecido para los conjuntos de datos utilizados. •Modelo PCA: – N´umero de componentes: cantidad de vectores propios (eigenvectors) seleccionados que se utilizan para proyectar los datos originales en un nuevo espacio de caracter´ısticas. Se ha decidido probar un rango de componentes que va desde 1 hasta 100, incrementando de 5 en 5. – N´umero de vecinos de k-NN: cantidad de puntos de datos cercanos que el algoritmo considera para tomar una decisi´on sobre la clasificaci´on de una nueva muestra de datos. Se ha decidido probar n´umeros de vecinos del 1 al 10 con incrementos de 1 en 1. •Modelo LDA: – N´umero de componentes de PCA – N´umero de componentes de LDA: representa la cantidad de nuevas caracter´ısticas que el algoritmo LDA retendr´a despu´es de la reducci´on de dimensionalidad. Este n´umero de componentes tiene que ser mayor que m´ın(num caracter´ısticas,num clases −1) ya que las clases se pueden separar en, como m´aximo, num clases-1 dimensiones. Si num caracteristicas es menor que num clases-1, se pueden obtener como mucho num caracteristicas vectores propios no triviales6, ya que la matriz de covarianza de los datos tiene un tama˜no de num caracter´ısticas × num caracter´ısticas. 6vector propio diferente del vector cero 47
– N´umero de vecinos de k-NN •Modelo Autoencoder: – Dimensi´on de la codificaci´on: es la dimensi´on del espacio latente o codificado. Este es el n´umero de neuronas en la capa oculta m´as peque˜na (cuello de botella) del autoencoder. – N´umero de vecinos de k-NN El autoencoder se ha entrenado usando 100 ´epocas. Esto es el n´umero de veces que el algoritmo de entrenamiento recorrer´a todo el conjunto de datos. Se usar´a un tama˜no de lote de 128, esto es el n´umero de muestras que se procesan antes de actualizar los par´ametros del modelo. Tambi´en se ha definido un callback7de early stopping que se usa para detener el entrenamiento del modelo si la funci´on de p´erdida de validaci´on no mejora despu´es de un n´umero especificado de ´epocas. Este n´umero de ´epocas se llama paciencia (patience) y se le ha asignado un valor de 10. Esto ayuda a evitar el sobreentrenamiento (overfitting) y reduce el tiempo de entrenamiento al detener el entrenamiento cuando el modelo deja de mejorar. Al detenerse el entrenamiento, se restaurar´an los pesos del modelo al punto de menor p´erdida de validaci´on. En cada ´epoca, el 20 % de los datos de entrenamiento se utilizar´a como conjunto de validaci´on, esto significa que el 80 % se usar´a para ajustar los pesos del modelo y el otro 20 % restante para evaluar el rendimiento del modelo. El uso de un conjunto de validaci´on es esencial para determinar cu´ando detener el entrenamiento para prevenir el sobreajuste. Los par´ametros relativos a la arquitectura del autoencoder construidos est´an explicados en el apartado 3.5. 4.2.2 Modelos con n´umero de caracter´ısticas fijo Esto significa fijar el modelo PCA a un n´umero de caracter´ısticas determinado y por consecuencia fijar tambi´en el n´umero de componentes de PCA en el modelo de LDA y la dimensi´on del encoding en el Autoencoder. Sin embargo, el n´umero de vecinos de k-NN y el n´umero de componentes de LDA se siguen optimizando. La elecci´on del n´umero de caracter´ısticas depende de muchos factores, entre ellos el tama˜no del conjunto de datos y su complejidad. Por ello, se han elegido los siguientes valores: •ORL: 8 caracter´ısticas •YALE: 4 caracter´ısticas •LFW: 4 caracter´ısticas •LFW extendido: 32 caracter´ısticas 4.3 M´etricas de rendimiento Antes de explicar las m´etricas es necesario definir algunos conceptos: •TP: Verdaderos Positivos (True Positives) 7funci´on que se ejecuta autom´aticamente en ciertos puntos para personalizar y controlar el proceso de entrenamiento. 48
•FP: Falsos Positivos (False Positives) •TN: Verdaderos Negativos (True Negatives) •FN: Falsos Negativos (False Negatives) A continuaci´on se describir´an las m´etricas de rendimiento para comparar los resultados de cada modelo. •Exactitud (accuracy): La exactitud (accuracy) es una m´etrica que mide la proporci´on de instancias correctamente clasificadas sobre el total de instancias. Es una medida global de qu´e tan bien est´a funcionando el modelo en general. Exactitud = N´umero de predicciones correctas N´umero total de predicciones (15) •Precisi´on: Es la proporci´on de verdaderos positivos sobre el total de predicciones positivas. Mide la exactitud de las predicciones positivas del modelo. Precision = TP TP + FP (16) •Sensibilidad (recall): Proporci´on de verdaderos positivos sobre el total de verdaderos positivos y falsos negativos. Mide la capacidad del modelo para identificar correctamente las instancias positivas. Recall = TP TP + FN (17) •F1-Score: La media arm´onica de precisi´on y sensibilidad. Es especialmente ´util cuando se necesita un equilibrio entre precisi´on y sensibilidad, y es crucial en escenarios con clases desbalanceadas. F1 = 2 ·Precision ·Recall Precision + Recall (18) •Matriz de confusi´on: Una representaci´on tabular de las predicciones del modelo, mostrando verdaderos positivos, verdaderos negativos, falsos positivos y falsos negativos. Proporciona una visi´on detallada de d´onde el modelo est´a fallando y acertando. Predicci´on Positiva Predicci´on Negativa Real Positivo TP FN Real Negativo FP TN Tabla 2: Contenido de una matriz de confusi´on •Tiempo de entrenamiento: El tiempo necesario para entrenar el modelo completo. Es importante para evaluar la escalabilidad del modelo. 49
Aunque no sea una m´etrica de rendimiento propiamente dicha, tambi´en se a˜nadir´an gr´aficas de los espacios de clases de PCA y LDA donde los ejes XeYser´an las eigenfaces ofisherfaces que mayor valor propio tengan asociado, es decir, las dos m´as representativas. Cada punto con coordenadas (X, Y ) representar´a los coeficientes de la imagen en la primera y segunda eigenface/fisherface. Estos dos espacios ser´an nombrados eigenspace yfisherspace respectivamente. Esta gr´afica nos puede venir muy bien para interpretar los modelos, facilita la identificaci´on de patrones y agrupamientos en los datos, as´ı como valores at´ıpicos (outliers). Adem´as, se mostrar´an ejemplos de im´agenes mal clasificadas y la clase contra la que se ha clasificado err´oneamente. En los resultados del conjunto LFW extendido la matriz de confusi´on no se puede leer bien debido a que hay muchas clases (158), por tanto he decidido no mostrarla. 4.4 Resultados con dataset ORL En este apartado se mostrar´an los resultados obtenidos de los mejores modelos para el conjunto de im´agenes ORL. 4.4.1 Mejores modelos •PCA Figura 18: Matriz de confusi´on del mejor modelo PCA para el dataset ORL. Generaci´on propia. 50
M´etrica/Par´ametro Valor Precision 0.984 Exactitud 0.975 Sensibilidad 0.975 F1-Score 0.976 Tiempo de entrenamiento 73.36 s Numero de componentes: 66 Numero de vecinos de k-NN 1 Tabla 3: M´etricas y par´ametros del mejor modelo PCA para el dataset ORL. Generaci´on propia. Figura 19: Espacio de caras del mejor modelo PCA para el dataset ORL. Generaci´on propia. 51
Figura 20: Im´agenes mal clasificadas por el mejor modelo PCA para el dataset ORL. Generaci´on propia. •LDA Figura 21: Matriz de confusi´on del mejor modelo LDA para el dataset ORL. Generaci´on propia. 52
Figura 30: Espacio de caras del modelo LDA fijo para el dataset ORL. Generaci´on propia. Figura 31: Im´agenes mal clasificadas por el modelo LDA fijo para el dataset ORL. Generaci´on propia. •Autoencoder 59
Figura 32: Matriz de confusi´on del modelo fijo Autoencoder para el dataset ORL. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.642 Exactitud 0.608 Sensibilidad 0.608 F1-Score 0.585 Tiempo de entrenamiento 67.39 s Dimension del encoding 5 Numero de vecinos de k-NN 5 Tabla 8: M´etricas y par´ametros del modelo fijo Autoencoder para el dataset ORL. Generaci´on propia. 60
Figura 33: Im´agenes mal clasificadas por el modelo Autoencoder fijo para el dataset ORL. Generaci´on propia. 4.5 Resultados con dataset YALE En este apartado se mostrar´an los resultados obtenidos de los mejores modelos para el conjunto de im´agenes YALE. 4.5.1 Mejores modelos •PCA 61
Figura 34: Matriz de confusi´on del mejor modelo PCA para el dataset YALE. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.827 Exactitud 0.788 Sensibilidad 0.788 F1-Score 0.790 Tiempo de entrenamiento 61.25 s Numero de componentes 56 Numero de vecinos de kNN 1 Tabla 9: M´etricas y par´ametros del mejor modelo PCA para el dataset YALE. Generaci´on propia. 62
Figura 35: Espacio de caras del mejor modelo PCA para el dataset YALE. Generaci´on propia. Figura 36: Im´agenes mal clasificadas por el mejor modelo PCA para el dataset YALE. Generaci´on propia. •LDA 63
Figura 37: Matriz de confusi´on del mejor modelo LDA para el dataset YALE. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.955 Exactitud 0.929 Sensibilidad 0.929 F1-Score 0.933 Tiempo de entrenamiento 227.43 s Numero de componentes PCA 88 Numero de componentes LDA 11 Numero de vecinos de kNN 8 Tabla 10: M´etricas y par´ametros del mejor modelo LDA para el dataset YALE. Generaci´on propia. 64
Figura 38: Espacio de caras del mejor modelo LDA para el dataset YALE. Generaci´on propia. Figura 39: Im´agenes mal clasificadas por el mejor modelo LDA para el dataset YALE. Generaci´on propia. •Autoencoder 65
Figura 40: Matriz de confusi´on del mejor modelo Autoencoder para el dataset YALE. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.794 Exactitud 0.747 Sensibilidad 0.747 F1-Score 0.745 Tiempo de entrenamiento 569.6 s Dimension del encoding 30 Numero de vecinos de kNN 1 Tabla 11: M´etricas y par´ametros del mejor modelo Autoencoder para el dataset YALE. Generaci´on propia. 66
Figura 41: Im´agenes mal clasificadas por el mejor modelo Autoencoder para el dataset YALE. Generaci´on propia. 4.5.2 Modelos con n´umero de caracter´ısticas fijo •PCA 67
Figura 42: Matriz de confusi´on del modelo PCA fijo para el dataset YALE. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.695 Exactitud 0.667 Sensibilidad 0.667 F1-Score 0.664 Tiempo de entrenamiento 1.141 s Numero de componentes 4 Numero de vecinos de k-NN 1 Tabla 12: M´etricas y par´ametros del modelo fijo PCA para el dataset YALE. Generaci´on propia. 68
Figura 51: Espacio de caras del mejor modelo PCA para el dataset LFW. Generaci´on propia. Figura 52: Im´agenes mal clasificadas por el mejor modelo PCA para el dataset LFW. Generaci´on propia. •LDA 75
Figura 53: Matriz de confusi´on del mejor modelo LDA para el dataset LFW. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.826 Exactitud 0.824 Sensibilidad 0.824 F1-Score 0.824 Tiempo de entrenamiento 357.27 s Numero de componentes PCA 90 Numero de componentes LDA 5 Numero de vecinos de kNN 9 Tabla 16: M´etricas y par´ametros del mejor modelo LDA para el dataset LFW. Generaci´on propia. 76
Figura 54: Espacio de caras del mejor modelo LDA para el dataset LFW. Generaci´on propia. Figura 55: Im´agenes mal clasificadas por el mejor modelo LDA para el dataset LFW. Generaci´on propia. •Autoencoder 77
Figura 56: Matriz de confusi´on del mejor modelo Autoencoder para el dataset LFW. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.228 Exactitud 0.362 Sensibilidad 0.362 F1-Score 0.263 Tiempo de entrenamiento 896.76 s Dimension del encoding 70 Numero de vecinos de kNN 7 Tabla 17: M´etricas y par´ametros del mejor modelo Autoencoder para el dataset LFW. Generaci´on propia. 78
Figura 57: Im´agenes mal clasificadas por el mejor modelo Autoencoder para el dataset LFW. Generaci´on propia. 4.6.2 Modelos con n´umero de caracter´ısticas fijo •PCA 79
Figura 58: Matriz de confusi´on del modelo PCA fijo para el dataset LFW. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.314 Exactitud 0.364 Sensibilidad 0.364 F1-Score 0.318 Tiempo de entrenamiento 5.897 s Numero de componentes 4 Numero de vecinos de k-NN 8 Tabla 18: M´etricas y par´ametros del modelo fijo PCA para el dataset LFW. Generaci´on propia. 80
Figura 59: Espacio de caras del modelo PCA fijo para el dataset LFW. Generaci´on propia. Figura 60: Im´agenes mal clasificadas por el modelo PCA fijo para el dataset LFW. Generaci´on propia. •LDA 81
Figura 61: Matriz de confusi´on del modelo LDA fijo para el dataset LFW. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.290 Exactitud 0.370 Sensibilidad 0.370 F1-Score 0.315 Tiempo de entrenamiento 5.902 s Numero de componentes PCA 4 Numero de componentes LDA 3 Numero de vecinos de k-NN 9 Tabla 19: M´etricas y par´ametros del modelo fijo LDA para el dataset LFW. Generaci´on propia. 82
Figura 62: Espacio de caras del modelo LDA fijo para el dataset LFW. Generaci´on propia. Figura 63: Im´agenes mal clasificadas por el modelo LDA fijo para el dataset LFW. Generaci´on propia. •Autoencoder 83
Figura 64: Matriz de confusi´on del modelo fijo Autoencoder para el dataset LFW. Generaci´on propia. M´etrica/Par´ametro Valor Precision 0.291 Exactitud 0.357 Sensibilidad 0.357 F1-Score 0.306 Tiempo de entrenamiento 79.51 s Dimension del encoding 8 Numero de vecinos de k-NN 8 Tabla 20: M´etricas y par´ametros del modelo fijo Autoencoder para el dataset LFW. Generaci´on propia. 84
M´etrica/Par´ametro Valor Precision 0.309 Exactitud 0.343 Sensibilidad 0.343 F1-Score 0.294 Tiempo de entrenamiento 1150.42 s Numero de componentes PCA 32 Numero de componentes LDA 19 Numero de vecinos de k-NN 9 Tabla 25: M´etricas y par´ametros del modelo fijo LDA para el dataset LFW extendido. Generaci´on propia. Figura 73: Espacio de caras del modelo LDA fijo para el dataset LFW extendido. Generaci´on propia. 91
Figura 74: Im´agenes mal clasificadas por modelo LDA fijo para el dataset LFW extendido. Generaci´on propia. •Autoencoder M´etrica/Par´ametro Valor Precision 0.138 Exactitud 0.170 Sensibilidad 0.170 F1-Score 0.132 Tiempo de entrenamiento 200.46 s Dimension del encoding 32 Numero de vecinos de k-NN 9 Tabla 26: M´etricas y par´ametros del modelo fijo Autoencoder para el dataset LFW extendido. Generaci´on propia. 92
Figura 75: Im´agenes mal clasificadas por modelo Autoencoder fijo para el dataset LFW extendido. Generaci´on propia. 93
5 Desviaciones en la planificaci´on del proyecto En esta secci´on se describir´an las desviaciones temporales que habido en la planificaci´on del proyecto utilizando una tabla como control de gesti´on. El control de gesti´on se refiere al proceso de seguimiento, evaluaci´on y ajuste de las operaciones de una planificaci´on para asegurar que se alcancen los objetivos y metas establecidos. Id Tarea Tiempo estimado Tiempo real Desviaci´on EP Estudio Previo 60h 75h -15h EP1 Estudio de las t´ecnicas 50h 70h -20h EP2 Preparaci´on del entorno de desarrollo 10h 5h 5h GP Gesti´on del Proyecto 135h 144h -9h GP1 Alcance 15h 20h -5h GP2 Planificaci´on temporal 15h 15h 0h GP3 Presupuesto 5h 7h -2h GP4 Informe de sostenibilidad 5h 2h 3h GP5 Seguimiento del proyecto 20h 5h 15h GP6 Documentaci´on 60h 80h -20h GP7 Defensa del trabajo 15h 15h 0h DT Desarrollo de las T´ecnicas 210h 165h 45h DT1 Desarrollo de PCA 70h 35h 35h DT1.1 Extracci´on de caracter´ısticas 50h 20h 30h DT1.2 Aplicaci´on del m´etodo de clasificaci´on 15h 10h 5h DT1.3 Obtenci´on de resultados 5h 5h 0h DT2 Desarrollo de LDA 70h 30h 40h DT2.1 Extracci´on de caracter´ısticas 50h 20h 30h DT2.2 Aplicaci´on del m´etodo de clasificaci´on 15h 5h 10h DT2.3 Obtenci´on de resultados 5h 5h 0h DT3 Desarrollo de Autoencoder 70h 100h -30h DT3.1 Extracci´on de caracter´ısticas 50h 70h -20h DT3.2 Aplicaci´on del m´etodo de clasificaci´on 15h 20h -5h DT3.3 Obtenci´on de resultados 5h 10h -5h AR An´alisis de Resultados 45h 60h -15h - Total 450h 444h 6h Tabla 27: Tabla de tiempos y desviaciones de las actividades del proyecto. Generaci´on propia. 6 Informe de sostenibilidad Un informe de sostenibilidad en un proyecto es necesario porque proporciona una evaluaci´on transparente y detallada del impacto ambiental, social y econ´omico del proyecto, destacando c´omo se abordan los principios de desarrollo sostenible en todas las fases del mismo. Despu´es de haber completado la encuesta del proyecto de investigaci´on EDINSOST2-ODS [41] sobre el desarrollo sostenible, se realizar´a una autoevaluaci´on del impacto del proyecto en las dimensiones mencionadas anteriormente. Durante el Grado de Ingenier´ıa Inform´atica en la FIB hemos hecho asignaturas en las que nos han explicado varios conceptos acerca de la sostenibilidad, una de ellas fue de Arquitectura de Computadores. En esta asignatura se nos explic´o la importancia de reutilizar hardware y el impacto que generaba en el medioambiente el mal aprovechamiento del mismo. 94
Es fundamental considerar la sostenibilidad en las tres dimensiones, econ´omica, social y ambiental en todo proyecto, especialmente en aquellos que requieran m´as recursos y puedan tener un mayor impacto en la sociedad. Incluso si se trata de un proyecto individual y de menor alcance, es crucial analizar estos aspectos ya que pueden brindar soluciones para proyectos futuros. 6.1 Dimensi´on econ´omica Una vez analizado el presupuesto total del proyecto, considero que es bastante adecuado para el beneficio que puede proporcionar, ya que puede aportar una gran investigaci´on en el campo del reconocimiento por visi´on por computador. Despu´es de buscar estudios para obtener informaci´on sobre el estado del arte, pude encontrar documentos que comparaban las dos t´ecnicas tradicionales (PCA y LDA), pero ninguno que comparara estas t´ecnicas con las m´as recientes basadas en aprendizaje autom´atico. Dado que entrenar modelos de deep learning con enormes cantidades de datos es caro, la comparaci´on de los resultados de este sistema frente a otros podr´ıa ahorrar mucho dinero y representar un avance econ´omico. Es posible que en algunos casos donde la cantidad de datos sea abordable sea mejor usar t´ecnicas cl´asicas por el beneficio econ´omico que puede acarrear. 6.2 An´alisis econ´omico del proyecto En esta secci´on se analizar´a el coste del proyecto, incluyendo costes de personal, gen´ericos y costes de contingencia e imprevistos. Tambi´en se dise˜nar´a un mecanismo de control de gesti´on para mejorar la optimizaci´on de recursos y evitar desviaciones del presupuesto. 6.2.1 Costes de personal En este apartado se detallar´an los costes de los cuatro perfiles de personal definidos en la planificaci´on de las tareas del proyecto. Cada rol ejecuta diferentes tareas, por ello es l´ogico que tengan diferente remuneraci´on. Los sueldos de los perfiles Jefe de Proyecto, Desarrollador y Analista de resultados se han estimado a partir de [42] buscando el sueldo promedio en Espa˜na para los puestos de jefe de proyectos de software, programador y analista de datos respectivamente. Para el perfil de investigador se ha obtenido el sueldo promedio en [43]. El sueldo bruto por hora de dicho rol se ha calculado en base a la suposici´on que se trabaja a jornada completa de 40 horas. La contribuci´on a la Seguridad Social (SS) se ha estimado en un 30 % del sueldo bruto. Perfil Sueldo bruto SS Retribuci´on Jefe de proyecto 24e/h 7,2e/h 31,2e/h Desarrollador 15e/h 4,5e/h 19,5e/h Investigador 13e/h 3,9e/h 16,9e/h Analista de resultados 12e/h 3,6e/h 15,6e/h Tabla 28: Tabla de los costes por hora del personal del proyecto. Generaci´on propia. A continuaci´on se analizar´a el coste de realizar las tareas del proyecto que genera el personal. La columna coste total es el coste teniendo en cuenta la contribuci´on a la 95
Seguridad Social (30 %). Habiendo hecho todos los c´alculos, el coste total del personal del proyecto es de 16.919e. Id Tarea Tiempo Roles Coste Coste total EP Estudio Previo 60h - 890e1.157e EP1 Estudio de las t´ecnicas 50h I 650e845e EP2 Preparaci´on del entorno de desarrollo 10h D 240e312e GP Gesti´on del Proyecto 135h - 5.720e7.436e GP1 Alcance 15h J 360e468e GP2 Planificaci´on temporal 15h J 360e468e GP3 Presupuesto 5h J 120e156e GP4 Informe de sostenibilidad 5h J 120e156e GP5 Seguimiento del proyecto 20h J, I, D, A 1.280e1.664e GP6 Documentaci´on 60h J, I, D 3.120e4.056e GP7 Defensa del trabajo 15h J 360e468e DT Desarrollo de las T´ecnicas 210h - 5.865e7.624e DT1 Desarrollo de PCA 70h - - - DT1.1 Extracci´on de caracter´ısticas 50h D, I 1.400e1.820e DT1.2 Aplicaci´on del m´etodo de clasificaci´on 15h D, I 420e546e DT1.3 Obtenci´on de resultados 5h D, A 135e175,5e DT2 Desarrollo de PCA 70h - - - DT2.1 Extracci´on de caracter´ısticas 50h D, I 1.400e1.820e DT2.2 Aplicaci´on del m´etodo de clasificaci´on 15h D, I 420e546e DT2.3 Obtenci´on de resultados 5h D, A 135e175,5e DT3 Desarrollo de PCA 70h - - - DT3.1 Extracci´on de caracter´ısticas 50h D, I 1.400e1.820e DT3.2 Aplicaci´on del m´etodo de clasificaci´on 15h D, I 420e546e DT3.3 Obtenci´on de resultados 5h D, A 135e175,5e AR An´alisis de Resultados 45h A 540e702e - Total 450h - 13.015e16.919e Tabla 29: Tabla de costes de personal desglosada por actividades. Generaci´on propia. Leyenda de roles: J - Jefe del proyecto, I - Investigador, D - Desarrollador, A - Analista de resultados 6.2.2 Costes gen´ericos Los costes gen´ericos de un proyecto son aquellos que no est´an directamente vinculados a una actividad espec´ıfica del proyecto, pero son necesarios para su ejecuci´on general. En este proyecto los costes gen´ericos ser´ıan aquellos que provienen del hardware y el software que se tiene que usar, la estancia en el lugar de trabajo contando todos los gastos asociados al mismo, el consumo el´ectrico y la conexi´on a Internet. Teniendo en cuenta que el proyecto se realiza en su totalidad desde casa, se estima el precio del lugar de trabajo mediante un espacio de coworking8de Barcelona [44]. El precio por persona es de 110eal mes e incluye gastos de luz, Internet y agua. El proyecto dura 5 meses aproximadamente y son 4 personas, por tanto el coste ser´ıa de 2.200e. En cuanto al software no tenemos que contemplar ning´un coste ya que todos los programas necesarios son de c´odigo abierto. A continuaci´on se estimar´an los costes de electricidad del ordenador port´atil y del de sobremesa bas´andonos en el coste del kWh es de 0,14535e[45]. 8Un espacio compartido donde trabajadores y profesionales de distintas empresas pueden trabajar juntos en un entorno comunitario. 96
Dispositivo Potencia Horas Consumo Coste Ordenador port´atil 45W 450h 20,25 kWh 2,94e Ordenador de sobremesa 600W 70h 42 kWh 6,10e Total - - - 9e Tabla 30: Tabla de costes del consumo el´ectrico de los ordenadores. Generaci´on propia. Para calcular estos costes se ha hecho la suposici´on de que el port´atil se usa durante todo el proyecto y que el ordenador de sobremesa se usa en la actividad DT3, que dura 70 horas. Se ha calculado la potencia en el peor de los casos, es decir, cuando los ordenadores funcionan a m´aximo rendimiento. Para calcular los costes asociados al hardware utilizado no se puede contemplar la totalidad del coste porque no se utilizar´an durante toda su vida ´util. Por ello, hemos de calcular la amortizaci´on, que es el coste proporcional al tiempo que los usaremos durante el proyecto. La f´ormula que usaremos es (PrecioDispositivo ∗H)/(4 ∗220 ∗8), donde H es el n´umero de horas que usaremos cada dispositivo y el denominador indica el total de horas de uso estimadas durante su vida ´util, asumiendo 4 a˜nos de vida ´util y 220 d´ıas de uso con 8 horas diarias. Dispositivo Precio Horas de uso Amortizaci´on Ordenador port´atil 650e450h 41,5e Ordenador de sobremesa 1100e70h 10,9e Total - - 52,4e Tabla 31: Tabla de costes de los recursos hardware. Generaci´on propia. 6.2.3 Contingencia Las contingencias se refieren a los posibles problemas, eventualidades o dificultades que pueden surgir durante la realizaci´on del proyecto, por ello es importante a˜nadir un sobrecoste para cubrirlas. Como las tecnolog´ıas que se usar´an en el proyecto llevan bastantes a˜nos en desarrollo, se asignar´a un 10 % del presupuesto total para contingencias. Item Coste Contingencia Hardware 52,4e5,24e Software 0e0e Lugar de trabajo 2200e220e Consumo el´ectrico 9,04e0,9e Personal 16.919e1.691,9e Total - 1.918e Tabla 32: Tabla de contingencias del 10 %. Generaci´on propia. 6.2.4 Imprevistos Se ha de calcular la partida econ´omica de los imprevistos definidos en el apartado de gesti´on del riesgo. Este coste ir´a en funci´on de la probabilidad de ocurrencia de cada riesgo y la cantidad de horas necesarias para solventarlo. 97
•Dificultades inesperadas: En caso de que aparezcan dificultades imprevistas, se a˜nadir´an 40 horas extras de desarrollo. El coste de las horas del desarrollador ser´ıa de 960 e. •Fallos en los equipos: Si ocurre alg´un fallo grave en alguno de los equipos ser´a necesario comprar uno nuevo. El coste de los dos equipos es de 1.100+650 = 1.750e. •Generalizaci´on de modelos pobre: Para este imprevisto se asignan 20 horas del desarrollador, debido a que tendr´a que modificar los modelos para mejorar su generalizaci´on. El coste de estas horas ser´a de 300e. •Complejidad computacional: Tal como se comentaba en el apartado de gesti´on del riesgo, es posible que algunos modelos sean demasiado costosos para los equipos que se usan. Se ha considerado reservar 10 horas de desarrollo y 10 de investigaci´on para tratar de solucionar este problema. El coste de estas horas ser´ıa de 280e. •Interpretabilidad de los modelos: En caso de que los modelos sean dif´ıciles de interpretar, se han reservado 10 horas de desarrollo y 5 de an´alisis para tratar de buscar m´etodos para explicarlos. El coste ser´ıa de 210e. Imprevisto Probabilidad Coste Coste final Dificultades inesperadas 30 % 960e288e Fallos en los equipos 5 % 1.750e87,5e Generalizaci´on de modelos pobre 10 % 300e30e Complejidad computacional 10 % 280e28e Interpretabilidad de los modelos 15 % 210e31,5e Total - - 465e Tabla 33: Tabla con el coste final de cada imprevisto. Generaci´on propia. 6.2.5 Coste total Una vez contemplados todos los costes del proyecto ya podemos conocer el presupuesto final, que se presenta en la siguiente tabla. Item Coste Personal 16.919e Lugar de trabajo 2.200e Hardware 52,4e Software 0e Consumo el´ectrico 9e Contingencias 1.918e Imprevistos 465e Total 21.563e Tabla 34: Tabla con el presupuesto final del proyecto. Generaci´on propia. En caso de no necesitar las partidas de contingencias e imprevistos ya que no se hayan producido incidentes ni se haya sobrepasado el coste, se aprovechar´a el presupuesto para desarrollar una aplicaci´on de reconocimiento facial que implemente la t´ecnica con 98
mejores resultados que se han investigado para que los usuarios puedan experimentar. Se considera que el presupuesto sobrante, que son 2.383e, es m´as que suficiente para construir una aplicaci´on de estas caracter´ısticas. 99
6.3 Dimensi´on social En cuanto al aspecto personal, la realizaci´on de este TFG me va a aportar mucho conocimiento en el ´area de la visi´on por computador. Teniendo en cuenta que he estado interesado en esta rama de la inteligencia artificial desde hace tiempo y tiene mucho futuro, considero este proyecto muy enriquecedor a nivel personal. Este proyecto puede tener impacto en la sociedad, ya que al optimizar el uso de los m´etodos de reconocimiento facial se pueden mejorar los sistemas de seguridad y vigilancia, aplicaciones en la salud como herramientas de diagn´ostico y la interacci´on personacomputadora. Considero que este TFG tiene una necesidad real ya que veo indispensable tener un punto de vista anal´ıtico de las t´ecnicas usadas en reconocimiento facial, as´ı como por los motivos econ´omicos y sociales mencionados anteriormente. 6.3.1 Impacto de la visi´on por computador en la sociedad La visi´on por computador juega un papel cada vez m´as importante en la sociedad, utilizado en aplicaciones como el desbloqueo de tel´efonos y la asistencia en la conducci´on. Sin embargo, los errores en estos algoritmos pueden tener consecuencias significativas, como la identificaci´on err´onea de personas en contextos legales y variaciones en el rendimiento seg´un atributos protegidos como g´enero, raza o edad. La comunidad de visi´on por computador debe estar consciente de estos impactos y trabajar para mitigarlos [46] [47] [48] [49] [50] [51] [52] [53]. 6.3.2 Just´ıcia algor´ıtmica La justicia algor´ıtmica es crucial para garantizar que los algoritmos de visi´on por computador no perpet´uen o amplifiquen sesgos existentes. Los sesgos pueden surgir de correlaciones en los datos de entrenamiento, y es necesario desarrollar m´etodos para identificar y mitigar estos sesgos [54] [55] [56] [57]. El an´alisis facial debe ser evaluado por su rendimiento en diferentes grupos demogr´aficos. Varios estudios han mostrado variaciones significativas en las tasas de falsos positivos y negativos seg´un el origen demogr´afico, lo que subraya la importancia de reportar estas tasas para cada grupo [58] [59] [60]. Los sesgos en los conjuntos de datos de entrenamiento pueden influir en los algoritmos. Las diferencias en los resultados de reconocimiento de objetos seg´un el origen socioecon´omico de las im´agenes subrayan la necesidad de representaciones equilibradas en los conjuntos de datos [61] [62] [63]. Una red generativa adversaria (GAN, por sus siglas en ingl´es) es un tipo de arquitectura de red neuronal utilizada para generar datos nuevos y realistas a partir de un conjunto de datos de entrenamiento. Estas redes se pueden usar para generar im´agenes sint´eticas para equilibrar dichos sesgos en los conjuntos de datos [64] [65] [54] [66]. 6.3.3 ´ Etica en la visi´on por computador Los investigadores deben considerar cuestiones ´eticas m´as all´a de los sesgos algor´ıtmicos. Esto incluye el uso de an´alisis facial en procesos de contrataci´on, vigilancia p´ublica, y la posible creencia ciega en los resultados de los algoritmos. Existe una preocupaci´on sobre la tendencia de las personas a creer ciegamente en los resultados de las m´aquinas. Esta confianza puede dificultar la correcci´on de errores cometidos por algoritmos, ya que las 100
[48] Foad Hamidi, Morgan K. Scheuerman, and Stacy M. Branham. Gender recognition or gender reductionism?: The social implications of embedded gender recognition systems. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, pages 1–13. ACM, 2018. [49] Clare Garvie, Alvaro Bedoya, and Jonathan Frankle. The perpetual line-up, 2019. [50] Ben Hutchinson and Margaret Mitchell. 50 years of test (un)fairness: Lessons for machine learning. In Proceedings of the Conference on Fairness, Accountability, and Transparency, pages 49–58. ACM, 2019. [51] Cynthia Dwork, Moritz Hardt, Toniann Pitassi, Omer Reingold, and Richard Zemel. Fairness through awareness. In Proceedings of the Third Innovations in Theoretical Computer Science Conference, pages 214–226. ACM, 2012. [52] Solon Barocas, Moritz Hardt, and Arvind Narayanan. Fairness and Machine Learning. fairmlbook.org, 2019. [53] Moritz Hardt. Mlss 2020, t¨ubingen, 2020. Machine Learning Summer School (MLSS), T¨ubingen. [54] Jieyu Zhao, Tianlu Wang, Mark Yatskar, Vicente Ordonez, and Kai-Wei Chang. Men also like shopping: Reducing gender bias amplification using corpus-level constraints. In Proceedings of the Conference on Empirical Methods in Natural Language Processing (EMNLP). ACL, 2017. [55] Brian d’Alessandro, Cathy O’Neil, and Tom LaGatta. Conscientious classification: A data scientist’s guide to discrimination-aware classification, 2017. Preprint. [56] Safiya Umoja Noble. Algorithms of Oppression. NYU Press, Inc., 2018. [57] Joy Buolamwini and Timnit Gebru. Intersectional accuracy disparities in commercial gender classification. In Proceedings of Machine Learning Research Conference on Fairness, Accountability, and Transparency, volume 81, pages 1–15, 2018. [58] Brendan F. Klare, Mark J. Burge, Joshua C. Klontz, Richard W. V. Bruegge, and Anil K. Jain. Face recognition performance: Role of demographic information. IEEE Transactions on Information Forensics and Security, 7(6):1789–1801, 2012. [59] Patrick Grother, Mei Ngan, and Kayee Hanaoka. Face recognition vendor test (frvt). part 3: Demographic effects. NISTIR 8280, NIST, 2019. [60] John G. Cavazos, P. Jonathon Phillips, Carlos D. Castillo, and Alice J. O’Toole. Accuracy comparison across face recognition algorithms: Where are we on measuring race bias? IEEE Transactions on Biometrics, Behavior, and Identity Science, 3(1):101–111, 2021. [61] Vijay V. Ramaswamy, William T. Freeman, Fei-Fei Li, Pietro Perona, Antonio Torralba, and Olga Russakovsky. The future of computer vision datasets. In Computer Vision and Pattern Recognition Workshop (CVPRW), 2021. [62] Antonio Torralba and Alexei Efros. Unbiased look at dataset bias. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2011. 107
[63] Terrance DeVries, Ishan Misra, Chen Wang, and Laurens van der Maaten. Does object recognition work for everyone? In Computer Vision and Pattern Recognition Workshop (CVPRW), 2019. [64] Prasanna Sattigeri, Samuel C. Hoffman, Vijay Chenthamarakshan, and Kush R. Varshney. Fairness gan: Generating datasets with fairness properties using a generative adversarial network. In International Conference on Learning Representations (ICLR) Workshop, 2019. [65] Vijay V. Ramaswamy, Stella S. Y. Kim, and Olga Russakovsky. Fair attribute classification through latent space de-biasing. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2021. [66] Zijian Wang, Karan Qinami, Ioannis Christou Karakozis, Kyle Genova, Pratyush Nair, Kenji Hata, and Olga Russakovsky. Towards fairness in visual recognition: Effective strategies for bias mitigation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2020. [67] Timnit Gebru and Emily Denton. Cvpr workshop: Beyond fairness: Towards a just, equitable, and accountable computer vision, 2021. Workshop. [68] Ruha Benjamin. Race After Technology. Polity, 2019. [69] Jeremy Kahn. Hirevue drops facial monitoring amid ai algorithm audit. Fortune, 2021. [70] Paul Mozur. One month, 500,000 face scans. New York Times, 2019. [71] M. L. Cummings. Automation bias in intelligent time critical decision support systems. In AIAA Third Intelligent Systems Conference, 2004. [72] Cynthia L. Bennett, Casey Gleason, Morgan K. Scheuerman, Jeffrey P. Bigham, Amy Guo, and Adam To. ’it’s complicated’: Negotiating accessibility and (mis)representation in image descriptions of race, gender, and disability. In CHI Conference on Human Factors in Computing Systems, 2021. [73] Sendhil Mullainathan. Biased algorithms are easier to fix than biased people. New York Times, 2019. [74] Judith Jarvis Thomson. The trolley problem. The Yale Law Journal, 94(6):1395– 1415, 1985. [75] Donald J. Dalmotas, Roger M. Hurley, and Alan German. Air bag deployments involving restrained occupants. SAE Transactions, 104(6):1507–1512, 1985. 108