En nuestra publicación anterior habíamos mencionado el rol tan importante de las redes neuronales convolucionales en varias aplicaciones de reconocimiento facial, entre las que se incluyen los MDVR. Para continuar sobre este tema, en principio debemos explicar brevemente lo que es realmente una red neuronal «regular», y definir el término convolución. El objetivo general de las redes neuronales es estimular muchas células cerebrales dentro de una computadora y «entrenarlas» para reconocer patrones y características, aprender cosas y tomar decisiones de la misma manera que lo hace un cerebro humano. Las redes neuronales construidas de esa manera se denominan comúnmente redes neuronales artificiales (ANN, por sus siglas en inglés), para distinguirlas de las redes neuronales «reales» del cerebro humano. Sin embargo, es importante tener en cuenta que una ANN es fundamentalmente un software de simulación, que incluye colecciones de variables algebraicas y ecuaciones matemáticas vinculadas entre sí, etc. No tiene nada que ver con una «computadora imaginaria real» construida a partir de un denso cableado directo de transistores en forma paralela para hacer que parezca y funcione exactamente como un cerebro humano.

Una red neuronal típica consiste en muchas neuronas artificiales (usualmente de unos cientos a unos millones), llamadas unidades. Estas unidades están acomodadas en grupos de capas que se conectan a la capa del otro lado. Las unidades de entrada reciben diferentes formas de información que la red neuronal tratará de descifrar. Las unidades de salida, ubicadas en el lado opuesto de la red, indican como responde a la información descifrada. Las unidades escondidas están ubicadas entre las de entrada y las de salida y forman la parte más importante de « un cerebro artificial». Las conexiones entre las unidades están representadas por un peso, que es un número negativo o positivo. Un peso mayor corresponde a una mayor influencia que una unidad tiene sobre otra.

artificial neural network

Existen dos caminos para que el flujo de información se propague a través de la red: red con conexión hacia adelante y retropropagación.  La primera se llama red prealimentada debido a que la información viaja a través de unidades de entrada, cambia hacia la capa de unidades escondidas y llega a la salida. Cada una de las unidades obtiene información de las unidades de la izquierda, y las entradas están multiplicadas por el peso de las conexiones a través de las cuales viajaron. Si el valor es superior al valor de umbral, las unidades se desencadenan, lo que provoca que se activen las unidades que están conectadas a la derecha.  En el caso de la retropropagación, la información fluye de salida a entrada. La salida que la red ha producido es comparada con la salida pensada para producir, y la diferencia entre ellas es aplicada para modificar los pesos de las conexiones. De esa manera, la retropropagación ayuda a la red a aprender al disminuir la diferencia entre la salida prevista y la real. Después de una determinada red provista con una cantidad razonable de ejemplos, el usuario puede proveerle un nuevo conjunto de entradas con las que el sistema aún no está familiarizado, y observar cómo responde.

Redes neuronales «regulares» vs convolucionales

Comparadas con una red neuronal «regular», las redes neuronales convolucionales (CNN, por sus siglas en inglés) tienen más ventajas para imágenes/vídeo/aplicaciones de reconocimiento facial, pero tienen una arquitectura más compleja.    Las diferencias principales son:

1) Lla entrada es una imagen 3D, en vez de un vector simple.

2) La CNN emplea convolución y se basa en una arquitectura un tanto diferente.

El funcionamiento convolucional es una parte crucial de toda CNN. Generalmente, la convolución es una operación matemática sobre dos funciones que produce una tercera función, expresando como la forma de una es modificada por la otra. Este proceso incluye un proceso matemático realmente bueno pero demasiado complejo, que no consideraremos aquí.

En procesamiento de imágenes, el propósito de la convolución es extraer localmente las características de un objeto. Una rutina convolucional simplificada se podría describir de la siguiente manera: Consideremos una imagen como una matriz cuyos elementos son números entre 0 y 255. El tamaño de esta matriz es (alto de imagen) x (ancho de imagen) x (cantidad de canales de imagen). El software escanea una parte de la imagen, generalmente de 3×3 y la multiplica a un filtro, como se muestra en la siguiente figura. Primero se multiplican todos los elementos de la matriz de imagen destacados para que correspondan con los elementos de la matriz Kernel, después sew conjuntan todas las salidas del producto y finalmente se pone el resultado en la misma posición en la matriz de salida como centro del Kernel en la matriz de imagen. El procedimiento se repite hasta que la imagen se escanea. Típicamente, la CNN tiene una o más capas de unidades de convolución.

Las unidades de convolución ayudan a reducir la cantidad de unidades en la red, lo que dará como resultado un modelo menos complejo. También consideran la información compartida en entornos pequeños. Esto es especialmente importante en muchas aplicaciones con procesamiento de imagen y video, porque las entradas vecinas como fotogramas o píxeles normalmente ejecutan información relacionada.

convolution

Generalmente, una CNN contiene cuatro capas: La capa convolucional, la capa de unidad lineal rectificada (ReLU, por sus siglas en inglés), la capa de agrupación y la capa completamente conectada. La capa convolucional utiliza la función de convolución para producir un mapa de características convolucionadas. La próxima capa es ReLU, que contiene la función de activación, que permite la no linealidad. En la práctica reemplaza todos los píxeles con valores negativos por «0». El propósito de las capas de agrupación es emplear varios filtros para identificar las partes de una imagen como esquinas, bordes y demás. En la práctica, la agrupación usa el valor máximo del mapa de características para reducir las dimensiones de la imagen de entrada, lo que conduce a la reducción de la complejidad convolucional, es decir, a la reducción del tamaño del espacio de la característica convolucionada. El resultado es que el mapa de características agrupadas es convertido posteriormente en un vector largo lineal continuo con un proceso llamado reducción (del inglés flattening). Como último paso se requiere construir también una red neuronal artificial «regular».

CNN layers

Para resumir, una red neuronal convolucional usa una técnica matemática llamada convolución para extraer solo los píxeles más relevantes, que resulta en un incremento significativo de la eficiencia de reconocimiento de imagen. Esta es la arquitectura actualmente predominante para el reconocimiento de objetos de imágenes o videos.

Los algoritmos basados en CNN son beneficiosos para el Reconocimiento Facial por su precisión, la relativa solidez y la capacidad para reducir en forma eficiente la cantidad de parámetros de una red. Según Patrick Grother de NIST, uno de los autores del informe, el avance rápido de las herramientas de aprendizaje automático ha revolucionado con efectividad la industria.

Referencias

  1. Machine Learning Projects for Mobile Applications, Karthikeyan, N. G., 2018.
  2. machinelearningguru.com
  3. https://www.nist.gov.uk
  4. http://www.quora.com
  5. http://cs231n.github.io/convolutional-networks/#overview