Las redes neuronales se enfrentan al reconocimiento para identificar la identidad de una persona de FindFace. Sistemas de reconocimiento facial de inteligencia artificial y aprendizaje automático.

Amigos, continuamos la historia sobre redes neuronales que comenzamos la última vez y de cómo funciona la tecnología de reconocimiento facial y inteligencia artificial.

¿Qué es una red neuronal?

Una red neuronal en el caso más simple es un modelo matemático que consta de varias capas de elementos que realizan cálculos paralelos. Inicialmente, dicha arquitectura fue creada por analogía con los elementos computacionales más pequeños del cerebro humano: las neuronas. Los elementos informáticos mínimos de una red neuronal artificial también se denominan neuronas.

Las redes neuronales generalmente consisten de tres o más capas: la capa de entrada, capa oculta (o capas) y capa de salida (Fig.1), en algunos casos las capas de entrada y salida no se toman en cuenta, y luego el número de capas en la red se calcula por el número de capas ocultas. Este tipo de red neuronal se llama perceptrón.

El perceptrón más simple

Fig. 1. El perceptrón más simple.

Una característica importante de una red neuronal es su capacidad de aprender con los ejemplos, esto se llama master learning (aprendizaje con un maestro). Una red neuronal se entrena con una gran cantidad de ejemplos que consisten de pares de entrada-salida (entrada y salida correspondientes). Dentro de las tareas de reconocimiento de objetos, dicho par será la imagen de entrada y la etiqueta correspondiente, el nombre del objeto. El entrenamiento de la red neuronal es un proceso operativo que reduce la desviación de la salida de la red de una “respuesta del maestro” dada, una etiqueta correspondiente a esta imagen (Fig. 2).

Este proceso consiste de los pasos llamados épocas de aprendizaje (generalmente son miles), en cada uno de los cuales se ajustan las “pesas” de la red neuronal: los parámetros de las capas ocultas de la red. Una vez completado el proceso de entrenamiento, la calidad de la red neuronal suele ser lo suficientemente buena como para completar la tarea para la que fue entrenada, aunque a menudo es imposible seleccionar el conjunto óptimo de parámetros que idealmente reconoce todas las imágenes.

Fig. 2. Entrenamiento de la red neuronal

¿Qué son las redes neuronales profundas?

Las redes neuronales profundas son redes neuronales que consisten de varias capas ocultas (Fig. 3). Esta imagen es una imagen de una red neuronal profunda, que muestra una idea general de cómo se ve una red neuronal. Sin embargo, la arquitectura real de las redes neuronales profundas es mucho más compleja.

Fig. 3. Una red neuronal con muchas capas ocultas.

Por supuesto los creadores de redes neuronales convencionales se inspiraron primeramente por las estructuras biológicas del sistema visual. Los primeros modelos computacionales basados ​​en el concepto de organización jerárquica del flujo visual de primacía se conocen como Neocognitron [1] Fukushima (Fig. 4). Una comprensión moderna de la fisiología del sistema visual es similar al tipo de procesamiento de información en redes convolucionales, al menos para el reconocimiento rápido de objetos.

Fig. 4. Un diagrama que muestra las conexiones entre las capas en el modelo Neocognitron [1].

Más tarde, este concepto fue implementado por el investigador canadiense Ian LeKun en su red neuronal convolucional, creada por él para reconocer los caracteres escritos a mano [2]. Esta red neuronal constaba de dos tipos de capas: capas convolucionales y las de submuestreo (o capas de agrupación). En esta red cada capa tiene una estructura topográfica, es decir, cada neurona está asociada con un punto fijo en la imagen original, así como con el campo receptivo (el área de la imagen de entrada que se procesa por esta neurona).

En cada lugar de cada capa hay varias neuronas diferentes, cada una con su propio conjunto de pesas iniciales asociadas con las neuronas en un fragmento rectangular de la capa anterior. Diferentes fragmentos rectangulares de entrada con el mismo conjunto de pesas están asociados con neuronas de diferentes ubicaciones.

La arquitectura general de la red neuronal profunda para el reconocimiento de patrones se muestra en la Figura 5. La imagen de entrada se representa como un conjunto de píxeles o pequeñas secciones de la imagen (por ejemplo, 5 por 5 píxeles)

Fig. 5. Diagrama de red neuronal convolucional

Generalmente las redes neuronales profundas se representan de forma simplificada: como etapas de procesamiento, que a veces se denominan filtros. Cada etapa difiere de otra con una serie de características, como el tamaño del campo receptivo, el tipo de características que la red aprende a reconocer en esta capa y tipo de cálculos realizados en cada etapa.

Los ámbitos de las redes neuronales profundas, incluyendo a las redes convolucionales, no se limitan al reconocimiento facial. Son ampliamente utilizados para el reconocimiento de voz y las señales de audio, para procesar lecturas de varios tipos de sensores o segmentar imágenes complejas de múltiples capas (como mapas satelitales [3]) o imágenes médicas (rayos X, imágenes fMRI, ver aquí).

Redes neuronales en biometría y reconocimiento facial.

Para lograr una precisión alta de reconocimiento del rostro, la red neuronal se entrena previamente con una gran variedad de imágenes, por ejemplo, como en la base de datos MegaFace. Este es el método principal de entrenamiento para el reconocimiento facial de las personas.

Fig. 6. La base de datos MegaFace contiene 1 millón de imágenes de más de 690 mil personas.

Una vez que la red está entrenada para identificación de rostros, el proceso de reconocimiento de rostros se puede describir de la siguiente manera (Fig. 7). Primero, la imagen se procesa usando un detector de caras: un algoritmo que determina un fragmento rectangular de una imagen con una cara. Este fragmento se normaliza para que la red neuronal lo procese más fácilmente: el mejor resultado se logrará si todas las imágenes de entrada son del mismo tamaño, color, etc. Una imagen normalizada se alimenta a la entrada de la red neuronal para que la procese el algoritmo. Este algoritmo suele ser un desarrollo único de la empresa para mejorar la calidad del reconocimiento, pero también existen soluciones “estándar” para esta tarea. La red neuronal crea un vector únicas de características, que luego se transfiere a la base de datos.

Así funcionan «systems» de inteligencia. El sistema de búsqueda lo compara con todos los vectores de características de la base de datos y proporciona el resultado de la búsqueda en forma de un cierto número de nombres de usuario o perfiles con características faciales similares, a cada uno de los cuales se le asigna un número específico. Este número representa el grado de similitud de nuestro vector de características con el encontrado en la base de datos.

Fig. 7. Proceso de identificación de rostros

Evaluación de la calidad del algoritmo de identificación

Precisión

Cuando elegimos un algoritmo para aplicarlo a la tarea de reconocer a un objeto o rostro, debemos tener un medio para comparar la efectividad de varios algoritmos. En este capítulo vamos a describir las herramientas con las que se hace esto [5].

La evaluación de la calidad de face recognition systems se lleva a cabo utilizando un conjunto de métricas que corresponden a los escenarios típicos del uso del sistema para la autenticación a través de biometría.

Generalmente el funcionamiento de cualquier red neuronal se puede estimar en términos de precisión: después de establecer los parámetros y completar el proceso de aprendizaje, la red se prueba con un conjunto de pruebas que es diferente del conjunto de capacitación, para lo cual tenemos la respuesta de un maestro. Regularmente este parámetro es una medida cuantitativa: un número (a menudo en porcentaje) que muestra qué tan bien el sistema puede reconocer a objetos nuevos. Otra medida típica es un error (puede expresarse tanto en porcentaje como en equivalente numérico). Sin embargo, existen medidas más precisas para face recognition systems.

En biometría en general tal como en biometría para reconocimiento facial en particular, hay dos tipos de aplicaciones: verificación e identificación. La verificación es el proceso de confirmar una personalidad particular comparando una imagen de un individuo (un vector de signos faciales u otro vector de signos, por ejemplo, una retina o huellas digitales) con una o más plantillas guardadas previamente. La identificación es el proceso de determinar la identidad de un individuo.

Se recogen muestras biométricas y se comparan con todas las plantillas de la base de datos. Si se supone que una persona está en la base de datos hay una identificación en un conjunto de signos cerrado. Por lo tanto, el reconocimiento combina uno o ambos términos: verificación e identificación.

A menudo además del resultado directo de la comparación, se requiere evaluar el nivel de “confianza” del sistema en su decisión. Este valor se llama “nivel de similitud” (inglés, similarity score). Un indicador de similitud más grande indica que las dos muestras biométricas comparadas son más similares.

Existen varios métodos para evaluar la calidad del sistema (tanto para verificación como para identificación). Hablaremos de ellos la próxima vez. Y quédate con nosotros y no dudes en dejar comentarios y preguntas.

BIBLIOGRAFÍA

  1. Fukushima, «Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position,» Biological Cybernetics, 1980.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard and L.D. Jackel. «Backpropagation Applied to Handwritten Zip Code Recognition», Neural Computation, vol. 1, pp., 541−551,1989.
  3. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Deep Learning. MIT press.
  4. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Deep Gaussian Process for Crop Yield Prediction Based on Remote Sensing Data.
  5. How computers are learning to be creative (TED)