ESCUELA DE SISTEMAS Y COMPUTACIÓN
TÍTULO
SISTEMA PARA LA CLASIFICACIÓN AUTOMÁTICA DE PECES ENDÉMICOS DEL ECUADOR USANDO TÉCNICAS DE
APRENDIZAJE PROFUNDO
LÍNEA DE INVESTIGACIÓN
AUTOMATISMOS Y APLICACIONES INTELIGENTES
PREVIO A LA OBTENCIÓN DE TÍTULO DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
AUTOR
SÁNCHEZ GUASHPA ANTHONY ELVIS
ASESOR
PICO VALENCIA PABLO (PhD)
ESMERALDAS, SEPTIEMBRE DE 2021
II
TRIBUNAL DE GRADUACIÓN
Trabajo de tesis aprobado luego de haber dado cumplimiento a los requisitos exigidos por el Reglamento de Grado de la PUCESE previa la obtención del título de INGENIERO DE SISTEMAS Y COMPUTACIÓN.
...
PhD. Pablo Pico Valencia Tutor de Tesis
...
Mgt. Evelin Flores García Lector 1
...
Mgt. José Carvajal Carvajal Lector 2 ...
Mgt. Susana Patiño Rosado Coordinadora de la Escuela de Sistemas y Computación
III
AUTORÍA
Yo, ANTHONY ELVIS SÁNCHEZ GUAHSPA portador de la cédula de identidad No.
0802284968 declaro que los resultados obtenidos en la investigación que presento como informe final, previo a la obtención del título de “Ingeniero de Sistemas y Computación”
son absolutamente originales, auténticos y personales.
En tal virtud, declaro que el contenido, las conclusiones y los efectos legales y académicos que se desprenden del trabajo propuesto de investigación y luego de la redacción de este documento son y serán de mi sola, exclusiva responsabilidad legal y académica.
...
Anthony Elvis Sánchez Guashpa C.I. 0802284968
IV
CERTIFICACIÓN
PhD. Pablo Pico Valencia, docente investigador de la PUCE-Esmeraldas, certifica que:
La tesis de grado realizada por ANTHONY ELVIS SÁNCHEZ GUASHPA, bajo el título
“SISTEMA PARA LA CLASIFICACIÓN AUTOMÁTICA DE PECES ENDÉMICOS DEL ECUADOR USANDO TÉCNICAS DE APRENDIZAJE PROFUNDO”, reúne los requisitos de calidad, originalidad y presentación exigibles a una investigación científica y que han sido incorporadas al documento final las sugerencias realizadas, en consecuencia, está en condiciones de ser sometida a la valoración del Tribunal encargado de juzgarla.
Y para que conste a los efectos oportunos, firma la presente en Esmeraldas, septiembre del 2021.
PhD. Pablo Pico Valencia Asesor de Tesis
V
DEDICATORIA
La presente investigación es dedicada con mucho amor a mis padres que siempre velaron por mi bien estar y estuvieron pendientes en este logro, con mucho cariño para ustedes.
A mis hermanos, que siempre estuvieron en el día a día apoyándome y motivándome para conseguir este anhelo.
VI
AGRADECIMIENTO
Primero dar gracias a Dios por darme la salud, sabiduría, entendimiento y perseverancia en mis estudios y por brindarme el conocimiento del maravilloso mundo de la ciencias computacionales e informática.
A mis padres Fernando Sánchez Zamora y Alexandra Guashpa Proaño por su apoyo moral, sus enseñanzas, valores y su amor incondicional, gracias por darme la vida y por permitirme estar a su lado, este éxito es de ustedes.
A mis hermanos Richard Sánchez, Christopher Sánchez y Jireth Sánchez por sus enseñanzas y consejos, muchas gracias por ser parte de mi vida, para ustedes es este logro.
A mis profesores que aportaron con mi formación profesional, les quedo agradecido por sus conocimientos impartidos a lo largo de toda la carrera universitaria, gracias.
Mis más sinceras gratitudes, mil gracias a todos a ustedes.
VII ÍNDICE DE CONTENIDO
TRIBUNAL DE GRADUACIÓN II
AUTORÍA III
CERTIFICACIÓN IV
DEDICATORIA V
AGRADECIMIENTO VI
RESUMEN XI
ABSTRACT XII
INTRODUCCIÓN 1
PRESENTACIÓN DEL PROBLEMA 1
PLANTEAMIENTO DEL PROBLEMA 2
JUSTIFICACIÓN 3
OBJETIVOS 4
CONTRIBUCIONES CIENTÍFICAS RELACIONADAS 4
CAPÍTULO I: MARCO TEÓRICO 5
1.1 Bases teóricas conceptuales 5
1.1.1. Ictiofauna fluvial del ecuador 5
1.1.2. Aprendizaje profundo 10
1.1.3. Redes neuronales convolucionales (CNN) 19
1.2 Antecedentes de la investigación 31
1.3 Fundamentación legal 34
CAPÍTULO II: METODOLOGÍA 37
2.1 Delimitación de la investigación 37
2.2 Tipo de investigación 37
2.3 Métodos de investigación 38
2.4 Población y muestra 38
2.5 Operacionalización de variables 39
2.6 Técnicas de investigación e instrumento de recolección de datos 42
2.7 Técnicas de procesamiento y análisis de datos 44
2.8 Herramientas utilizadas 45
2.9 Normas éticas 45
CAPÍTULO III: RESULTADOS 47
3.1 Lineamientos de clasificación de peces desde la realidad ecuatoriana 47
2.1.1. Set de datos 52
3.2 Clasificador propuesto 53
2.2.1. Ambiente de desarrollo 53
2.2.2. Arquitectura de la red convolucional 54
2.2.3. Proceso convolutivo y submuestreo 55
2.2.4. Proceso de preprocesamiento de imágenes 57
2.2.5. Proceso de entrenamiento del modelo 57
3.3 Evaluación del clasificador 57
2.3.1. Pruebas de modelo 57
2.3.2. Matriz de confusión 58
VIII
3.4 Sistema de clasificación automática de peces 59
CAPÍTULO IV: DISCUSIÓN 61
CAPÍTULO V: CONCLUSIONES Y RECOMENDACIONES 64
5.1.CONCLUSIONES 64
5.2.RECOMENDACIONES 65
REFERENCIAS BIBLIOGRÁFICAS 67
ANEXOS 73
ANEXO 1.BANCO PREGUNTAS DE LA ENTREVISTA 74 ANEXO 2FICHA DE OBSERVACIÓN PARA LA CLASIFICACIÓN DE PECES DE LA VERTIENTE
OCCIDENTAL DEL ECUADOR [19]. 75
ANEXO 3.FICHA DE DISEÑO EXPERIMENTAL PARA EL MODELO DE RED CONVOLUCIONAL. 81
IX
Índice de figuras
Figura 1 Estructura jerárquica de la cuenca hidrográfica. 6
Figura 2 Mapa de Cuencas Hidrográficas del Ecuador. 7
Figura 3 Mapa de zonas Ictiohidrográficas. 8
Figura 4 Clasificación de familias de peces endémicos del Ecuador. 9 Figura 5 Analogía entre una neurona biológica (a) y artificial (b). 12
Figura 6 Diagrama de una neurona artificial simple. 14
Figura 7 Esquema de redes neuronales. 14
Figura 8 Esquema gráfico de una MLP. 15
Figura 9 Tipos de arquitecturas en RNN. 16
Figura 10 Red LSTM básica. 17
Figura 11 Arquitectura CNN. 20
Figura 12 Clasificación de imágenes en una CNN. 21
Figura 13 Esquema de red convolucional. 22
Figura 14 Proceso de convolución en los filtro de un volumen de entrada 7x7x3, que
genera un mapa de características de 5x5. 23
Figura 15 Aplicación del padding y filtro en un vector de entrada 4x4x3. 25 Figura 16 Capa de submuestreo max pooling (azul) y average pooling (gris) con
stride=1. 26
Figura 17 Representación gráfica del dropout. 30
Figura 18 Conversión de mapas de características a vector plano. 30
Figura 19. Clasificación taxonómica de peces. 48
Figura 20 Clases de géneros de peces. 51
Figura 21 Imágenes organizadas de acuerdo con los 52 géneros de peces sujetos a
estudio. 53
Figura 22 Precisión de modelos durante el entrenamiento de imágenes de
entrenamiento y validación. 56
Figura 23 Arquitectura de modelo f CNN, elaboración propia 57
Figura 24 Predicción de imágenes del modelo f. 58
Figura 25 Matriz de confusión del modelo creado. 59
Figura 26 Sistema automático clasificador de peces endémicos del Ecuador 60
X
Índice de tablas
Tabla 1. Zonas Ictiohidrográficas del Ecuador 8
Tabla 2 Operacionalización de las variables sujetas a estudio 40
Tabla 3 Ambiente de desarrollo 54
Tabla 4. Exactitud de los modelos convolucionales configurados y entrenados 54
XI
RESUMEN
La presente investigación muestra la creación de un sistema clasificador de imágenes de peces endémicos del Ecuador. Este sistema predice imágenes de peces de acuerdo a la taxonomía de géneros a la que pertenece cada pez. Para crear el modelo de aprendizaje profundo, se usó una arquitectura de red neuronal convolucional o CNN, esta utilizó cuatro capas convolucionales usando la función de activación Relu, cuatro capas de submuestreos usando un Max Pooling, un total de 480 filtros en las capas convolucionales, una capa Flatten, una capa de Dropout al 0.3%, una capa densa con 256 neuronas interconectadas y una capa densa utilizando SoftMax. Para el entrenamiento automático se creó un conjunto de datos de 36140 imágenes con una estratificación de datos del 80% para las imágenes de entrenamiento y 20% para las de validación. El conjunto de datos se compuso de imágenes de 94 especies de peces endémicos y nativos del Ecuador distribuidos por 6 cuencas hidrográficas que son: Mira Mataje, Santiago Cayapas, Esmeraldas, Guayas, Santa Rosa y Catamayo, además se categorizaron a las imágenes por 52 géneros. Finalmente, se creó un modelo de red convolucional que se entrenó con dicho set de datos teniendo un grado de precisión del 97,55 %. Dicho modelo se entrenó con una tasa de aprendizaje del 0.0001, 50 épocas 905 iteraciones por cada época. Conjuntamente, este modelo fue integrado en una interfaz gráfica para usuarios no especializados permitiendo realizar la predicción de imágenes de peces endémicos y nativos perteneciente al Ecuador con un alto porcentaje de efectividad.
Palabras clave: red neuronal convolucional, pez, endémico, Ecuador, aprendizaje profundo.
XII
ABSTRACT
The present study shows the creation of an image classifier system for endemic fishes of Ecuador. This system predicts fish images according to the taxonomy of genders to which each fish belongs. To create the deep learning model, a convolutional neural network or CNN architecture was used, it used four convolutional layers using the Relu activation function, four subsampling layers using Max Pooling, a total of 480 filters in the convolutional layers, one Flatten layer, a 0.3% Dropout layer, a dense layer with 256 interconnected neurons, and a dense layer using SoftMax. For automatic training, a dataset of 36140 images was created with a data stratification of 80% for training images and 20% for validation images. The dataset was composed of images of 94 endemic and native fish species of Ecuador distributed by 6 watersheds which are: Mira Mataje, Santiago Cayapas, Esmeraldas, Guayas, Santa Rosa and Catamayo, in addition the images were categorized by 52 genera. Finally, a convolutional network model was created and trained with this dataset with an accuracy of 97.55%. This model was trained with a learning rate of 0.0001, 50 epochs and 905 iterations for each epoch. Together, this model was integrated into a graphical interface for non-specialized users allowing the prediction of images of endemic and native fish belonging to Ecuador with a high percentage of effectiveness.
Keywords: convolutional neural networks, endemic, fish, Ecuador, deep learning
1
INTRODUCCIÓN
Presentación del problema
Las redes neuronales convolucionales se han ganado un puesto reconocible en el estudio del aprendizaje profundo por los avances en cuanto a la clasificación de patrones ya que poseen un gran potencial para satisfacer las necesidades de reconocer objetos en imágenes [1]. Estas redes han mostrado ser capaces de identificar y analizar características de imágenes a través de clasificadores especializados. Al respecto, un clasificador de esta naturaleza, mapea los pixeles de una imagen en búsqueda de patrones que determinan características para luego ser clasificadas usando una estructura constituida de capas intermedias [2]. Estas características inherentes a las redes neuronales convolucionales han permitido el desarrollo de clasificadores automáticos muy eficientes, reduciendo el porcentaje de tasa de error en la clasificación de objetos dentro de un conjunto de imágenes [3].
El aprendizaje profundo es importante en la actualidad teniendo usos relevantes como el detectar, comparar, identificar y clasificar objetos de forma automática que permiten resolver problemas y automatizar tareas complejas de aprendizaje automático como la clasificación de malware, noticias falsas y objetos mediante redes convolucionales [4], [5], [6], [7]. A través del aprendizaje profundo, y específicamente a través de las redes convolucionales, ha sido posible desarrollar diversos clasificadores enfocados en llevar a cabo la detección, clasificación y descubrimiento de nuevas especies de peces [8], [9], [10].
El potencial de los modelos entrenados para clasificar peces dentro y fuera del agua han motivado a investigadores a desarrollar sistemas que automaticen el proceso de identificación y clasificación, proceso generalmente realizado por biólogos expertos. Este trabajo propone aprovechar la Inteligencia Artificial, y específicamente las redes neuronales convolucionales, para entrenar un modelo que permita clasificar de forma automática peces endémicos del Ecuador – país que al año 2012 registró más de 900 tipos de peces de agua dulce dentro de sus cuencas hidrográficas [11].
2 Planteamiento del problema
Para un ser humano no es de gran dificultad identificar un objeto o cinco objetos a la vez, pero, qué ocurre cuando son miles e incluso millones de objetos; esto se convierte en una tarea muy ardua que implica mucho tiempo y dedicación inclusive cuando son muchas las características que diferencian un hecho real de una imagen. Surge entonces, la interrogante respecto a ¿cómo la tecnología ha apoyado el proceso de la clasificación de objetos para la identificación de patrones? En este sentido, existen diversas técnicas de la Inteligencia Artificial empleadas para identificar patrones en una imagen que se apoyan de algoritmos y herramientas de software de visión artificial [12], y aprendizaje profundo [13], [14].
El proceso de clasificación de las especies de peces de manera manual en muchas circunstancias es laborioso, largo y costoso. Al mismo tiempo es susceptible a que las personas que lleven a cabo el proceso de clasificación puedan cometer errores debido a inexperiencias o la existencia de pocos expertos en el campo. Este es un problema ya que para llevar a cabo la identificación y clasificación de peces y de cualquier otra especie de animal, es necesario un experto con amplia experiencia, y muchas veces no se dispone de él. Como una solución alternativa se han desarrollado sistemas que permiten automatizar este proceso y a través de software especializados llevar a cabo la categorización de peces.
Para ello, las redes convolucionales se han desempeñado con mucho éxito debido a que poseen una gran eficacia para la extracción de características y tareas de clasificación de imágenes [15], [16]. Además, las redes convolucionales manejan un porcentaje de error que es modesto, por ende, es verídico su uso para la categorización de peces (superior al 99% de precisión) [17]. En efecto, se han desarrollado modelos de redes neuronales ligeros de alto rendimiento para detección de peces con resultados muy favorables [18].
No obstante, la problemática radica en que muchos de los clasificadores propuestos en la literatura dependen en gran medida del set de datos empleado para realizar su entrenamiento, por lo que generalmente no se ajustan a realidades específicas como es el caso las especies de peces endémicas del Ecuador.
A nivel de Ecuador, se tienen registradas 112 especies de peces endémicas (i.e., Gobiidae, Bryconidae, Curimatidae) [19]. Muchas de ellas, poseen características similares, lo que a un humano no experto y con amplia experiencia puede confundirlo ya que su estudio demanda de mucho tiempo para llevar a cabo el censo visual. Por lo tanto, se ha planteado la creación de un sistema clasificador de peces para usuarios que les
3 permita identificar y reconocer distintos géneros de peces del Ecuador, así como también, su categorización de acuerdo con la familia a la que pertenece, según su hábitat de reproducción y de acuerdo con su período de vida.
Justificación
La clasificación de peces para los investigadores y científicos resulta una tarea ardua que implica el uso de técnicas tradicionales y manuales como la captura de peces, censo visual o la medición física de cada uno de ellos. Sin mencionar el riesgo de peligro que se expone en ambientes hostiles o aguas profundas siendo un trabajo laborioso, extenso y costoso que utiliza muchos recursos para llevar a cabo esta tarea. Por lo tanto, se ha desarrollado un sistema automático que permite reconocer peces de tal manera que se optimice el tiempo y su identificación sea rápida y óptima y con la mínima intervención humana. De este modo se ha desarrollado el sistema clasificador de peces utilizando aprendizaje profundo con redes neuronales que ha permitido clasificarlos de manera rápida y eficaz, ahorrando tiempo y esfuerzo para los investigadores.
Es importante mencionar que para un ser humano existe la fatiga a la hora de clasificar peces, y es muy probable que cometa errores debido al cansancio mental. En tal sentido la clasificación de peces debe ser de alta precisión. Ello ha motivado a usar las redes neuronales convolucionales debido a que han demostrado ser una técnica de gran ayuda en el reconocimiento de patrones ofreciendo altos grados de exactitud en procesos de clasificación automática, lo que mitigará errores al clasificar e identificar peces endémicos de una zona geográfica específica como la que se propone en este estudio [20]
[12].
Identificar y categorizar peces sería un desafío muy grande para usuarios convencionales sin amplios conocimientos en ictiología debido a la diversidad de peces en todo el mundo. La misma realidad viven los científicos de las ciencias de la vida en el Ecuador. Por esta razón, es importante contar con una herramienta que sirva de apoyo a estudiantes, profesores, científicos y gestores de proyectos ambientalistas que permita, por un lado, crear un set de datos de peces endémicos del Ecuador (útil para éste y futuros estudios), y, por otro lado, disponer de un clasificador que permita identificar los recursos ictiológicos de acuerdo con diferentes criterios, según se lo requiera; esto es, familia, hábitat, peces enfermos, entre otros. Así, se beneficiarán investigadores y científicos en el ámbito de la biología marina ya que en sus correspondientes estudios podrían emplear
4 el sistema para optimizar el tiempo en sus investigaciones. Además, se beneficiaría el Ministerio del Ambiente debido a que se dispondría de una base de datos digital (set de datos) con las especies endémicas de Ecuador, de manera que exista un registro digital complementario a los catálogos impresos existentes.
Objetivos General
Crear un modelo de clasificación usando técnicas de aprendizaje profundo para apoyar a investigadores de las ciencias de la vida en la clasificación automática de peces endémicos del Ecuador de acuerdo con la familia a la que pertenecen.
Específicos
a) Estudiar los diferentes tipos de peces endémicos del Ecuador para crear un set de datos digital especializado.
b) Investigar las bases teóricas-científicas del modelo de aprendizaje profundo basado en redes convolucionales para llevar a cabo tareas de clasificación automática basada en imágenes.
c) Entrenar un modelo de red convolucional para llevar a cabo la clasificación automática de peces endémicos del Ecuador.
d) Desarrollar una interfaz gráfica de usuario que integre el modelo de clasificación automático desarrollado a fin de que usuarios no especializados puedan llevar a cabo la clasificación de peces endémicos ecuatorianos.
Contribuciones científicas relacionadas
La investigación ha dado como fruto una publicación enviada a un congreso internacional.
Sánchez-Guashpa, Anthony; Pico-Valencia, Pablo; Jiménez, Pedro; Holgado-Terriza, Juan A. SISTEMA DE CLASIFICACIÓN AUTOMÁTICO DE PECES ENDÉMICOS DEL ECUADOR USANDO REDES CONVOLUCIONALES. ICITS’22. The International Conference on Information Technology & Systems. (Aceptado para publicación).
5
CAPÍTULO I: MARCO TEÓRICO
1.1 Bases teóricas conceptuales
En este apartado se describen las principales bases teóricas-conceptuales relacionadas con la ictiofauna del Ecuador, los principales conceptos que describen de manera técnico- científica a las redes de aprendizaje profundo en general, enfatizando principalmente en el modelo de red convolucional.
1.1.1. Ictiofauna fluvial del Ecuador
La ictiofauna se refiere al conjunto de especies de peces que se localizan en una determinada región biogeográfica a lo largo de un sistema fluvial [11], [21]–[23]. Desde finales del siglo XIX hasta mediados de siglo XX, los ictiólogos (personas dedicadas al estudio de los peces), han venido coleccionando y documentando la extensa diversidad de peces dentro de la geografía fluvial del Ecuador. En 1864 el Dr. Günter junto a las colecciones del Sr. Fraser sobre los peces de agua fría de los Andes del Occidente del Ecuador publican los primeros catálogos de ictiofauna procedentes de este país Latinoamericano [24].
1.1.1.1. Sistemas hidrográficos del Ecuador
Según el Consejo Nacional de Recursos Hídricos (CNRH) y el grupo Interinstitucional para Sistemas Hidrográfico conjunto al Instituto Nacional de Meteorología e Hidrología (INAMHI), definen a los sistemas hidrográficos como la agrupación de cuencas que a su vez se dividen en subcuencas, donde cumplen con una homogeneidad climática y espacial.
Una cuenca hidrográfica desde el punto de vista de la unidad de planeación es una connotación física, biológica, económica, social y cultural [25]. Además, se puede considerar una cuenca como un sistema de recepción y captación de aguas superficiales donde intervienen recursos naturales y humanos, los cuales, hacen uso de los recursos hídricos dentro del sistema. En este sentido, las cuencas se relacionan de una manera u otra con los recursos hídricos, los recursos naturales y las personas [26]. Por otro lado, se define a una sub cuenca como el territorio que cuenta con menor superficie dentro de una
6 cuenca la cual conlleva al drenaje de agua que conduce a una cuenca con mayor superficie [27].
La cuenca hidrográfica es un territorio que está delimitado por la propia naturaleza y por zonas de escurrimientos de las aguas que convergen hacia un mismo cauce. En este territorio se unifican aguas de un rio, lago, pantano o incluso del mar. Las aguas de escurrimiento son aquellas que recorren por la superficie del suelo y provienen de lluvias y riego que posteriormente desemboca en corrientes fluviales, quebradas y ríos [26].
Como muestra la Figura 1, la estructura de una cuenca es un tipo de embudo natural donde sus bordes son los vértices de las montañas y la boca es la desembocadura del rio [28].
Figura 1 Estructura jerárquica de la cuenca hidrográfica [26].
1.1.1.2. Mapas hidrográficos del Ecuador
Los mapas hidrográficos del Ecuador proporcionados por el INAMHI establecen los límites de las cuencas hidrográficas del Ecuador. El Consejo Nacional de Recursos Hídricos (CNRH) define las divisiones de las cuencas, y establece 31 sistemas hidrográficos correspondientes al Ecuador como se muestra en la Figura 2. De estos 31 sistemas hidrográficos, 24 pertenecen a la vertiente del Océano Pacífico y siete a la
7 vertiente del Río Amazonas [27]. Estas delimitaciones son necesarias para definir las zonas ictiohidrográficas de un territorio.
La división hidrográfica por cuencas dentro del Ecuador consta de un total de 79 cuencas que a su vez se subdividen en 139 subcuencas mismas que se dividen de acuerdo con el sistema hidrográfico correspondiente.
Figura 2 Mapa de Cuencas Hidrográficas del Ecuador [29].
1.1.1.3. Zonas ictiohidrográfica
En el año 2012 se definen 11 zonas ictiohidrográficas que se encuentran dentro de la delimitación de los 31 sistemas hidrográficos de las cuencas del Ecuador. Esto ayudó a establecer los límites de las zonas ictiohidrográficas del occidente ecuatoriano. Dichas delimitaciones permitieron clasificar y reconocer los recursos ícticos dentro de todo el Ecuador, además la posibilidad de clasificar a los peces que habitaban en aquellas cuencas de forma sistemática, esto es, por órdenes, familias, géneros y especies; según la zona ictiohidrográfica de las regiones naturales del Ecuador. Un resumen de las zonas ictiográficas ecuatorianas se detallan en la Tabla 1.
8
Tabla 1. Zonas Ictiohidrográficas del Ecuador [11].
Región natural Zonas Ictiohidrográficas Siglas # de especies
Costa
Intermareal I 120
Santiago-Cayapas SC 73
Esmeraldas E 57
Guayas G 63
Catamayo C 25
Oriente
Alto Napo AN 14
Alto Pastaza AP 35
Upano-Zamora UZ 40
Napo-Pastaza NP 680
Morona-Santiago MS 143
Chinchipe CH 35
Cabe recalcar que la región Interandina o Sierra no cuenta con zonas ictiohidrográficas delimitadas, pero, de allí nacen las principales cuencas hidrográficas de la vertiente del Pacífico y Atlántico. A pesar de que los peces nativos no viven en estas regiones, existe el pez sardina (Grundulus quitoensis) en la provincia del Carchi, pero esta cuenca está incluida en la zona de Santiago Cayapas. Además cabe recalcar que en lugares lóticos y lenticos viven peces introducidos como la trucha arcoíris (Onchorynchus mykiss) y carpa (Carassius carassius) [11]. La organización geográfica de las zonas ictiográficas del Ecuador especificadas en la Tabla 1 se ilustran en la cartografía mostrada en la Figura 3.
Figura 3 Mapa de zonas Ictiohidrográficas [27].
9 1.1.1.4. Diversidad de peces en las zonas ictiohidrográficas
Para el año 2012, en el Ecuador, se registraron un total de 951 tipos de peces nativos que forman parte de las zonas ictiohidrográficas de dicho país [11]. Estas especies se encuentran agrupadas de acuerdo con: 22 órdenes, 72 familias, 17 subfamilias y 393 géneros.
De acuerdo con la columna número de especies de la Tabla 1, la mayor diversidad de peces se encuentra en la región oriente con 680 especies para la cuenca de Napo Pastaza, seguida de 1 especie para Morona Santiago y en tercer lugar la cuenca de Intermareal con un total de 120 especies, y a ésta le sigue la cuenca Esmeraldas con 57 especies.
Es importante recalcar que dentro del total de 951 especies registradas en el año 2012, también se han involucrado los peces intermareales, donde 92 especies son periféricas (marinas que penetran a estuarios), 24 son secundarias (de vida principalmente estuarina);
12 son introducidas y el resto de las especies se consideran como especies primarias, es decir, que pertenecen a agua dulce [19].
La mayor representatividad de las especies de peces se encuentra en las cuencas de los ríos Esmeraldas, Santiago Cayapas y Guayas, de las cuales forman parte 74 especies de peces. La Figura 4 muestra las 29 familias con ocho órdenes de las cuencas mencionadas [19].
Figura 4 Clasificación de familias de peces endémicos del Ecuador [19].
10 Muchas de las especies de peces son endémicas de las localidades y consecuentemente del Ecuador. Al hacer uso del término endemismo se hace referencia a la necesidad de relacionar un área geográfica de restricción que se distribuya el taxón [30]. Además, el término ha ido evolucionando para ser aplicado a distintos taxones referentes a especies, géneros, familias, entre otros [31]. Por lo tanto, para la investigación se definen a los peces como endémicos del Ecuador debido a la limitación de los sistemas hidrográficos de los cuales son pertenecientes a distintas cuencas del Ecuador mencionadas anteriormente.
1.1.2. Aprendizaje profundo
El aprendizaje profundo nace a lo largo del tiempo con distintos nombres, entre 1940 y 1960 era conocido como cibernética [4], luego se fue introduciendo el concepto de las redes neuronales como la idea de un perceptrón o neurona artificial el cual imita el funcionamiento del cerebro humano mediante el estudio de los componentes de las neuronas del cerebro.
El primer indicio de las redes neuronales (NN) fue en 1943 tras la creación del modelo McCulloch-Pitts (MCP) que es el primer prototipo de redes neuronales artificiales (ANN)[32]. A partir de este prototipo se creó un modelo informático que simulaba el comportamiento de la neocorteza en el cerebro humano [33]. Posteriormente, se crearon algoritmos basados en modelos matemáticos denominados lógica umbral, que es una unidad de procesamiento para números con valores de entradas y de salidas, los cuales se asocian con un peso e imitan el umbral de las neuronas biológicas de manera simple [34].
Hasta este punto estos modelos solo imitaban el proceso del pensamiento humano; pero no aprendían. Fue entonces en 1957 donde se creó el primer algoritmo del perceptrón que utilizaba los mismos mecanismos de los sistemas biológicos pero en un contexto de sistema cognitivo, capaz de entrenar una neurona [35]. Desde entonces las redes neuronales artificiales fueron evolucionando a tal punto de poder clasificar e identificar objetos de manera artificial mediante un computador.
Actualmente, existen varios modelos que engloban a las redes neuronales artificiales (i.e., redes convoluciones, redes recurrentes y red a corto y largo plazo, entre otras [36]–
[41]), no obstante, en este estudio se describe principalmente el modelo basado en redes convoluciones. Dicho modelo aprende a partir de datos para posterior a ello, llevar a cabo clasificación de patrones (i.e., detección de personas, detección de objetos, entre otros).
11 1.1.2.1. Tipos de aprendizaje
Las técnicas de aprendizaje computacional que buscan dotar a las máquinas de la capacidad de aprender en base a conjuntos de datos históricos se categorizan principalmente en: aprendizaje supervisado, no supervisado y por refuerzo.
• Aprendizaje supervisado. El aprendizaje supervisado es un tipo de aprendizaje que se enfoca en analizar los datos etiquetados, es decir, utiliza algoritmos que aceptan los datos de entrada y luego los etiqueta según el tipo de característica que poseen dando como resultados datos de salidas etiquetados conocidos a priori.
Este tipo de aprendizaje utiliza algoritmos que se entrenan con datos históricos y aprenden asignar la etiqueta de salida [42]. Un ejemplo claro es la asignación de etiqueta spam o no spam dentro de un correo electrónico. En el contexto de un sistema de clasificación de peces, las imágenes se clasifican de acuerdo con el tipo de clases de imágenes que esta posea, es decir que las imágenes se clasifican según el tipo de peces que exista en el problema. Por ejemplo el estudio “Clasificación automática de especies de peces mediante redes neuronales convolucionales profundas” [2] es un aprendizaje supervisado debido a que las imágenes se clasifican por las distintas especies de peces, para este caso el clasificador automático utiliza un set de datos de 3960 imágenes, el cual se encuentran clasificadas por 6 tipos de especies o clases peces.
• Aprendizaje no supervisado. El aprendizaje no supervisado es un tipo de aprendizaje que no posee datos etiquetados para el entrenamiento. Solo dispone de los datos de entrada; pero los de salida no están definidos en el conjunto de datos, por lo cual, este aprendizaje muestra la estructura de los datos para luego tratar de encontrar algún tipo de patrón que describa dichos datos. Además, el aprendizaje no supervisado funcionan en base a las similitudes de un conjunto de datos agrupados [42]. Este tipo de aprendizaje es utilizado en tareas de clustering, o conocida también como agrupamiento. Un ejemplo claro es sobre personas, donde se agrupan por dos características diferentes en cuanto a sus rasgos físicos faciales asiáticos y orientales; este aprendizaje consiste en agrupar a los individuos según a las características más parecidas en su rostro previo a un entrenamiento con los mismos datos. Por otro lado, en el dominio de la ictiografía, un ejemplo claro de agrupamiento sería los peces en función a las ubicaciones de
12 zonas hidrográficas como: las cuencas de los ríos Esmeraldas, Guayas y Catamayo, este ejemplo en un tipo de aprendizaje no supervisado debido a que los peces se agruparían por las similitudes de los peces que se encuentran en los ríos de Esmeraldas, Guayas y Catamayo.
• Aprendizaje por refuerzo. Es un tipo de aprendizaje que utiliza un proceso de retroalimentación para aprender, buscando siempre optimizar la respuesta del modelo. Este tipo de aprendizaje utiliza el método de ensayo-error manteniéndose entre el aprendizaje supervisado y el no supervisado ya que existe una supervisión mínima pero no especifica un resultado para cada entrada en los datos. Además, el aprendizaje por refuerzo utiliza un algoritmo que tiene como entrada una retroalimentación de los datos de salida del entorno para aprender [42].
1.1.2.2. Neuronas artificiales
Frank Rosenblatt define una neurona artificial como un modelo probabilístico que almacena y guarda información basándose en la hipótesis de un sistema nervioso en el cerebro [35]. También es conocido como un perceptrón simple que es un conjunto de entradas, una capa de neurona y una única salida [35], donde replica el funcionamiento de las neuronas biológicas, y envés de utilizar a las dendritas y axones que receptan los estímulos del cerebro, utilizan un modelo matemático que simula el aprendizaje como se muestra en la Figura 5.
Figura 5 Analogía entre una neurona biológica (a) [43] y artificial (b) [44].
13 Otro concepto de neurona artificial es propuesto por Minsky y Papert, donde definen un modelo de neurona artificial como un dispositivo que calcula predicados en función de un umbral lineal [45]. Ambos conceptos se definen en distintas perspectivas, Minsky y Papert lo definen de manera más general, donde la función umbral acepta predicados mientras que Rosenblatt lo describe de forma más simple, el cual recibe solo neuronas.
Desde el punto de vista matemático una neurona artificial es un modelo matemático que aceptan datos de entradas, tiene un conjunto de pesos, una función de activación y una salida u objeto [33], [46]. Además, es considerada como la unidad básica que recepta entradas y parámetros internos que generan una salida, y es conocida como perceptrón o neurona [47] [37].
Una neurona está compuesta por tres elementos básicos, una función base que recepta los datos de entrada “x1, x2, …, xi” y en base a los pesos “w1, w2, …, wi” realiza el cálculo, de la sumatoria del producto entre los pesos y los valores de entrada más el sesgo b, como se muestra en la ecuación (1).
𝑧 = ∑𝑛𝑖=0(𝑤𝑖 ⋅ 𝑥𝑖)+ 𝑏 (1)
También tiene una función de activación como se muestra en la ecuación (2) la cual puede ser de tipo sigmoidal (3) o relu (4), su uso depende del tipo de problema que se resuelva. En resumen, su utilidad es indicar el estado de activación de la neurona, esto es, si la neurona se excita o se inhibe.
𝑎 = 𝜎(𝑧) (2) 𝑓(𝑥) = 1
1+ⅇ−𝑥 (3) 𝑓(𝑥) = 𝑚𝑎𝑥(𝑥, 0) (4)
Y finalmente, una función de salida que es el valor de la neurona vinculada que pueden ser valores entre [0,1] o [-1,1]. También, pueden ser valores binarios es decir 0 o 1 [48]
que luego son utilizados para el posterior aprendizaje [49]. En la Figura 6 se muestra cómo estos elementos forman estructuralmente una neurona artificial, y que de manera agrupada llegan a definir estructuras más complejas como son las redes de neuronas artificiales como lo puede ser un Perceptrón Multicapas. Dicha red integra un conjunto de Perceptrones simples en una o más capas ocultas, a través de las cuales puede llegar a realizar procesos más complejos de reconocimiento de patrones.
14
Figura 6 Diagrama de una neurona artificial simple [50].
Es importante mencionar que estos tipos de neuronas simples permiten solucionar solamente problemas del tipo lineal siendo esta una limitación, ya que, en 1969 Minsky y Papert, proponen un artículo sobre el problema del “XOR” donde el modelo de neuronas simples presenta fallas [51]. De ahí nacen las redes neuronales artificiales.
1.1.2.3. Redes neuronales artificiales
Sin duda alguna, el modelo de neurona artificial antes descrito fue fundamental para el desarrollo de una red neuronal artificial. De allí que se define a una red neuronal artificial como un conjunto de redes neuronales básicas, que están totalmente conectadas y organizadas en 3 capas; la primera es denominada capa de entrada que contiene los valores que recibe la red, la segunda capa denominada capa oculta que posee las neuronas anteriores y de salida, y la tercera capa llamada capa salida contiene el vector objetivo [48]. Su integración se muestra en la Figura 7.
Figura 7 Esquema de redes neuronales [48].
15 1.1.2.4. Principales modelos
Existen varios modelos que engloban a las redes neuronales artificiales, pero en este estudio se mencionarán cuatro principales modelos, que son las redes multicapas (MLP), redes neuronales recurrentes (RNN), red a corto y largo plazo, y finalmente las redes neuronales convoluciones (CNN). Es importante mencionar que se realiza un análisis más exhaustivo para el caso de las redes convolucionales, que se ha empleado en este estudio.
Perceptrón multicapas. Este modelo consiste en la unión o agrupamiento de más de neurona simple, formando múltiples capas ocultas [37], [33], [52], además, es considerada como una red neuronal de retroalimentación con distintas capas ocultas como se muestra en la Figura 8 que tiene la particularidad de emplear una función de activación arbitraria donde se apilan capas de transformaciones no lineales permitiendo extraer y aprender características jerárquicas [53]. Este tipo de redes multicapas tienen falencias en su entrenamiento por ende sus predicciones pueden ser imprecisas, ya que, confunden los mínimos locales en las funciones de error y detienen el entrenamiento sin importar la efectividad del resultado.
Figura 8 Esquema gráfico de una MLP [54].
Redes neuronales recurrentes (RNN). Las redes recurrentes se pueden considerar como sistemas dinámicos debido al cálculo de una entrada donde esta dependerá del paso
Capa entrada Capa oculta 1 Capa oculta 2
Capa salida
16 anterior e incluso en pasos dentro de un futuro. También son conocidas como redes de espacios temporales, por el intento de representar una correspondencia mediante pasos secuenciales de un entrada y salida [41] (Figura 9). Este tipo de redes se enfoca en guardar relaciones secuenciales a través de un periodo [50]. Además, tienen la capacidad de resolver distintos problemas computacionales como son: predicciones no lineales, modelación de sistemas dinámicos y sobre todo problemas que involucren el tratamiento de secuencias o continuación de una trayectoria, permitiendo incluso predecir patrones debido a su capacidad de memorización de secuencias recurrentes [41]. Dentro de las aplicaciones que pueden llevarse a cabo en las redes recurrente, existen tres tipos básicos de tareas: el reconocimiento de secuencias, reproducción de secuencias y la asociación temporal [41].
Figura 9 Tipos de arquitecturas en RNN [55].
Red de memoria a corto a largo plazo. Uno de los motivos por el cual surgió este tipo de red fue el problema que se presenta en las redes recurrentes en cuanto a la inestabilidad el aprendizaje en un ambiente de secuencias largas que se presenta en una red profunda.
Este tipo de red es considerada como una red neuronal recurrente de memoria a corto plazo (LSTM) [40] que se ha ido mejorando desde su primera versión en 1997, y en el año 2000 un grupo de investigadores presentaron un algoritmo capaz de resolver problemas de aprendizaje previos para las RNN donde implementa un elemento llamado
“puerta de olvido” permitiendo que el algoritmo aprenda a reiniciarse en tiempos apropiados [39] (Figura 10). Las LSTM se consideran como un potente clasificador
17 dinámico que utilizan una memoria o celdas espaciales que permiten contener un flujo de error constante o los famosos carruseles de error constante (CEC).
Figura 10 Red LSTM básica [56].
1.1.2.5. Métricas asociadas al aprendizaje
Existes distintas maneras para poder evaluar el redimiendo y precisión de un algoritmo de aprendizaje, incluyendo los modelos de redes neuronales profundas. A continuación, se describen las métricas más relevantes que en las ciencias de datos se emplean para determinar la eficacia de un modelo de aprendizaje automático.
• Exactitud o Accuracy. Esta métrica es utilizada para los modelos de clasificación y es utilizada cuando existe un equilibrio en los elementos de cada clase [55]. Esta métrica se calcula a partir de la ecuación (5) donde muestra el porcentaje que el modelo posee para los casos definidos, el cual se define entre el total de predicciones correctas más el total de predicciones incorrectas y la sumatoria del total de predicciones correctas, incorrectas, falsos positivos y falsos negativos [57].
18
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃𝐶+𝑇𝑃𝐼
𝑇𝑃𝐶+𝑇𝑃𝐼+𝐹𝑃+𝐹𝑁 (5)
• Precisión. Se utiliza en las ocasiones donde no existan un equilibrio en cada clase de tal forma que exista una disparidad entre los datos positivos y negativos en cuanto a clasificación binaria se refiere. La métrica de precisión permite evaluar el modelo de clasificación con su cociente de predicciones correctas sobre el total de todos los cocientes más el número de falsos positivos [55]. Su fórmula esta descrita en la ecuación (6).
𝑃𝑟𝑒𝑐𝑖𝑠𝑖ó𝑛 = 𝑉𝑃
𝑉𝑃+𝐹𝑃 (6)
• Exhaustividad o Recall. Esta métrica permite evaluar el modelo en base a un cociente que se divide entre las predicciones correcta más los falsos negativos [55], la fórmula se describe en la ecuación (7).
Exhaustividad = 𝑉𝑃
𝑉𝑃+𝐹𝑃 (7)
• Valor F1 o F1 score. Se utiliza en modelos donde las clases no estén equilibradas, además, esta métrica da como resultado el promedio entre las métricas de precisión y exhaustividad [55]. La fórmula para su cálculo se describe en la ecuación (8).
ValorF1 = 2 ∗𝑝𝑟ⅇ𝑠𝑖𝑐𝑖ó𝑛∗ⅇ𝑥ℎ𝑎𝑢𝑡𝑖𝑣𝑖𝑑𝑎𝑑
𝑝𝑟ⅇ𝑠𝑖𝑐𝑖ó𝑛+ⅇ𝑥ℎ𝑎𝑢𝑡𝑖𝑣𝑖𝑑𝑎𝑑 (8)
1.1.2.6. Marcos de trabajo
Existen varias herramientas compatibles con los lenguajes de programación más usados en la actualidad para el desarrollo de sistemas de Inteligencia Artificial. A continuación, se describe brevemente los principales marcos de trabajo o librerías compatibles con Python, Java y Matlab, que son compatibles con el desarrollo de modelos de aprendizaje profundos; y específicamente con la creación de redes convolucionales, a emplear en este estudio.
19
• TensorFlow. Es un ambiente de trabajo de código abierto para el aprendizaje profundo que cuenta con los algoritmos de aprendizaje automático de última generación creado por Google. Además, está optimizado para el rendimiento del CPU y GPU, el cual se adapta a casi cualquier plataforma como teléfonos inteligentes, tabletas y sistemas distribuidos a gran escala [7]. También cuenta con una diversidad de herramientas, bibliotecas y recursos que permite crear y desarrollar distintas aplicaciones para el aprendizaje profundo ya que cuenta con varios niveles de abstracción que están a disposición de las necesidad del desarrollador [58].
• Eclipse Deeplearning4j (DL4J). Es una biblioteca de aprendizaje profundo de código abierto para entornos de desarrollo Java y Scala. Además, cuenta con funcionalidades de integración con Hadpood y Apache Spark, el cual, permite trabajar con entornos empresariales permitiendo usar el CPU y GPU de forma distribuida. Este software permite crear redes neuronales profundas que se integran a entornos empresariales dentro de un marco de producción distribuido [59].
• Deep learning Toolbox. Es un marco de trabajo que permite crear, diseñar e implementar redes neuronales, mediante los algoritmos de aprendizaje profundo, entre ellos están los modelos de redes neuronales convolucionales (CNN), redes de memoria a corto plazo (LSTM), entre otros. Además, permite intercambiar modelos con TensorFlow, Caffe y otros marcos de trabajo relacionados con el aprendizaje profundo. Este marco de trabajo es creado por la empresa de MathWorks Inc.
• TensorFlow. Es un entorno de trabajo web que permite crear desarrollar software de código abierto a través de documentos JSON el cual sigue un esquema de versionamiento y listas de celdas de entrada y salida que admiten e interpreta el código fuente de lenguajes de programación ampliamente usados hoy en día como es el caso de Julia, Python y R.
1.1.3. Redes neuronales convolucionales (CNN)
Una red convolucional conocida también como CNN por sus siglas en inglés, es un modelo de aprendizaje profundo que constituye una arquitectura matemática paramétrica
20 con distintas capas; una capa de entrada, varias capas ocultas y una capa de salida [60].
La forma en como estas capas y las neuronas están organizadas se muestra en la Figura 7.
1.1.3.1. Arquitectura
Las redes neuronales convolucionales son un modelo de arquitectura profunda discriminativa similar a una red neuronal artificial convencional [61], que contiene neuronas, pesos y procedimientos que pueden aprender [7]; pero con la diferencia que estas contienen otras capas de aprendizaje, que son capas de convolución, capas agrupamiento, capas completamente conectadas y una capa de salida [2], como se muestra en la Figura 11.
Figura 11 Arquitectura CNN [7].
Los modelos de redes neuronales convolucionales están diseñados para realizar tareas que involucran el reconocimiento de imágenes. Debido a su arquitectura multicapa, este tipo de redes neuronales es capaz de procesar información no lineal, y permite extraer características y patrones que ayudan a reconocer e identificar objetos en imágenes [36].
Es importante mencionar que no hay un estándar único que define a las CNN. Por ende, existen distintas variantes a la hora de implementar estos modelos y el uso de una u otra variante dependerá generalmente del problema al que se enfrenten. Sin embargo, la estructura de una red convolucional generalmente cuenta con capas convolucionales y submuestreo (pooling) organizadas por módulos como se ilustra en la Figura 12. Además, integran una o varias capas totalmente conectadas similar a las redes neuronales simples [36].
21
Figura 12 Clasificación de imágenes en una CNN [36].
Es importante mencionar que existen distintas terminologías para las capas que conforman a las redes neuronales, tal es el caso que dentro del contexto de redes neuronales artificiales se las conoce con el nombre de capas ocultas, mientras que, en el contexto convolucional se denominan capas totalmente conectadas. A continuación, se describen los distintos procesos y subprocesos, por los que una imagen pasa dentro de los modelos de redes convolucionales, esto es, el procesamiento en la capa convolucional, en la capa submuestreo o pooling y en la capa completamente conectada.
1.1.3.2. Capa de convolución
El término de convolución fue adoptado por la función matemática de convolución que se describe en la ecuación (9), donde “*” representa la operación de convolución, x el vector de entrada, w el filtro, y una salida que es conocida como un mapa de características que es representado por s(t) como se detalla en la ecuación (10) [50].
𝑠(𝑡) = (𝑥 ∗ 𝑤)(𝑡) (9) 𝑠(𝑡) = (𝑥 ∗ 𝑤)(𝑡) = ∑∞𝑎=−∞𝑥(𝑎)𝑤(𝑡 − 𝑎) (10)
Las redes convolucionales generalmente tienen como datos de entrada una imagen, donde se describe un mapa de características S(i, j), que es dado por una imagen I(i, j) y un filtro de dos dimensiones K(i, j), como se muestra en la ecuación (10) [50].
𝑆(𝑖, 𝑗) = (𝐾 ∗ 𝐼)(𝑖, 𝑗) = ∑ .𝑚 ∑ 𝐼𝑛 (𝑖 − 𝑚, 𝑗 − 𝑛)𝐾(𝑚 − 𝑛) (11)
Esta operación de convolución permite extraer características locales mediante filtros que son aplicados a la entrada [55]. Una red convolucional tiene un comportamiento similar
Imagen entrada Capa convolución y pooling Capa conectada Capa de salida
22 al de la Figura 13, que tiene como entrada una imagen, donde se aplica la función de convolución, y ésta, a su vez aplica dicho filtro que recorre toda la imagen de abajo hacia arriba, generando un mapa de características, que se agrupan por medio de una función de agrupamiento, cuya finalidad, es reducir el tamaño de la imagen en función a los valores más significativos que luego los asocia a una capa de red completamente conectada [50].
Figura 13 Esquema de red convolucional [50].
1.1.3.3. Filtros
Como se menciona anteriormente, en la capa de convolución intervienen filtros o también conocidos como núcleos (kernels) o detector de características (features detector), los cuales se aplican a la imagen de entrada. Éstos permiten detectar patrones visuales como bordes, curvas, contornos etc., dentro de una imagen. Estos varían según la función de activación que se aplique [62]. Algunos ejemplos de filtros empleados en la capa de convolución son las funciones matemáticas que se aplican a las matrices de los filtros tales como identidad, desenfoque gaussiano, enmascaramiento de enfoque, entre otros [62].
Los filtros son matrices de pesos que se modifican durante la aplicación del algoritmo de propagación hacia atrás [55], además, estos filtros espaciales son un método de procesamiento digital de una imagen que definen el alto y ancho de los pixeles, donde se traslada a través de los canales de profundidad de la entrada de la imagen [63]. Todos estos compontes son llamados el volumen de entrada.
23 Estos filtros se deslizan por el volumen de entrada o los pixeles de la imagen, que realizan el cálculo entre el producto punto de las entradas del filtro y la imagen de entrada, hasta recorrer toda la imagen. Estos a su vez, generan resultados y se los conoce como los mapas de activación bidimensional (altura y ancho del volumen entrada ) que contienen los valores del filtro en cada posición espacial [63].
A medida que ocurra el proceso de convolución, la red irá aprendiendo los filtros que se activarán al momento de coincidir con algún patrón visual como son el borde, contorno, textura, etc., en cada capa convolutiva que generan un mapa de activación bidimensional dando como resultado un vector de salida [64]. En la Figura 14, muestra una descripción gráfica del proceso que ocurre en la capa de convolución.
Figura 14 Proceso de convolución en los filtro de un volumen de entrada 7x7x3, que genera un mapa de características de 5x5 [65].
1.1.3.4. Hiper parámetros de filtros
Cabe mencionar que dentro de los filtros existen hiper parámetros que afectan al tamaño del volumen de salida en el proceso de convolución, y son: profundidad, ventaneo (stride) y relleno (padding) [63], [55]. Una breve descripción de estos filtros se describe como sigue:
24
• La profundidad es el número de filtros que se definen para el aprendizaje en el vector de entrada o imagen de entrada para el posterior aprendizaje [64]. Además, es importante definir el tamaño o dimensión del filtro, por lo general, son cuadrados por ejemplo 2x2 o 4x4 [55].
• El ventaneo o stride es el número espacios entre pixeles que se definen al momento de recorrer el filtro horizontal y vertical en el proceso de convolución [55], o también conocido como el número pasos que se realiza al deslizar un filtro [64].
• Finalmente, el relleno o zero-padding es el tamaño del volumen de salida, que en ocasiones cambian el margen de la entrada de la imagen por ceros [64].
También se considera como la agregación de ceros en los limitantes que modifican el tamaño o pixeles externos de la imagen [55]. El tamaño del volumen de salida (Vs) se puede calcular con la fórmula descrita en la ecuación (12), donde W es una función del volumen de entrada, F es el tamaño del capo respectivo de la capa convolucional o filtros, S el stride, y P como la cantidad del Zero-padding [63].
𝑉𝑠 = (𝑊 − 𝐹 + 2𝑃)/(𝑆 + 1) (12)
• Por ejemplo, se tiene una entrada de 6x6, un filtro 2x2, un stride de 1 y un padding de 0, el cual, genera una salida de 4x4 ( 6-3/1+1=5 ) [63]. La operación del padding se caracteriza por dar un mejor rendimiento en la convolución, por dos razones, la primera es que la imagen de entrada no disminuye su tamaño y no habrá un límite de capas utilizables en la implementación de la arquitectura de la red neuronal y la segunda razón es que los filtros son reutilizables para cada convolución dentro de una imagen [63]. Un ejemplo de su aplicación se muestra en la Figura 15.
1.1.3.5. Función de activación
La función de activación es un elemento básico en una red neuronal. Por lo tanto, en las redes convolucionales también existe esta función de activación; pero con la característica que es de tipo no lineal y varía según el problema. Las principales funciones de activación comunes son las siguientes:
25
Figura 15 Aplicación del padding y filtro en un vector de entrada 4x4x3 [55].
• Función sigmoide. Esta función se describe en la ecuación (13), la salida, comprende el resultado entre los valores [0,1] y tiene un comportamiento no lineal. Esta función se aplica usualmente en una red que necesite diferencia dos clases dentro de un problema, también, carece de estabilidad, debido a una posible saturación de la imagen ya que si se colocan valores muy grandes, este podrá ralentizar el proceso aprendizaje en la neurona [63].
𝛼 = 1
1+ⅇ−𝑥 (13)
• Función tangente hiperbólica. Al igual que la función sigmoide, esta función es del tipo no lineal ya que devuelve un valor de entrada correspondiente al rango entre [-1, 1]. De igual forma sufre la problemática de saturación donde el gradiente se ve afectado debido a que en ocasiones el valor que devuelve es cero. La ecuación que representa esta función se describe en la ecuación (14).
𝑡𝑎𝑛(𝑥) = 2𝛼(2𝑥) − 1 (14)
26 1.1.3.6. Capa de submuestreo o pooling
En las redes neuronales convolucionales las capas de submuestreo permiten optimizar los procesos de cálculo para reducir el tamaño espacial en el aprendizaje de nuevos datos, permitiendo reconocer características de una imagen sin importar en qué lugar de la imagen se encuentre [63]. Además, esta capa extrae la información muy relevante en un mapa de característica, donde se utilizan diversos métodos para el submuestreo, entre ellos los siguientes [63]:
• Muestreo máximo (max pooling). Dado los valores de stride y padding obtienen como resultado el valor máximo de una ventana de puntos (Figura 16).
• Muestreo promedio (average pooling). Da una respuesta local sacando el promedio de una vecindad de valores (Figura 16).
• Muestreo de suma (sum pooling). Calcula los desplazamientos de una ventana dentro del mapa de características.
Figura 16 Capa de submuestreo max pooling (azul) y average pooling (gris) con stride=1 [63].
27 1.1.3.7. Función de costos y pérdidas
En las redes convolucionales se utiliza un aprendizaje del tipo supervisado lo que implica el uso de funciones de costos y pérdidas a partir de las cuales se mide la diferencia entre los datos de predicción con los datos reales [55], [63]. La función de costos es el promedio de errores para cada ejemplo de manera individual, mientras que la función de pérdida es el modelo matemático que se promedia.
En la ecuación (15) muestra el promedio de errores para cada modelo matemático de la función de perdida, N el número de datos de entrenamiento, y Li es la función de pérdida o error en el dato i.
𝐿 =1
𝑁(∑𝑖𝐿𝑖) (15)
Además, existen diferentes modelos para la función de pérdidas que se aplican según el tipo de clasificación [63] y tiene por objetivo minimizar el error de pérdida dentro del modelo [66]. Los modelos más comunes son los siguientes:
• Error cuadrático medio (ECM). Es una de las funciones más sencillas y se aplican con la ecuación (16) [55]:
𝐸 = ∑1
2(𝑦 − 𝑦`)2 (16)
• Entropía cruzada binaria. Esta función permite minimizar la pérdida al momento de ajustar los pesos en el entrenamiento y es el promedio de todos los datos que acepta valores binarios es decir 0 y 1 [66], además, esta utiliza el valor negativo de verosimilitud logarítmica se describe en la ecuación (17) [55].
𝐸 =−1
𝑛 ∑𝑛𝑖=1[𝑦𝑖𝑙𝑜𝑔𝑦`(𝑖)+ (1 − 𝑦𝑖) log(1 − 𝑦`(𝑖))] (17)
• Entropía cruzada categórica. Este tipo de función se utiliza para los datos que se clasifican por etiquetas, además se utilizan cuanto los datos verdaderos etiquetados se encuentran clasificados por clases; es decir, diferentes tipos de datos [66]. Por ejemplo, tres tipos de animales que se clasifiquen por perro, gato y gorilas. La función entropía cruzada se definen en la ecuación (18) que se detalla a continuación [55].
𝐸 = − ∑𝑚𝑗=1∑𝑛𝑖=1[𝑦(𝑖,𝑗)𝑙𝑜𝑔𝑦`(𝑖,𝑗)] (18)
28 1.1.3.7. Función de optimización
Este tipo de funciones buscan minimizar el error o las funciones de pérdida (función objetivo), por medio de una función llamada optimización, la cual emplea distintos métodos de aproximación. El método del gradiente descendente (GD) es uno de los algoritmos más usados para optimizar las redes neuronales, también conocido como Descenso de Gradiente Estocástico (SGD). Este algoritmo se puede aplicar cuando la función es derivable y definida. Partiendo del problema de optimización dado en la ecuación (19) [55].
arg minx𝑓(𝑥) (19)
Vector en el punto:
𝑝𝑡 = −𝛻𝑓(𝑥𝑡) (20)
La nueva notación:
𝛻𝑓(𝑥𝑡) = 𝛻𝑓𝑡 (21)
Proceso de actualización para un nuevo punto, donde µ es la tasa de aprendizaje:
𝑥𝑡+1 = 𝑥𝑡− µ𝛻𝑓𝑡 (22)
Existen otras variantes que nacen a partir del gradiente descendente o GD, como las que se mencionan a continuación:
• SGD con Momentum. Este algoritmo optimiza la dirección por medio de una fracción del vector de pesos [55].
• Nesterou Accelerated Gradient (NAG). Utiliza la media en el proceso de actualización previo evitando valores bajos en las regiones de pendiente positiva, donde calcula posibles posiciones de los pesos [55].
• Adaptative Gradient (AdaGrad). Se enfoca en mejorar la tasa de aprendizaje para cada peso dentro de un periodo determinado [55].
• Adam. Es una variante del GD, que utiliza la media de gradientes cuadrados y es utilizado para ajustar los pesos que se actualizan por la regla de Adam [67].
29 A continuación, en el Algoritmo 1, se presentan los pasos que realiza el algoritmo del gradiente descendiente que sirve como base para las variantes mencionadas anteriormente.
Algoritmo 1. Algoritmo de aprendizaje para gradiente descendente [68]
1. 1. Inicializar los pesos 2. 2. En cada entrada a) Calcula la salida
𝑦`𝑖 (𝑡) = 𝑓(W(𝑇)𝑡x) b) 3. Actualiza los pesos con
𝑤𝑖(𝑡 + 1) = 𝑤𝑖(𝑡)+ µ(𝑡)
3. 4. Repetir hasta que el error converja al menor umbral
1.1.3.8. Entrenamiento
Las redes neuronales convolucionales utilizan algoritmos para mejorar los resultados mediante el perfeccionamiento en sus parámetros o pesos. Los algoritmos básicos que se emplean en el aprendizaje de una red neuronal de manera general son dos, el algoritmo de propagación hacia delante o Feed Forward (FF) por sus siglas en inglés, y el algoritmo de propagación hacia atrás o Back Propagation (BP). Dicho algoritmo fue descrito anteriormente ya que es el mismo algoritmo que el Perceptrón Multicapas emplea.
1.1.3.9. Dropout
En las redes neuronales convolucionales se utiliza el preprocesamiento para mejora el comportamiento e intentar llegar a una distribución normal, estadísticamente que la media sea cero y la varianza sea unitaria, evitando así una posible saturación en las funciones de activación. En el caso de que existiera una saturación, este afectaría al proceso de aprendizaje volviéndolo más lento para las nuevas distribuciones adaptativas [55], este problema es conocido como el desplazamiento covariable interno. Para dicho problema existe un método llamado dropout, que consiste en evitar la coadaptación de neuronas en patrones que se repiten o en los datos de entrada.
Dicho método activa y desactiva las capas ocultas y las remueve del modelo incluyendo sus entradas y salidas. Para el caso de las pruebas este método no se aplica [63]. La Figura 17 muestra la activación y desactivación de capas ocultas, donde los nodos