• No se han encontrado resultados

información en imágenes de

N/A
N/A
Protected

Academic year: 2022

Share "información en imágenes de"

Copied!
92
0
0

Texto completo

(1)

Escuela Politécnica Superior

Adaptación al dominio para extracción de

información en imágenes de

documentos

Grado en Ingeniería Informática

Trabajo Fin de Grado

Autor:

Adrián Sánchez Hernández Tutor/es:

Jorge Calvo Zaragoza

Francisco José Castellanos Regalado Julio 2021

(2)
(3)

Adaptación al dominio para extracción de información en imágenes de

documentos

Clasificación de dominio para binarización de documentos escaneados

Autor

Adrián Sánchez Hernández Tutor/es

Jorge Calvo Zaragoza

Departamento de Lenguajes y Sistemas Informáticos Francisco José Castellanos Regalado Departamento de Lenguajes y Sistemas Informáticos

Grado en Ingeniería Informática

Escuela Politécnica Superior

ALICANTE, Julio 2021

(4)
(5)

Preámbulo

Gracias a mis tutores, Jorge Calvo Zaragoza y Francisco José castellanos Regalado, he podi- do adentrarme en el tema de este trabajo que tiene por objetivo la aportación de un nuevo enfoque a un campo que es la binarización de documentos cuando se disponen de datos hete- rogéneos. La pretensión de este proyecto ha sido la de contribución al actual estado del arte acerca de la binarización, tarea que supone un punto clave para la extracción de información de documentos no digitalizados.

Esperamos que las ideas expuestas en este trabajo ayuden en la digitalización de una basta herencia cultural de documentos en formato físico, para su preservación y difusión. De esta forma, confiamos en que pequeñas entidades puedan beneficiarse de ellas evitando la necesi- dad de gastar recursos en el etiquetado de datos de sus colecciones para la automatización del resto del proceso de binarización mediante técnicas de aprendizaje profundo supervisado.

Por último, quisiera agradecer al Vicerrectorado de Calidad e Innovación Educativa de la Universidad de Alicante, dentro del convenio de colaboración entre la Universidad de Alicante y Banco de Santander S. A. con firma del 9 de marzo de 2017, por concederme una ayuda para el desarrollo de trabajos de fin de grado y fin de máster relacionados con el análisis y proceso de datos1.

1Referencia al BOUA: https://www.boua.ua.es/pdf.asp?pdf=6025.pdf

(6)
(7)

Resumen y justificación del trabajo

La inteligencia artificial cada vez está más presente en nuestras vidas, como en la conduc- ción autónoma o asistentes personales. Entre los campos que más han crecido en los últimos años se encuentra el aprendizaje profundo o deep learning, mediante lo que se conoce co- mo redes neuronales. Este tipo de modelos matemáticos han sido aplicados en numerosos problemas de distinta índole como visión por computador, procesamiento del lenguaje o de imágenes, como es el caso del reconocimiento óptico de caracteres (OCR) y de partituras musicales (OMR).

Este trabajo está relacionado con la última temática mencionada, el procesamiento de imá- genes, en concreto con la extracción de información de imágenes de documentos por medio del proceso denominado binarización. Así pues, este procedimiento, consistente en la identi- ficación del papel y la tinta de la imagen de un documento, constituye un pilar en muchos procesos de análisis de imágenes de documentos. El actual estado del arte considera utilizar modelos de redes neuronales que mapean una imagen de entrada a otra de salida, aprendiendo mediante datos de ejemplo. El problema asociado a este tipo de técnicas es que asumen que los datos utilizados en un entorno real disponen de una distribución de probabilidad similar a los datos de entrenamiento, lo cual no es útil en la mayoría de casos. Esto provoca una pérdida de rendimiento ante muestras desconocidas y diferentes.

Como solución, este trabajo pretende contribuir a la mejora del problema estudiando téc- nicas de adaptación al dominio (nombre que reciben las técnicas destinadas a solventar dicha casuística) aplicadas a la binarización de imágenes de documentos. Para ello, se estudia el uso de modelos especializados en dominios mediante enfoques basados en una clasificación de dominio que determina la aplicabilidad de cada uno de ellos.

(8)
(9)

A mis padres, mis hermanos, mi abuela, mis amigos, mis compañeros y mis tutores cuyo apoyo moral, personal y académico me ha acompañado e impulsado estos años.

ix

(10)
(11)

Si consigo ver más lejos es porque he conseguido auparme a hombros de gigantes

Isaac Newton.

xi

(12)
(13)

Índice general

1 Introducción 1

1.1 Motivación y objetivos . . . 2

1.2 Estructura del trabajo . . . 4

2 Marco Teórico 5 2.1 Inteligencia Artificial . . . 5

2.2 Historia del aprendizaje profundo . . . 5

2.2.1 Cibernética (años 1940 a 1960) . . . 6

2.2.2 Conexionismo (años 1980 a 1995) . . . 7

2.2.3 Deep Learning (desde 2006) . . . . 9

2.3 Teoría del aprendizaje profundo . . . 11

2.3.1 Aprendizaje automático . . . 11

2.3.2 Perceptrón, neurona y red neuronal . . . 13

2.3.3 Funciones de activación . . . 15

2.3.4 Funciones de pérdida . . . 17

2.3.5 Backpropagation . . . . 18

2.3.6 Algoritmos optimizadores . . . 18

2.3.7 Redes convolucionales . . . 20

2.3.8 Parámetros del entrenamiento . . . 24

2.3.9 Selección de datos . . . 25

2.3.10 Problemas del entrenamiento . . . 26

2.4 Binarización . . . 29

2.5 Adaptación al dominio . . . 31

3 Metodología 33 3.1 Notación del problema . . . 33

3.2 Selectional Auto-Encoder . . . 34

3.3 Clasificador de dominio . . . 35

3.4 Mecanismo de ensamblado . . . 36

4 Desarrollo 37 4.1 Herramientas . . . 37

4.1.1 Python 3 . . . 37

4.1.2 Google Colaboratory . . . 37

4.1.3 Librerías . . . 39

4.2 Proceso de desarrollo . . . 40

4.2.1 Formación . . . 40

4.2.2 Implementación . . . 41

4.2.3 Experimentación y recopilación de los resultados . . . 45

xiii

(14)

5 Experimentación 47

5.1 Corpora . . . . 47

5.2 Métricas . . . 48

5.3 Hiperparametrización . . . 50

5.4 Casos de estudio . . . 53

6 Resultados 55 6.1 Resultados en binarización . . . 55

6.2 Resultados en clasificación de domino . . . 60

6.3 Evaluación cualitativa . . . 61

7 Conclusiones 63 7.1 Competencias adquiridas . . . 63

7.2 Resultados conseguidos . . . 63

7.3 Futuros trabajos . . . 64

Bibliografía 67

Lista de Acrónimos y Abreviaturas 73

(15)

Índice de figuras

1.1 Crecimiento de la IA en número de publicaciones y patentes. Fuente: (WIPO, 2019) . . . 1 1.2 Ejemplo de binarización de una imagen de un documento. Fuente: (Pratikakis

y cols., 2011) . . . 2 2.1 Línea del tiempo del Deep Learning (Vázquez, 2018) . . . . 5 2.2 Perceptrón (Rosenblatt, 1958) y ADALINE (Widrow y Hoff, 1960). Fuente:

(Raschka, s.f.) . . . 6 2.3 Función XOR: tabla de verdad y representación gráfica. Fuente: (Arranz, 2019) 7 2.4 Comparación de una red neuronal feedforward con una recurrente. Fuente:

(Rivera, 2018) . . . 8 2.5 Arquitectura del perceptrón multicapa. Fuente: (Hassan y cols., 2015) . . . . 8 2.6 LeNet-5: primera CNN para clasificación de letras manuscritas. Fuente: (LeCun

y cols., 1989) . . . 9 2.7 Comparación entre arquitecturas DBN y RBM. Fuente: (Sarkar, 2013) . . . 10 2.8 Jerarquía de la IA, ML y DL. Fuente: (Leiner y cols., 2019) . . . 11 2.9 Clasificación de los algoritmos de ML. Fuente: (Gramajo y cols., 2020) . . . . 13 2.10 Esquema de la sinapsis entre dos neuronas biológicas. Fuente: (Mas, 2014) . . 13 2.11 Esquema del modelo matemático de neurona artificial. Fuente: (Rico-Juan y

cols., 2018) . . . 14 2.12 Clasificación de funciones lógicas. Fuente: (Wikipedia, 2021b) . . . 15 2.13 Arquitectura de una red neuronal artificial. Fuente: (Rico-Juan y cols., 2018) 15 2.14 Ejemplos de funciones gráficas de activación . . . 16 2.15 Esquema del algoritmo de retropropagación. Fuente: (Torres, 2019) . . . 18 2.16 Descenso por gradiente. Fuente: (Torres, 2019) . . . 19 2.17 Descenso por gradiente no converge por una tasa alta de aprendizaje. Fuente:

(Torres, 2019) . . . 19 2.18 Ejemplo de operación de convolución sobre un único valor . . . 21 2.19 Ejemplos de kernels aplicados a una imagen. Fuente: (Wikipedia, 2021a) . . . 21 2.20 Tipos comunes de pooling. Fuente: (Yani y cols., 2019) . . . . 22 2.21 Comparación de operación de pooling y unpooling. Fuente: (Benbihi, 2018) . . 22 2.22 Arquitectura de una CNN. Fuente: (Jones, 2017) . . . 23 2.23 Ejemplo de jerarquía de características. Fuente: (Rico-Juan y cols., 2018) . . 23 2.24 Partes de un autoencoder. Fuente: (Rico-Juan y cols., 2019) . . . 24 2.25 Ejemplos de uso de un autoencoder. Fuente:(Rico-Juan y cols., 2019) . . . 24 2.26 Esquema K-fold Cross Validation con K=5 donde ’holdout’ hace referencia a

la partición de test. Fuente: (Pratt, 2019) . . . 26 2.27 Ejemplos de aumentado de datos. Fuente: (Rico-Juan y cols., 2018) . . . 27 2.28 Ajustes correctos e incorrectos de un modelo. Fuente: (Alberto, 2020) . . . . 27

xv

(16)

2.29 Ejemplo de binarización de una imagen de un documento. Fuente: (Pratikakis y cols., 2011) . . . 29 2.30 Comparativa de distintos métodos heurísticos para binarización. Fuente: (Mish-

ra y cols., 2017) . . . 30 3.1 Esquema de un SAE aplicado a la binarización de imágenes de documentos.

Cabe destacar que Xi es la i-ésima imagen del conjunto fuente para entrena- miento o, por el contrario, del conjunto objetivo para test. . . 34 3.2 Esquema del framework propuesto para adaptación al dominio para binariza-

ción de imágenes de documentos. . . 36 4.1 Ejemplo de proyecto de Google Colaboratory con los prototipos de los experi-

mentos . . . 38 4.2 Selección de unidad de aceleración por hardware de Google Colaboratory . . 38 4.3 Ejemplo de troceado de una imagen y la de su correspondiente binarización

manual. . . 41 4.4 Selección de la componente L del formato de color LAB de una imagen. . . . 42 4.5 Separación de cada dataset en 5 carpetas, donde GR contiene las imágenes de

entrada y GT las de salida esperada . . . 44 5.1 Ejemplos de trozos de imagen de los 4 datasets utilizados . . . . 47 6.1 Gráfico de los resultados en términos de F1(%), para los enfoques estudiados en

cada dominio excluido test utilizando como entrenamiento el resto de fuentes.

Cabe destacar que para el cálculo Global ideal se ha empleado la media de los resultados de los 3 dominios fuente siendo estos . . . 58 6.2 Gráfico con la media de los resultados de todos los modelos fuente para cada

enfoque. . . 59 6.3 Media de los resultados en 5-CV del clasificador de dominio para cada conjunto

de dominios fuente. . . 61

(17)

Índice de tablas

5.1 Detalles de los corpora. La información representada en cada columna hace referencia al número de páginas, la resolución media de las imágenes y el por- centaje de píxeles de tinta respecto de la imagen completa respectivamente. . 48 5.2 Descripción de la arquitectura SAE utilizada . . . 51 5.3 Descripción de la arquitectura utilizada para el clasificador de dominio. . . . 52 6.1 Media de los resultados del 5-CV en términos de F1 (%) para diferentes com-

binaciones de dominios fuente. La columna “media en target” representa la media de los resultados de los modelos fuente en los dominios objetivo exclui- dos, siendo 1 o 3 resultados los utilizados en dicho cómputo para los modelos de múltiples fuentes e individual respectivamente. Los casos ideales se refieren al uso del mejor modelo especializado para una o más muestras. . . 55 6.2 Media de los resultados en la métrica F1 (%) obtenidos por cada una de las

combinaciones de tres modelos fuente. . . 56 6.3 Media de los resultados en términos de F1 (%) en todos los targets (dominios

excluidos del entrenamiento) en cada enfoque considerado. El valor en negrita representa el mejor resultado en un escenario real, mientras que el subrayado indica el mejor caso ideal, únicamente proporcionado como referencia. . . 59 6.4 Media de los resultados en la métrica F1 (%) obtenidos por el clasificador de

dominio. En este caso el conjunto de test es un porcentaje de los 3 dominios usados en el entrenamiento, no siendo un dominio excluido. . . 60 6.5 Ejemplos seleccionados donde los enfoques propuestos se muestran claramente

beficiosos para la tarea de binarización en escenarios no supervisados, como son ante dominios no conocidos. Las columnas en orden representan las imá- genes de entrada, la binarización realizada por el mejor método base, por el mejor enfoque propuesto, el resultado de usar de manera ideal los binarizadores especializados y los datos ground-truth. . . . 62

xvii

(18)
(19)

1 Introducción

Hoy en día la Inteligencia Artificial (por su abreviatura, IA) está cada vez más presen- te en nuestras vidas: desde la comunicación con asistentes personales, hasta la conducción autónoma; logros que hasta hace pocos años parecían imposibles. Es bien sabido que, en la actualidad, la IA ha sufrido un enorme crecimiento en los últimos años gracias a los avances en el campo del aprendizaje profundo (del inglés Deep Learning, DL. Ver Figura 1.1) y al aumento de la capacidad de cómputo de los ordenadores.

Figura 1.1: Crecimiento de la IA en número de publicaciones y patentes. Fuente: (WIPO, 2019)

Así pues, este conocimiento ha sido aplicado en proyectos de numerosos campos con éxi- to. Entre ellos podemos destacar la traducción automática, diagnóstico de enfermedades, detección de objetos en imágenes y vídeo, reconocimiento facial y un largo etcétera. Concre- tamente, uno de estos campos es el relacionado con el procesamiento de imágenes, en especial con el tratamiento automático de documentos. Ejemplo de ello son el reconocimiento óptico de caracteres (OCR) y el reconocimiento óptico de música (OMR), que pretenden extraer de documentos, texto y contenido de partituras musicales respectivamente.

1

(20)

El presente trabajo está relacionado con esta última temática, la extracción de información de imágenes de documentos. Específicamente sobre la adaptación al dominio para binarización de imágenes de manuscritos, conceptos y objetivos que se detallan en los siguientes capítulos y secciones. Cabe destacar la importancia de este campo ya que un avance en estas técnicas supondría, en cierta medida, una reducción en la necesidad excesiva de etiquetado de datos manualmente, labor que lastra los avances en investigación sobre aprendizaje supervisado.

De esta forma se podrían conseguir modelos robustos ante muestras heterogéneas con menos datos etiquetados de forma manual, permitiendo así agilizar las investigaciones en este campo.

Con todo esto, a continuación se explica la motivación, objetivos y estructura del trabajo.

1.1 Motivación y objetivos

La binarización de imágenes de documentos es el proceso por el cual se distingue para cada píxel de una imagen, si este constituye tinta o papel. Así pues, este técnica (ver Figura 1.2), que se describe formalmente en la sección 2.4 del marco teórico, supone un procedimiento clave para la extracción automática de información de documentos fotografiados o escaneados.

(a) Original (b) Binarizada manualmente

Figura 1.2: Ejemplo de binarización de una imagen de un documento. Fuente: (Pratikakis y cols., 2011)

Hasta hace unos años, esta labor inicialmente se hacía de forma manual, lo que conllevaba gastar muchos recursos económicos y temporales. No obstante, desde la aplicación de técnicas de aprendizaje automático con redes neuronales al tratamiento de imágenes de documentos, este proceso se ha visto agilizado. Esto es así debido a que dichos modelos matemáticos son capaces de aprender a realizar una tarea similar a como la haría un humano usando datos

(21)

1.1. Motivación y objetivos 3

acompañados del resultado esperado. Pero, dado que existe un vasto número de documentos con características muy distintas, se requieren una gran cantidad de ellos fabricados ma- nualmente para permitir a estos modelos poder generalizar correctamente sobre muestras desconocidas y heterogéneas. Además, debido a que el modelo aprende a ajustarse a los datos le son proporcionados, acaba disponiendo de un cierto grado de especialización. Esto hace que, al ser utilizado con muestras muy distintas a las usadas en el aprendizaje, exista una pérdida de rendimiento.

Por ello, el propósito del trabajo se centra en estudiar la conveniencia o no de usar mode- los especializados en imágenes con características similares (dominios), frente a modelos más generales, por medio de una solución basada en técnicas de adaptación al dominio (del inglés Domain Adaptation, DA). Concretamente, el enfoque se propone está basado en el concepto de similitud de dominio (del inglés Domain Similarity, DS), donde otro modelo decide qué binarizador especializado utilizar en función de cuán parecida es la nueva imagen desconocida a las previamente utilizadas. Concretamente, lo que se perseguía en este trabajo era mejorar las técnicas actuales relacionadas con el entrenamiento de modelos dentro del campo de la binarización de documentos.

Entrando más en detalle, los objetivos de este trabajo han sido muchos y de distinta naturaleza. Esto es así debido a que al principal propósito de este proyecto, el aprendizaje, se le ha sumado el propio trabajo como fin en sí mismo; la investigación. Por ello, en retrospectiva, los objetivos perseguidos y alcanzados han sido los siguientes:

• Conocer, comprender y utilizar los conceptos básicos del machine learning, más concre- tamente del deep learning.

• Conocer las limitaciones del estado del arte sobre binarización y aprender sobre la adaptación al dominio.

• Aprender a cómo plantear un experimento con suficiente rigurosidad científica y de- sarrollar una metodología de trabajo orientada a la investigación en el campo de la computación.

• Desarrollar espíritu crítico para analizar, comprender y extraer conclusiones sobre los resultados.

• Adquirir la habilidad de entender artículos científicos y de replicar su metodología.

• Mejorar las habilidades y conocimientos de programación, además de conocer y utilizar diferentes herramientas comúnmente utilizadas en investigación y computación como son TensorFlow Keras, SciPy, Pandas, NumPy, Matplotlib, OpenCV, Sklearn, etc.

• Mejorar la habilidad y creatividad para plantear y buscar soluciones a los problemas y llevarlas a cabo.

• Aprender a realizar una investigación completa y documentar el trabajo.

(22)

1.2 Estructura del trabajo

En este apartado, con la finalidad de orientar y facilitar la lectura, se describe la estructura y secciones en las que está dividido el documento. Así pues, los capítulos en los que está compuesto el trabajo son:

• Capítulo 1: Introducción ⇒ Donde se comenta la relevancia de la inteligencia arti- ficial, estructura del documento y los objetivos del trabajo y académicos.

• Capítulo 2: Marco Teórico⇒ Donde se explica la base teórica de las redes neuronales y del problema a estudiar.

• Capitulo 3: Metodología ⇒ Donde se formaliza el problema, las arquitecturas uti- lizadas y los enfoques propuestos.

• Capítulo 4: Desarrollo ⇒ Donde se detallan las tecnologías utilizadas y el proceso de desarrollo.

• Capítulo 5: Experimentación ⇒ Donde se describen los experimentos, así como los enfoques estudiados, métricas y colecciones de datos utilizados.

• Capítulo 5: Resultados ⇒ Donde se describen y discuten los resultados de todos los experimentos llevados a cabo.

• Capítulo 6: Conclusiones ⇒ Donde finalmente se resaltan los resultados del apren- dizaje, de los resultados y los posibles futuros trabajos.

(23)

2 Marco Teórico

2.1 Inteligencia Artificial

La Inteligencia Artificial (IA), se trata de un término ampliamente utilizado para referenciar coloquialmente la inteligencia asociada a las máquinas en contraste con la de los seres vivos.

No obstante, es preciso definir este concepto. Según la definición de la RAE, se trata de una

“disciplina científica que se ocupa de crear programas informáticos que ejecutan operaciones comparables a las que realiza la mente humana, como el aprendizaje o el razonamiento lógico.”

Pero esta no es la primera definición de este término si no que su inicio se remonta al año 1956 en la conferencia de Dartmouth donde el concepto de inteligencia artificial es acuñado por primera vez. En dicha conferencia, los investigadores se reunieron bajo la premisa de que cualquier aspecto del aprendizaje o rasgo inteligente puede ser descrito con tanta precisión que una máquina podría simularlo. Así pues, dada tal visión prometedora, en los años venideros se derivaron grandes etapas de auge y depresión de la IA. Desde entonces (y una década antes), esta disciplina se ha visto implicada en numerosos campos como la robótica, neurociencia, ingeniería computacional, teoría de control y lingüística entre otros. Enfocándonos en el propósito de este trabajo, nos centraremos en las técnicas y algoritmos que permiten a una máquina aprender a resolver problemas como son los que comprenden las disciplinas del aprendizaje automático (Machine Learning ML) y aprendizaje profundo (Deep Learning, DL), descritas en la sección 2.3. A continuación se explica el aprendizaje automático comenzando por un breve repaso de su historia.

2.2 Historia del aprendizaje profundo

Figura 2.1: Línea del tiempo del Deep Learning (Vázquez, 2018)

5

(24)

2.2.1 Cibernética (años 1940 a 1960)

La primera ola del Deep Learning, denominada etapa cibernética, se inicia con los estudios sobre el aprendizaje biológico de Walter Pitts y Warren McCulloch. En ellos se contribuyó a la teoría de redes neuronales, autómatas, computación y cibernética, recogiéndose dichos avances en la famosa publicación (McCulloch y Pitts, 1943). En esta época se empezaron a intentar simular las neuronas biológicas mediante modelos matemáticos. Ejemplo de esto es el propuesto por dichos investigadores, el cual era capaz de distinguir dos categorías según el signo (ϕ) de la combinación lineal de unos datos de entrada x con un vector de pesos w ajustados manualmente:

f (x, w) = ϕ(x1· w1+ x2· w2+ x3· w3+ . . . + xn· wn) (2.1) Bajo la inspiración en estas ideas, 15 años más tarde surge un nuevo modelo, el perceptrón de Frank Rosenblatt (Rosenblatt, 1958). Este permitía el aprendizaje o entrenamiento de una única neurona, consistente en el ajuste de los pesos que multiplican las entradas, a partir de datos de entrada y salida. También de esta etapa cabe mencionar el modelo de neurona ADALINE (Widrow y Hoff, 1960), cuya diferencia respecto del perceptrón es el cálculo del error de la neurona antes de la aplicación de la función discriminadora signo. Esto permitía que el error cometido por la red fuera más ajustado, al utilizar el valor real obtenido por la suma del producto de los pesos por las entradas, acelerando la convergencia. Además, suprimiendo la función de umbral, el modelo resultante es capaz de realizar regresiones lineales.

Figura 2.2: Perceptrón (Rosenblatt, 1958) y ADALINE (Widrow y Hoff, 1960). Fuente: (Raschka, s.f.)

(25)

2.2. Historia del aprendizaje profundo 7

A pesar de que estos avances fueron importantes, en 1969 Marvin Minsky and Seymour Papert en su libro Perceptrons (Minsky y Papert, 1969) mostraron que estos modelos no eran capaces de resolver un problema tan simple como ajustar la función lógica XOR, cuya tabla de verdad se muestra en la Figura 2.3.

Figura 2.3: Función XOR: tabla de verdad y representación gráfica. Fuente: (Arranz, 2019)

Esto llevó a una gran decepción en cuanto a lo que se pensaban que eran capaces este tipo de técnicas inspiradas en las neuronas biológicas. Sumando al problema las altas expectativas que tenían los inversores y los pocos avances conseguidos en los siguientes años, se dio paso a lo que se conoce como el “invierno de la IA”. No obstante, pese a los pocos avances en los posteriores años, hubo uno importante, el algoritmo k-Nearest Neighbors (k-NN) en el año 1967 (Cover y Hart, 1967).

2.2.2 Conexionismo (años 1980 a 1995)

La segunda ola del aprendizaje profundo recibe el nombre de conexionismo y comprende la década de los 80 y primera mitad de los 90. En esta época se inventaron las redes neuronales feedforward, un tipo de modelo matemático basado en la composición de capas de neuro- nas cuya interconexión forma un grafo acíclico dirigido siempre en el sentido de la entrada hacia la salida. Expresado de otra forma, dicha arquitectura no dispone de realimentación que forme bucles en el grafo asociado (ver Figura 2.4a). Por el contrario, también en esta época se crearon las redes recurrentes (RNN del inglés Recurrent Neural Network) en 1982 (Hopfield, 1982). Dichas redes forman un grafo dirigido a lo largo de una secuencia temporal (ver Figura 2.4b). Esto permite que su comportamiento sea dinámico en el tiempo, usando su estado interno (memoria) para procesar entradas de longitud variable. Es por tales razones por las que este tipo de redes son ideales para problemas de reconocimiento del habla o de escritura manual.

Volviendo a las redes neuronales artificiales (ANN del inglés Artificial Neural Network) feedforward, una muy conocida es el perceptrón multicapa (o en inglés Multilayer Percep- tron, MLP). Así pues, esta arquitectura, gracias a las neuronas de sus capas intermedias y funciones de activación no lineales (ver Figura 2.5), es capaz de resolver ciertos problemas no lineales a diferencia del perceptrón. De esta forma, sí que se podía ajustar la función XOR.

(26)

(a) feedforward ANN (b) RNN

Figura 2.4: Comparación de una red neuronal feedforward con una recurrente. Fuente: (Rivera, 2018)

Figura 2.5: Arquitectura del perceptrón multicapa. Fuente: (Hassan y cols., 2015)

No obstante, todavía no existía un mecanismo automático para ajustar los pesos de la capa oculta. Por ello, Rummelhart y otros investigadores en 1986 propusieron el algoritmo de retropropagación o backpropagation (Rumelhart y cols., 1986). Gracias a este, se hizo posible llevar a cabo el aprendizaje de redes neuronales de múltiples capas de mediante datos de ejemplo. Así pues, permite calcular para cada neurona su contribución al error total come- tido gracias a obtenerlo para la capa de salida e ir propagándola hacia las anteriores. Dicho algoritmo proporciona una indicación de hacia qué dirección deben realizarse los ajustes en cada uno de los pesos para minimizar una función de costo o pérdida que se explica más en detalle en la sección 2.3.4.

(27)

2.2. Historia del aprendizaje profundo 9

También cabe destacar que en esta etapa se inventaron las redes neuronales convolucionales (CNN del inglés Convolutional Neural Network) (Fukushima, 1980). Estas redes multicapa deben su inspiración al córtex visual de los animales, siendo útil en varias aplicaciones princi- palmente para el procesamiento de imágenes. La primera CNN fue creada por Yann LeCun, conocida como LeNet-5 (LeCun y cols., 1989), y estaba enfocada en el reconocimiento de letras manuscritas (ver Figura 2.6). La arquitectura constaba de varias capas que implemen- taban la extracción de características que luego eran usadas, mediante una serie de capas ocultas y la de salida, para realizar la clasificación.

Figura 2.6: LeNet-5: primera CNN para clasificación de letras manuscritas. Fuente: (LeCun y cols., 1989)

Debido a estos avances, a mediados de los 90 los negocios e inversiones basados en redes neuronales empezaron a hacer promesas irrealizables que, sumado a los pocos logros conse- guidos en los años posteriores, llevaron a estas a un nuevo invierno que duraría hasta el año 2006. Pese a ello, hubo algunos avances como son la invención de un tipo de red recurrente, la Long Short Term Memory (LSTM) en el año 1997 (Hochreiter y Schmidhuber, 1997), que permite la preservación de conocimiento de este tipo de redes tanto por duraciones de tiempo cortas como largas.

2.2.3 Deep Learning (desde 2006)

Como última etapa, tenemos lo que se conoce como la tercera ola del Deep Learning. Es desde este periodo en que las redes neuronales, más concretamente el campo del aprendizaje profundo, se desligan claramente de las neuronas biológicas y la neurociencia. Este tipo de arquitecturas ya no pretenden simular aspectos biológicos de la mente humana, si no crear modelos con capacidad para resolver problemas, por medio de una jerarquía de conceptos.

Así pues, el aprendizaje profundo, debe su nombre a la profundidad que tendría la jerarquía de conocimientos necesaria para modelar problemas complejos, representada en las arquitec- turas mediante capas.

Esta etapa se inicia con tres trabajos importantes. El primero es publicado por Geoffrey Hinton y otros investigadores donde se presentan las redes de creencia profunda o Deep Belief Networks (DBN) en el año 2006 (Hinton y cols., 2006). En él se muestra una arquitectura de

(28)

red profunda donde las conexiones entre la capa de entrada y la primera capa oculta son no dirigidas y simétricas. Esto permite que los modelos basados en el tipo de arquitectura DBN puedan aprender a reproducir la entrada de forma no supervisada (sin datos de salida espera- da), para posteriormente mejorar la etapa de supervisada de entrenamiento para clasificación.

Así pues, los pesos de la red podían inicializarse de manera no aleatoria permitiendo agilizar la búsqueda de los parámetros. Esto supone un avance para el Deep Learning que estaba estancado debido a que era computacionalmente muy costoso entrenar redes profundas con inicialización de pesos aleatorios mediante backpropagation. Relacionado con dicho trabajo, también podemos destacar la máquina restringida de Boltzman (RBM, del inglés Restricted Boltzmann Machine) un año más tarde (Salakhutdinov y cols., 2007), cuya diferencia respecto a las DBN es que en este caso todas las conexiones son no dirigidas.

(a) DBN (b) RBM

Figura 2.7: Comparación entre arquitecturas DBN y RBM. Fuente: (Sarkar, 2013)

El segundo fue publicado, por Yoshua Bengio y otros investigadores en el cual se mues- tra un algoritmo de preentrenamiento voraz (que no reconsidera las decisiones previamente tomadas) de las capas de un modelo denominado autoencoder (Bengio y cols., 2007). Esta arquitectura, que se explica más en detalle en la sección 2.3.7, consiste en una red de neuronal que comprime las entradas en un espacio de dimensiones más reducido para posteriormente reconstruirla. El propósito de este trabajo era agilizar el entrenamiento de una red mediante una inicialización de pesos no aleatoria, aproximada a un mínimo local.

El tercer artículo que ayudó a impulsar el aprendizaje profundo fue Sparse Feature Learning for Deep Belief Networks (Ranzato y cols., 2007). En él, se mostraban otras representaciones o codificaciones ”dispersas” en más dimensiones. Esto permitía a los modelos tener la capa- cidad de aprender características por separado, facilitando generalmente la tarea.

Gracias a estos trabajos y derivados, numerosas arquitecturas nuevas han surgido con éxito en numerosos problemas. Una de las más relevantes es la red generativa antagónica (GAN, del ingĺes Generative Adversarial Network) (I. J. Goodfellow y cols., 2014). Este tipo de red tiene

(29)

2.3. Teoría del aprendizaje profundo 11

una gran cantidad de aplicaciones, ya que pueden aprender a imitar distribuciones de datos de casi cualquier tipo. Así pues permiten realizar una creación artificial de texto, imágenes, vídeo y audio entre otros. Tras este resumen breve sobre un conjunto reducido de hitos importantes de la historia del DL, pasamos a explicar los principales conceptos relacionados con el aprendizaje automático y profundo necesarios para entender el trabajo.

2.3 Teoría del aprendizaje profundo

En esta sección, con el propósito de poder entender el presente trabajo, se explicarán los conceptos y términos relacionados con el aprendizaje profundo, así como también la teoría asociada a ellos.

2.3.1 Aprendizaje automático

En el anterior apartado hemos definido lo que es la IA y un breve repaso a la historia del aprendizaje profundo, pero antes de explicar que es, debemos concretar el concepto de aprendizaje automático en el que está englobado (ver Figura 2.8). Así pues, el aprendizaje automático (o en inglés Machine Learning, ML), es una disciplina dentro de la IA que hace referencia a todos los algoritmos matemáticos que permiten a un modelo aprender por sí mismos a realizar predicciones y que engloba al concepto de aprendizaje profundo. De es- ta forma lo que persigue es que un modelo adquiera la capacidad de resolver una tarea sin haber sido indicado explícitamente cómo. Por lo tanto, se trata de un proceso de inducción del conocimiento que procura encontrar patrones complejos en conjuntos grandes de datos automáticamente, generalmente mediante ejemplos.

Figura 2.8: Jerarquía de la IA, ML y DL. Fuente: (Leiner y cols., 2019)

(30)

Para hacer posible esto, dichos modelos se someten a un proceso de aprendizaje que, aten- diendo a la forma en que se realiza este, se puede clasificar en 3 tipos:

• Aprendizaje supervisado: En este primer caso, la tarea es aprendida mediante da- tos de entrada junto con la salida correspondiente esperada (comúnmente adjetivada como etiquetada). Esta salida esperada suele denominarse clase, etiqueta o categoría y contiene los datos resultantes que debería producir el modelo asociados a unos de entrada concretos. Ejemplos de este tipo de datos etiquetados pueden ser una cifra, una clase dentro de un conjunto de posibles categorías o incluso una imagen. El tipo de salida depende del problema que se esté tratando teniendo problemas de clasificación y regresión, donde los valores esperados son etiquetas de clases o un valor real respectiva- mente. Ejemplos de algoritmos de clasificación son AdaBoost, Random Forest, Support Vector Machine (SVM) y de regresión ANOVA y regresión lineal.

• Aprendizaje no supervisado: En el aprendizaje no supervisado, en contraposición al del punto anterior, no requiere de datos etiquetados. Este tipo de aprendizaje bus- ca extraer características o features de los datos de entrada o procesarlos para algún objetivo. Así pues, las tareas a grandes rasgos más comunes son el clustering, donde se pretenden determinar agrupaciones de datos (clusters), y la reducción de dimensio- nalidad de los datos. Para el primer caso encontramos algoritmos como el K-means y para el segundo Principal Component Analysis (PCA), aunque hay otros que se escapan de esta clasificación como el autoencoder, una arquitectura concreta de red neuronal artificial (RNA).

• Aprendizaje por refuerzo: Por último tenemos el aprendizaje por refuerzo o Rein- forcement Learning (RL), donde el entrenamiento se realiza bajo la propia experiencia del modelo. Así pues, estos agentes, que es como comúnmente son llamados, procuran extraer patrones para maximizar la recompensa obtenida tras actuar con el entorno, ob- teniendo penalizaciones o bonificaciones según sus acciones. Por ello, el entrenamiento supone un ciclo de retroalimentación de los agentes interaccionando con el entorno que les permite explorar y aprender en función de las recompensas obtenidas. Gracias a la similitud con el aprendizaje de los animales, este tipo de técnicas están principalmente extendidas en el campo de la robótica. El ejemplo de algoritmo por excelencia de este tipo de aprendizaje es el Q-learning.

Cabe destacar que existe una cuarta generalización de aprendizaje automático, producto de la unión de dos de los previamente mencionados. Este es el aprendizaje semi-supervisado, que utiliza tanto datos etiquetados como no etiquetados. Su propósito atiende generalmente al problema de la falta de suficientes datos etiquetados en algunos problemas. Por ello, este tipo de aprendizaje, hace uso del supervisado con los datos disponibles y no supervisado de masivas cantidades de datos no etiquetados. A modo resumen, se muestra en la Figura 2.9 la arquitectura de la clasificación del aprendizaje automático.

Este proceso de aprendizaje, también suele recibir el nombre de fase de entrenamiento, mientras que cuando se hace uso de ese conocimiento adquirido previamente en el entrena- miento para reproducir la tarea aprendida sobre nuevos datos, la terminología empleada es

(31)

2.3. Teoría del aprendizaje profundo 13

Figura 2.9: Clasificación de los algoritmos de ML. Fuente: (Gramajo y cols., 2020)

fase de inferencia o predicción. Al igual, cabe mencionar que cuando nos referimos a los datos etiquetados se suele también emplear el término ground-truth.

2.3.2 Perceptrón, neurona y red neuronal

En 1958 se inventó el modelo de neurona artificial más simple, el perceptrón (Rosenblatt, 1958), el cual debe su inspiración a la neurociencia, concretamente a las neurona biológicas y su sinapsis (ver Figura 2.10).

Figura 2.10: Esquema de la sinapsis entre dos neuronas biológicas. Fuente: (Mas, 2014)

Este modelo, simulando las interconexiones entre diferentes neuronas biológicas, se com- pone de los siguientes elementos (ver Figura 2.11)

(32)

Figura 2.11: Esquema del modelo matemático de neurona artificial. Fuente: (Rico-Juan y cols., 2018)

• X: Vector de valores de entrada.

• W : Vector de pesos que multiplica elemento a elemento el vector de entrada X.

• b: Valor llamado bias o threshold que constituye un término independiente. Se construye incluyendo un 1 adicional a la entrada para dar la capacidad al modelo de desplazar el plano que separa el espacio.

• ∑

: Sumatorio de los productos entre cada xi y wi.

• f : Función de activación que devuelve el resultado final de la salida

Así pues, la operación realizada por la neurona puede expresarse de la siguiente forma:

y = f (

n i=1

xiwi+ b) (2.2)

En el caso concreto del perceptrón, f se trata de la función binaria discriminadora de signo, por lo que comprende dos valores como resultado; 0 para entradas negativas y 1 para positivas:

f (x) =

{1 si x > 0

0 si x≤ 0 (2.3)

Esta función es la principal diferencia de este modelo respecto a las neuronas artificiales, donde en estas segundas son no lineales y se describen en la sección 2.3.3. Dado que la función discriminadora realiza una clasificación binaria, divide el espacio de soluciones en dos (ver Figuras 2.12a y 2.12b). Esto no permite ajustar funciones no lineales como la XOR mencio- nada en la sección (2.2.1). Por ello, mediante el uso de dichas funciones y la combinación del resultado de distintas neuronas distribuidas en capas (comúnmente denominadas densas), lo que obtenemos es un clasificador no lineal capaz de resolver el problema (ver Figura 2.12c).

Este tipo de modelos son conocidos como redes neuronales y su arquitectura está compuesta por 3 tipos de capas: una de entrada, una o más ocultas y una de salida (ver Figura 2.13).

(33)

2.3. Teoría del aprendizaje profundo 15

(a) AND (b) OR (c) XOR

Figura 2.12: Clasificación de funciones lógicas. Fuente: (Wikipedia, 2021b)

Figura 2.13: Arquitectura de una red neuronal artificial. Fuente: (Rico-Juan y cols., 2018)

2.3.3 Funciones de activación

Este tipo de funciones buscan romper la linealidad de los datos de entrada. Además dispo- nen de una característica importante que es que son derivables en todo su dominio, lo cual será útil como comentaremos más adelante. Así pues describiremos las más utilizadas, a pesar de que existen otras muchas.

• ReLU (Fukushima, 1980): Esta función tiene la característica de ser proporcional para valores positivos y nula para negativos (ver ecuación 2.4), lo que hace que su rango sea [0, ∞). Por ello su derivada es 0 para valores negativos y 1 para positivos (ver ecuación 2.5). Se puede apreciar la forma de esta función en la Figura 2.14a.

ReLU (x) = max(0, x) (2.4)

ReLU(x) =

{0 si x < 0

1 si x≥ 0 (2.5)

(34)

• TanH: La tangente hiperbólica se trata de una función con dos asíntotas horizontales en -1 y 1, por lo que su recorrido está comprendido en el rango (-1, 1). También dispone de un punto de inflexión en el (0, 0) como se aprecia en la Figura 2.14b. Su función (ecuación 2.6) y derivada (ecuación 2.7) son las que siguen:

T anH(x) = ex− e−x

ex+ e−x (2.6)

T anH(x) = 1− T anH(x)2 (2.7)

• Logística o sigmoidea: Esta función dispone de una forma de “S” similar a la de tangente hiperbólica, con la diferencia principal, entre otras, de que su rango es (0, 1).

También esta función dispone de un punto de inflexión, en este caso en el (0, 0.5) como se puede apreciar en la Figura 2.14c. Su fórmula y derivada se indican a continuación:

σ(x) = 1

1 + e−x (2.8)

σ(x) = σ(x)(1− σ(x)) (2.9)

• Softmax (Bridle, 1989): Esta función es un caso especial general de la función logística, donde se comprimen las salidas de un vector de reales de K dimensiones entre 0 y 1 haciendo que el sumatorio de como resultado una unidad. Poniendo como ejemplo el vector [1, 2, 3, 4, 3, 2, 1], la función softmax devuelve [0.024, 0.064, 0.175, 0.475, 0.175, 0.064, 0.064]. Así pues, el cálculo que hace esto posible se expresa en la siguiente ecuación (ver ecuación 2.10).

σ(x) = exj

K

k=1ezk para j = 1, . . . , K (2.10) A continuación se muestran las gráficas de las funciones descritas:

(a) ReLU (b) TanH (c) Logística

Figura 2.14: Ejemplos de funciones gráficas de activación

Cabe destacar que existen otras muchas funciones como por ejemplo arcotangente, softsign, Leaky Rectified Linear Unit (LReLU) e Inverse Square Root Unit (ISRU).

(35)

2.3. Teoría del aprendizaje profundo 17

2.3.4 Funciones de pérdida

Con el propósito de establecer una medida de cómo de buena es la inferencia de nuestro modelo y cuantificar tal aspecto, se hace uso de una función de costo o pérdida. Dichas funciones establecen un valor del error cometido por el modelo, pudiendo penalizar más o menos según las características que mayor tenga en cuenta. Dado que existen diferentes tipos de problemas donde las salidas son de naturaleza distinta, como clasificación y regresión, explicamos las principales funciones de cada uno de ellos:

Regresión

En este tipo de problemas el resultado es un número real, que puede comprender un con- junto infinito de valores. Ejemplos de este tipo de problemas son la predicción de la edad de una persona en una imagen o del valor del alquiler de una vivienda según sus características.

Por ello, estas funciones suelen estar relacionadas con la proximidad del valor inferido al real.

Para ello se suelen usar las siguientes funciones:

• Error absoluto medio (Mean Absolute Error, MAE): Esta medida realiza la media del error de la diferencia en valor absoluto de cada predicción con el resultado esperado (ver ecuación 2.11).

M AE = (1 n)

n i=1

|yi− xi| (2.11)

• Error cuadrático medio (Mean Squared Error, MSE): Esta medida calcula la media de la diferencia al cuadrado del valor inferido respecto del real (ver ecuación 2.12).

Esto permite que las diferencias más grandes, es decir, las más equivocadas, penalicen en mayor medida.

M SE = (1 n)

n i=1

(yi− xi)2 (2.12)

Clasificación

En este caso el resultado es una clase, entre un número limitado de ellas, como por ejemplo el tipo de vehículo que aparece una imagen entre un conjunto posible de categorías. Este tipo de funciones suelen medir generalmente la falta de similitud entre la distribución de probabilidad que disponen los datos y la del modelo. La principal función para este tipo de problemas es la de entropía cruzada o crossentropy (ver ecuación 2.13):

H(p, q) =−

∀x

p(x) log(q(x)) (2.13)

Donde p y q son la distribución de probabilidad real y de la predicción, respectivamente.

(36)

2.3.5 Backpropagation

Una vez disponemos ya de una cuantificación del error cometido y el propio modelo, debe- mos ajustar los pesos de cada neurona para intentar minimizar dicha función de coste. Para ello se hace uso del algoritmo de retropropagación o backpropagation, que calcula el gradiente del vector de pesos entrenables según la contribución de cada neurona al error total. Para ello, tras realizar la predicción con unos datos de entrada (etapa de forward propagation o propagación hacia adelante), calcula, transmite el resultado hacia atrás y repite el cálculo con las capas anteriores (ver Figura 2.15). De aquí la importancia que mencionábamos sobre la derivabilidad de las funciones de activación, la cual es un requisito indispensable para el cálculo del gradiente.

Figura 2.15: Esquema del algoritmo de retropropagación. Fuente: (Torres, 2019)

Gracias a este gradiente, podemos hacer ajustes mínimos en tal dirección para procurar encontrar un mínimo dentro del posible hiperespacio de soluciones. Esto mismo es lo que realizan los algoritmos optimizadores que se describen en la siguiente sección.

2.3.6 Algoritmos optimizadores

Como ya se ha comentado, este tipo de algoritmos pretenden alcanzar un mínimo global en el espacio de soluciones gracias a buscar un ajuste de pesos adecuado. Para ello, hacen uso del gradiente previamente calculado con backpropagation para determinar el salto que debe realizarse en cada peso. Así pues, estos algoritmos constituyen una estrategia para la minimización de la función de coste. Con ello, describimos los principales:

(37)

2.3. Teoría del aprendizaje profundo 19

• Descenso por gradiente (Gradient Descent, GD): Este algoritmo, determina el salto que debe producirse para “descender” en la dirección del gradiente (ver Figura 2.16). Para ello, dispone de un hiperparámetro llamado tasa de aprendizaje o learning rate (α), que permite ajustar proporcionalmente la longitud de los desplazamientos.

Esto es debido a que cambios muy pequeños conllevan a que el modelo converja muy lentamente mientras que muy grandes pueden hacer al algoritmo no convergente al

“saltar los mínimos” (ver Figura 2.17).

Figura 2.16: Descenso por gradiente. Fuente: (Torres, 2019)

Figura 2.17: Descenso por gradiente no converge por una tasa alta de aprendizaje. Fuente: (Torres, 2019)

• Descenso por gradiente estocástico (Stochastic Gradient Descent, SGD) (Bottou, 2010): Este algoritmo es una variación del anterior el cual introduce una com- ponente estocástica o aleatoria. La principal diferencia reside en el conjunto de datos utilizado para calcular el gradiente, siendo en este caso un único ejemplo aleatorio por época (online learning), a diferencia de todo el conjunto (batch learning). Así pues, cuan- do se utilizan todos los datos, el algoritmo recibe el nombre de batch gradient descent.

Otra posibilidad es realizar el entrenamiento por subconjuntos o lotes (mini-batches) del total (batch), resultando en lo que se conoce como mini-batch gradient descent. Es-

(38)

tas técnicas permiten aproximar la dirección del gradiente sin tener que procesar todos los datos, lo que ofrece ventajas como realizar más actualizaciones (steps) con el mis- mo conjunto de datos, reduciendo así el tiempo de búsqueda. También, al aproximar de forma menos precisa el gradiente, introduce un cierto error asociado al ruido de la muestra, que en ocasiones permite poder evitar mínimos locales. No obstante, ligada a las dos ventajas mencionadas, existe una compensación en forma de menor ratio de convergencia.

• AdaGrad (Duchi y cols., 2011) y Adadelta (Zeiler, 2012): Encontrar un valor arbitra- rio y fijo a la tasa de aprendizaje puede ser complicado y a la vez dirigir ineficientemente la búsqueda. Para ello Adaptive Gradient Algorithm (AdaGrad) intenta adaptar el ratio de aprendizaje global a partir de la acumulación del historial de gradientes. Concreta- mente procura ajustarlo para cada parámetro de forma inversamente proporcional a la raíz cuadrada de la suma del cuadrado de los gradientes previos. Esto regula los cam- bios para cada parámetro, asignando una tasa de aprendizaje pequeña a aquellos cuya derivada parcial es muy grande, mientras que aquellos cuya derivada no es tan grande, apenas ven reducido dicho ratio. El problema que dispone este algoritmo es que la tasa de aprendizaje se va reduciendo conforme se van acumulando los gradientes. Para so- lucionar esto, Adadelta lo que introduce es el uso de una ventana de N gradientes en lugar de todos para el cálculo de la media de estos.

• RMSProp (Tieleman y Hinton, 2012): Similar a Adadelta, Root Mean Square Pro- pagation (RMSProp) también procura resolver el problema de la reducción de la tasa de aprendizaje producto del promedio del historial acumulado de gradientes. Para ello, realiza un promedio ponderado exponencialmente, de forma que los gradientes más cercanos influyen más que los lejanos.

• ADAM (Kingma y Ba, 2015): Los autores de este algoritmo lo definen como la com- binación de otros dos derivados del descenso por gradiente; el AdaGrad y el RMSProp.

Así pues, este combina el promedio de los gradientes al cuadrado con el promedio pon- derado exponencialmente, usando dos hiperparámetros para controlar ambos. De esa forma, se ve beneficiado de sendos enfoques, haciéndolo más robusto.

2.3.7 Redes convolucionales

En esta sección se explican un tipo de arquitectura extensamente utilizada para procesa- miento de imágenes, las redes convolucionales (CNN). Para poder entender su funcionamiento primero explicaremos los conceptos de convolución y pooling.

Convolución

Una convolución es una función, que de forma lineal y continua, transforma una señal de entrada en una nueva señal de salida. Concretamente sobre matrices de datos, se aplica otra llamada kernel. El proceso que de convolución sobre un único valor de una matriz compren- de centrar la ventana del kernel sobre el, multiplicar cada valor asociado y sumar todos los resultados (ver Figura 2.18). Este proceso se repite para todos los valores de la matriz original.

(39)

2.3. Teoría del aprendizaje profundo 21

Figura 2.18: Ejemplo de operación de convolución sobre un único valor

Dado que una imagen puede expresarse como una matriz de datos, estas operaciones per- miten transformar dichas imágenes. Así pues, existen muchos tipos de kernels creados ma- nualmente que se emplean para realizar por ejemplo enfoques, desenfoques, realce y detección de bordes entre otros (ver Figura 2.19).

Figura 2.19: Ejemplos de kernels aplicados a una imagen. Fuente: (Wikipedia, 2021a)

Pooling

Pooling es una operación que busca realizar un submuestreo o subsampling, es decir, re- sumir una matriz de datos a una más pequeña comprimiendo sus dimensiones espaciales de altura y anchura. Para ello aplica una función sobre una ventana de dimensiones concretas, devolviendo como resultado un único valor. Las principales funciones utilizadas tras las ope- raciones de convolución son max pooling (ver Figura 2.20a) y average pooling (ver Figura 2.20b), que devuelven el máximo y la media de los valores de dicha ventana o pool, respecti- vamente.

(40)

(a) Max (b) Average

Figura 2.20: Tipos comunes de pooling. Fuente: (Yani y cols., 2019)

Cabe destacar que también existe la operación contraria de aumentado de las dimensiones, conocida como upsampling. Para ello se hace uso de una función de unpooling (ver Figura 2.21), la cual necesita poder traducir de características de grano grueso a más densas y detalladas. La forma más sencilla de conseguir esto es replicar el valor para cada una de las filas y columnas que se van a generar. Otra posibilidad más compleja es utilizar la matriz transpuesta de una convolución, para lo cual se debe tener en cuenta que en una red neuronal dichos pesos serán compartidos.

Figura 2.21: Comparación de operación de pooling y unpooling. Fuente: (Benbihi, 2018)

Redes convolucionales (CNN)

Así pues, una red convolucional emplea operaciones de convolución y pooling sobre una imagen para procesarla, donde los valores de los kernel constituyen pesos que el modelo debe ajustar. De esta forma, en lugar de emplear o crear matemáticamente un filtro que realice la tarea esperada, este es aprendido automáticamente mediante datos de ejemplo. La arquitectura de una CNN típica suele intercalar operaciones de convolución y pooling para resumir la imagen en características. Posteriormente aplana las matrices resultantes en un único vector que es procesado por unas capas completamente conectadas o fully connected, similares a un MLP, para realizar la tarea final (ver Figura 2.22).

(41)

2.3. Teoría del aprendizaje profundo 23

Figura 2.22: Arquitectura de una CNN. Fuente: (Jones, 2017)

Dado que las operaciones de convolución inicialmente son aplicadas a una pequeña porción de la imagen, y a medida que se aplican junto con poolings se van reduciendo, dichos filtros acaban observando la imagen total procesada. Esto crea una jerarquía de características de menor a mayor nivel, como podemos ver en el ejemplo de la Figura 2.23.

Figura 2.23: Ejemplo de jerarquía de características. Fuente: (Rico-Juan y cols., 2018)

Redes completamente convolucionales (FCNN)

Un tipo concreto de red convolucional es la completamente convolucional (FCNN del inglés Fully Convolutional Neural Network). La diferencia que tiene respecto de las CNN es que no dispone de capa fully connected, por lo que solo está compuesta por operaciones de convolu- ción y pooling. Este tipo de arquitectura es interesante debido a que la salida generalmente suele ser una imagen procesada con algún cierto fin. Un ejemplo concreto de arquitectura de tipo FCNN muy utilizada es la autoencoder. Este tipo de red procura reconstruir la entrada utilizando de por medio capas de tamaño reducido que permiten obtener una representación intermedia. Así pues, las partes que constituyen este modelo son un encoder que comprime la información, una representación intermedia reducida y un decoder que procura recuperar dicha información (ver Figura 2.24).

Aunque esto no parezca útil, entrenado de forma no supervisada para reconstruir la entrada, este modelo permite comprimir la información con la menor pérdida posible, extrayendo así también características. Si bien es cierto que este tipo de arquitectura inicialmente se utilizaba para realizar una selección de pesos no aleatoria para redes generalmente no convolucionales, tal y como se explicó en la sección 2.2.3, cuando se emplea con imágenes y operaciones de convolución permite reconstruir la imagen inicial realizándole algún tipo de procesamiento

(42)

Figura 2.24: Partes de un autoencoder. Fuente: (Rico-Juan y cols., 2019)

Ejemplos de usos de esta arquitectura son los que se muestran en la Figura 2.25.

Figura 2.25: Ejemplos de uso de un autoencoder. Fuente:(Rico-Juan y cols., 2019)

2.3.8 Parámetros del entrenamiento

En esta sección definiremos dos de los parámetros que condicionan el entrenamiento.

• Tamaño de lote (batch): Este valor indica el número de muestras que se utilizan para estimar el gradiente. Es importante establecer un buen tamaño debido a las im- plicaciones que tiene:

– Muy grande ⇒ El gradiente está más aproximado, lo que quiere decir que se reduce el ruido introducido por la muestra y se produce menos error en la dirección en la cual se reduce el costo. Sin embargo, hace que sea más lento al realizar menos actualizaciones por época. También, en la práctica, puede conllevar el uso gran cantidad de recursos computacionales disponer de muchos datos cargados en memoria siendo operados por el modelo al mismo tiempo. Para esto último una solución es generar y proporcionar los datos just in time (JIT).

(43)

2.3. Teoría del aprendizaje profundo 25

– Muy pequeño ⇒ Permite reducir el tiempo de búsqueda al aproximar de forma más temprana el gradiente usando menos datos. Así pues, se permite hacer muchas actualizaciones en la misma época. También, el error introducido con el ruido de una muestra reducida puede permitir evitar mínimos locales. Como inconveniente, puede afectar al rendimiento.

• Número de épocas (epochs): Este parámetro determina cuántas veces se van a utilizar todos los datos de entrada para ajustar los pesos de la red.

2.3.9 Selección de datos

En esta sección se explican distintos conceptos relacionados con la selección de datos como son las particiones y la técnica de validación cruzada.

Particiones de datos

A la hora de entrenar y evaluar nuestro modelo, es preciso seleccionar correctamente los datos. Esto se debe a que uno de los objetivos de este es que sepa generalizar ante muestras desconocidas, ya que en una fase de inferencia en un entorno real no se disponen de las salidas esperadas etiquetadas correctamente. Por ello es importante a la hora de evaluarlo, que los datos que se utilicen sean distintos a los empleados para el entrenamiento. Para ello, se hace uso de particiones sobre una misma colección, las cuales se explican a continuación:

• Entrenamiento: Como bien indica el nombre, esta partición es la empleada para la fase de aprendizaje del modelo. Con ella se pretende reducir el error de la muestra o error in sample.

• Validación: Esta partición se utiliza para estimar el error fuera de la muestra o out of sample. El propósito de esta separación atiende a detectar cuándo se produce un mínimo en el error sobre datos distintos a los aprendidos, de forma que se pueda encontrar el mejor punto del modelo durante el entrenamiento antes de que este empiece a sufrir sobreentrenamiento u overfitting. Este fenómeno se explica en la sección 2.3.10.

• Test: Esta partición se utiliza para medir finalmente cuán bueno es el modelo genera- lizando ante muestras desconocidas. Para ello se evalúa sobre una porción de datos no utilizada, tras entrenar y validar con las particiones previamente descritas.

Validación cruzada

La validación cruzada (CV del inglés Cross Validation) es una técnica que pretende, ga- rantizando la independencia entre las particiones de entrenamiento y prueba, evaluar los resultados de un análisis estadístico. Así pues, el propósito que persigue es medir cuán de bueno es un modelo en un entorno con predicciones reales. Entre los esquemas más utilizados de validación cruzada, el más empleado se conoce como K-fold cross validation. Esta técnica consiste en rotar en K iteraciones, subconjuntos de datos de la colección del mismo tamaño asignados a cada una de las particiones de entrenamiento, validación y test (ver Figura 2.26), para finalmente sacar la media de los resultados. Generalmente, suele aplicarse con K = 10, resultando en lo que se conoce como 10-CV.

(44)

Figura 2.26: Esquema K-fold Cross Validation con K=5 donde ’holdout’ hace referencia a la parti- ción de test. Fuente: (Pratt, 2019)

2.3.10 Problemas del entrenamiento

En este apartado explicaremos dos de los problemas más comunes que se dan en el apren- dizaje de modelos. Estos están relacionados en gran medida con los datos utilizados. Así pues hablaremos del desbalance de datos y el sobreentrenamiento u overfitting.

Desbalance de datos

Uno de los problemas se presenta cuando existen cantidades muy distintas de muestras de cada una de las clases. Esto supone un obstáculo al modelo para aprender a inferir correc- tamente sobre cada una de ellas, a la vez que afectar los resultados de las métricas que no consideren este aspecto. Un ejemplo sencillo de esta casuística podría ser una clasificación binaria de por ejemplo, imágenes de dígitos y letras. Si el modelo en su aprendizaje recibe un 95% muestras de dígitos y un 5% de letras, sin mucha complicación puede aprender a inferir siempre la clase dígito. Esto se debe a que el costo obtenido de realizar esta predicción es muy bajo al acertar sobre el 95% de las muestras. Sin embargo, siempre falla con la clase contraria, ya que el modelo no ha aprendido correctamente la tarea pese a que en la métrica de tasa de acierto sí que lo parezca. Para evitar que este problema se reproduzca en el entrenamiento de un modelo, podemos aplicar las siguientes regularizaciones:

• Modificar la función de pérdida: Ponderando de manera distinta el error cometido en la predicción de cada clase, modificando la probabilidad a priori de los datos de entrada.

Con esto se pretende penalizar más los fallos de la clase minoritaria para que, pese a que su número de muestras es proporcionalmente más reducido, contribuya más al error total. Estos pesos asociados a las clases se conocen en inglés como class weights.

(45)

2.3. Teoría del aprendizaje profundo 27

• Modificar la cantidad de muestras: para forzar el balance en el número de elementos de cada clase. Para ello se puede realizar una reducción de las muestras de la clase mayoritaria o, por el contrario, creación de nuevos datos. Para esto, las técnicas más empleadas son la replicación, consistente en la repetición de muestras de las clases minoritarias, sintetización creando nuevos datos artificiales o aumentado. Esto últi- mo, estriba en la generación de nuevas imágenes a partir de realizar sobre la existentes transformaciones como traslación, rotación, ampliación, enfoque, ajustes de brillo, con- traste, deformaciones no lineales o inyección de ruido entre otras (ver Figura 2.27).

Figura 2.27: Ejemplos de aumentado de datos. Fuente: (Rico-Juan y cols., 2018)

Sobreentrenamiento

Cuando se entrena un modelo, lo que se está haciendo es intentar que reproduzca la tarea asociada a los datos utilizados. Esto hace que se ajuste concretamente a lo que ha observado reduciendo el error en la muestra (error in sample) con el propósito de generalizar correc- tamente sobre una muestra desconocida (error out of sample). El problema llega cuando el modelo se empieza a ajustar demasiado a los datos de entrada, aprendiendo el ruido o ca- racterísticas muy específicas de dicha muestra, lo que produce una pérdida en el rendimiento en otros datos no conocidos. Esto se conoce como sobreentrenamiento u overfitting y puede apreciarse en la Figura 2.28c.

(a) Underfitting (b) Buen ajuste (c) Overfitting

Figura 2.28: Ajustes correctos e incorrectos de un modelo. Fuente: (Alberto, 2020)

(46)

Como soluciones se pueden realizar distintos tipos de regularización, como son:

• Modificando la función de pérdida: Evitando que los pesos puedan crecer demasiado.

Esto se debe a que cuanto más grandes son estos, mayor es la complejidad del mo- delo y, por tanto, la probabilidad de sobreentrenar. Algunos ejemplos de funciones de regularización son:

– Regularización L1: Esta técnica, también llamada Lasso Regression añade una penalización por el valor de los pesos de magnitud valor absoluto. Esta regulari- zación es controlada con un parámetro λ≥ 0 y constituye el segundo sumando de la siguiente ecuación.

loss = error(y, ˆy) + λ

j

j| (2.14)

– Regularización L2: Otra fórmula de penalización similar, consiste en utilizar la suma del cuadrado de los pesos, lo que se conoce también como Ridge regression:

loss = error(y, ˆy) + λ

j

β2j (2.15)

• Modificando los datos o la forma en que se proporcionan: De modo que el modelo apren- da menos ruido o detecte cuando empieza a sobreentrenar. Las técnicas más comunes en este caso son:

– Aumentado de datos: Con esto lo que se persigue es que exista mayor número de muestras para evitar que el modelo se sobreajuste al ruido de un número reducido de ellas.

– Validación y early stopping: Esta regularización consiste en estimar durante el aprendizaje el error mínimo fuera de la muestra mediante una partición de datos distinta a la del entreno y así seleccionar el mejor modelo cuando ya no exista mejora. Para esto último se suele emplear lo que se conoce como parada temprana o early stopping, donde el modelo detiene el entrenamiento tras transcurrir un número de épocas determinado en las que no hay mejora en la métrica sobre los datos de validación. El parámetro que controla esta duración se llama paciencia.

• Cambiando el enfoque del entreno: para modificar cómo el modelo aprende, evitando que pueda ajustarse por completo a los datos. Para ello las dos técnicas más utilizadas son:

– Inyección de ruido: Una forma fácil de conseguirlo es variar mínima y aleato- riamente los pesos que el modelo debe ajustar.

– Uso de dropouts: Otra solución se basa en “apagar” aleatoriamente neuronas, lo que se conoce como dropout. Concretamente esta técnica consiste en modificar las entradas de una capa colocando un porcentaje de ceros aleatoriamente, de forma que los pesos asociados a dichas entradas no puedan ajustarse.

(47)

2.4. Binarización 29

2.4 Binarización

Una vez explicada la teoría asociada al problema a tratar, el siguiente paso es describir este.

Así pues, la binarización representa una tarea fundamental en muchos procesos de análisis de imágenes de documentos o Document Image Analysis (DIA) como muestran (He y cols., 2015) y (Giotis y cols., 2017). Esto se debe a que permite resaltar la información relevante como por ejemplo la tinta de un documento. Concretamente, esta técnica consiste en una clasificación en dos categorías que, en el caso de imágenes, se emplea generalmente a nivel de píxel (segmentación). Aplicado a imágenes de documentos, la operación más común consiste en clasificar cada uno como tinta o papel (ver Figura 1.2), facilitando posteriores procesos de extracción de información. Dada esta importancia, existe una gran cantidad de literatura asociada tanto en artículos y revisiones como por ejemplo (Tensmeyer y Martinez, 2020) y (Sulaiman y cols., 2019).

(a) Original (b) Binarizada manualmente

Figura 2.29: Ejemplo de binarización de una imagen de un documento. Fuente: (Pratikakis y cols., 2011)

A lo largo de los años, se han empleado procedimientos heurísticos para abordar la tarea como el uso de operadores morfológicos, algoritmos de búsqueda para grafos o análisis del histograma de la imagen entre otros. El proceso más directo y sencillo para binarización es la umbralización, mediante el cual todos los píxeles que estén por encima de un valor concreto son puestos a 1 y el resto a 0. Así pues, se han inventado algoritmos que estiman automáticamente dicho umbral global como (Otsu, 1975) y para cada píxel dependiendo de su vecindad como los propuestos por (Niblack, 1985), (Sauvola y Pietikäinen, 2000) y (Wolf

Referencias

Documento similar

&#34;No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

Gómez, Fallan Cuentas a Peña Nieto, periódico Mural, Guadalajara, Jalisco, sección nacional, 30 de abril del

El tercero tiene notas bajas pero la mayor es estadística, una de las temáticas trabajadas de forma más mecánica, asimismo el último arquetipo muestra que, aun con notas buenas,

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Sin la fidelidad entre ambos no se entiende la defensa que hizo Felipe González de Guerra al estallar el escándalo de su hermano, como tampoco se comprende la importante

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación