Trabajo de grado - Pregrado
Implementación y comparación de dos algoritmos supervisados en redes neuronales convolucionales orientadas a la detección de rostros para ejecutarse en hardware de bajos recursos
Registro en:
Universidad Tecnológica de Pereira
Repositorio institucional Universidad Tecnológica de Pereira
Autor
Medina Gonzalez , Steven
Institución
Resumen
¿Es posible realizar la implementación, entrenamiento y ejecución de algoritmos supervisados para deep
learning en equipos de bajos recursos?
Bajo esta premisa se redacta el presente trabajo. Se trata de abordar uno de los inconvenientes que se
presentan en la implementación de redes neuronales artificiales: analizar y determinar si es posible el
entrenamiento, validación y prueba de redes neuronales convolucionales sobre hardware de bajos
recursos. Para esto se implementarán dos algoritmos de entrenamiento supervisado para verificar el
cumplimiento de los requisitos que se necesitan para su correcto desarrollo y funcionamiento. Se
utilizarán 2 equipos con componentes diferentes, un equipo de bajos requisitos y otro con componentes
más dedicados. ¿Is it possible to implement, train, and run supervised algorithms for deep learning in low-resource
devices?
The afore question guides the composition of the present work. It is about addressing one of the
drawbacks that occur in the implementation of artificial neural networks: analyze and determine if it is
possible to train, validate, and test convolutional neural networks on low-resource hardware. In order to
do so, this project implements two supervised training algorithms to verify the fulfillment of the
requirements that are needed for its correct development and operation. Two devices with different
components will be used, one with low-requirements and the other with better components. Pregrado Ingeniero(a) de Sistemas y Computación CONTENIDO
Introducción 7
1. Planteamiento del problema 8
2. Justificación 9
3. Hipótesis 10
4. Objetivos 11
4.1. Objetivo general 11
4.2. Objetivos específicos 11
5. Marco de referencia 12
5.1. Marco teórico 12
5.2. Marco de antecedentes 13
5.3. Marco conceptual 15
6. Estado del arte 18
6.1. Machine Learning 18
6.2. Redes neuronales 19
6.2.1. Perceptrón 21
6.2.2. Perceptrón multicapa 22
6.2.3. Entrenamiento, validación y prueba de una red neuronal artificial 23
6.2.4. Proceso de aprendizaje de una red neuronal artificial 24
6.2.5. Funciones de activación 28
6.2.6. Descenso de gradiente estocástico 30
6.3. Deep Learning 31
6.4. Redes Neuronales Convolucionales 33
6.4.1. Capa de procesamiento de imágenes 35
6.4.2. Capa convolucional 35
6.4.3. Capa de submuestreo 38
6.4.4. Capa de clasificación 40
6.4.5. Capa dropout 40
7. Diseño metodológico 42
8. Elección de algoritmos 43
9. Implementación de algoritmos 46
9.1. HaarDetection 46
9.1.1. Librerías 46
9.1.2. Obtención del dataset 47
9.1.3. Entrenamiento de la red 51
9.1.4. Ejecución de la clasificación 53
9.2. MaskDetection 54
9.2.1. Librerías 54
9.2.2. Obtención del dataset 55
9.2.3. Entrenamiento de la red 57
9.2.4. Ejecución de la clasificación 61
10. Entrenamiento 63
10.1. Entrenamiento en el primer equipo 64
10.2. Entrenamiento en el Segundo equipo 69
10.3. Resultados obtenidos del entrenamiento 74
11. Pruebas 75
11.1. Resultados entre las implementaciones 76
12. Problemas encontrados 78
13. Conclusiones 80
14. Futuras mejoras 81
15. Bibliografía 82