Las CNN mejoran el análisis de imágenes

En pleno momento de auge del Big Data y con una demanda cada vez más elevada, el Deep Learning está creciendo y evolucionando rápidamente gracias a todas las aplicaciones que tiene para revolucionar la IA. La visión por ordenador es uno de estos campos de la inteligencia artificial, que tiene como objetivo habilitar y configurar las máquinas para tratar de ver el entorno como lo hace el ser humano y emplear el conocimiento para la ejecución de diferentes tareas, como puede ser el reconocimiento de imágenes, el análisis de estas y su clasificación.

Las redes neuronales del Deep Learning es un mercado con un tamaño global de unos 120 millones de dólares, con previsión de 296 millones de dólares en 2024 [1]. Así pues, introducir algoritmos de Deep Learning para la visión por ordenador está trayendo consigo grandes avances. Por ejemplo, las redes neuronales de convolución o Convolutional Neural Networks (CNN) han revolucionado este aspecto. Gracias a CNN es posible el reconocimiento facial en las redes sociales o la detección de enfermedades usando imágenes visuales, entre otras aplicaciones.

Un ejemplo puede ser una imagen donde hay una variedad de flor especifica que se quiere identificar. Para ello, es necesario alimentar los pixeles de la imagen en forma de matrices a la capa de entrada de la red neuronal. Las capas ocultas realizan la extracción de características mediante la realización de cálculos. Una de estas capas ocultas es la de convolución que realiza la extracción de características de la imagen, permitiendo conocer, en este ejemplo, si en la imagen existe la flor que se desea identificar y que cantidad de flores de este tipo hay.

Entonces, ¿Qué es una CNN?

De este modo se puede definir una CNN como una red neuronal de retroalimentación que se usa para el análisis de imágenes visuales mediante el procesamiento de datos con una tipología similar a la de una cuadrícula, cuyo fin es detectar y clasificar objetos en una imagen.

Este tipo de redes neuronales son un subconjunto del Machine Learning, algoritmos de Deep Learning, compuestos de capas de nodos que cuentan con una capa de entrada, capas ocultas y una capa de salida, donde todos los nodos están conectados con un valor asociado. De manera que, si la salida de un nodo individual posee un valor por encima del valor umbral especificado de cada nodo, dicho nodo se activa y manda la información a la siguiente capa de la red.

Las CNN suponen un enfoque más escalable para la identificación de objetos en imágenes que otro tipo de redes neuronales, aprovechando los principios del álgebra lineal, mediante la multiplicación de matrices para la identificación de patrones.

Funcionamiento de una CNN

El algoritmo de este tipo de redes neuronales se distingue de otros por presentar una mayor capacidad de rendimiento en las entradas de imagen, voz o audio. Para entender cómo funcionan, hay que conocer la existencia de las tres capas que componen esta red.

La primera es la capa convolucional, que puede ir seguida de más capas convolucionales adicionales o capas agrupadas. La capa agrupada es la que se encarga de conectar con la capa final. Estas capas se centran en características simples, como colores o márgenes. Según avanzan los datos de la imagen a través de las capas de CNN, el algoritmo es capaz de reconocer elementos más complejos hasta que, finalmente, reconoce el objeto deseado.

Por tanto, la capa convolucional es el núcleo central de una CNN y requiere diferentes componentes como datos de entrada, un filtro y un mapa de características. El filtro suele ser una matriz de 3×3 que se aplica a un área de la imagen y se realiza un cálculo de producto escalar entre los píxeles de los datos de entrada y el filtro. Este producto escalar se aplica a una matriz de salida y es el filtro el que se desplaza a través de la imagen realizando estos cálculos hasta que haga lo mismo con toda la imagen. El resultado de la serie de productos escalares de la entrada y el filtro se conoce como mapa de características.

Esta matriz de salida no necesita relacionarse con cada valor de entrada, de manera que se denominan como capas parcialmente conectadas. A esta convolución se le debe aplicar posteriormente una transformación de unidad lineal rectificada (ReLu), es decir, se aplica al mapa de características dando linealidad al modelo. En resumen, la capa convolucional convierte una imagen en valores numéricos que facilita que la red neuronal interprete y extraiga patrones relevantes.

La capa de agrupación lleva a cabo una reducción de dimensionalidad para reducir los parámetros en la entrada. De manera similar a la capa de convolución, este filtro es el que barre toda la entrada buscando una selección de valores para ser enviados a la matriz de salida, reduciendo la complejidad, mejorando la eficiencia y limitando el riesgo de sobreajuste.

Por último, los valores de píxeles de la imagen de entrada no están conectados directamente a la capa de salidas en capas parcialmente conectadas. La capa completamente conectada hace referencia a que cada nodo de la capa de salida se conecta directamente a un nodo de la capa anterior. Esta capa realiza la función de clasificación en base a las características extraídas a través de las capas anteriores y sus diferentes filtros. Las capas convolucionales y agrupadas usan funciones ReLu, mientras que estas capas totalmente conectadas aprovechan una función de activación softmax para clasificar las entradas de manera apropiada.

¿Qué pueden hacer las empresas con las CNN?

El principal uso de las redes neuronales convolucionales es el reconocimiento y la clasificación de imágenes con la finalidad de deconstrucción de una imagen para encontrar un rasgo distintivo, mediante la utilización de un algoritmo de clasificación de Machine Learning supervisado. Otra opción es la reducción de la descripción de credenciales, pero en este caso emplea un algoritmo sin supervisión. Estos métodos se pueden aplicar en las siguientes áreas:

  • El etiquetado de imágenes:

Esta función parte del algoritmo más básico de clasificación de imágenes. El etiquetado de imágenes consiste en describir las imágenes para que sean más fáciles de localizar, para la búsqueda visual y el reconocimiento de objetos o análisis de tonos de las imágenes.

  • La búsqueda visual:

La búsqueda visual se basa en la comparación de imágenes de entrada con una base de datos visual. De manera que se evalúa la imagen y busca más imágenes que tengan credenciales comparables.

  • Motores de recomendación:

El reconocimiento de imágenes de CNN para hacer sugerencias también es adecuado, sobre todo, para los productos se combinan según criterios visuales. Por ejemplo, Pinterest emplea este tipo de reconocimiento de CNN, centrándose en la coincidencia visual de credenciales, como puede ser todas aquellas que contengan objetos rojos.

  • Reconocimiento facial en redes sociales, identificación y vigilancia:

Existe un subconjunto de reconocimiento de imágenes que se ocupa del reconocimiento facial o imágenes complejas. La distinción entre el reconocimiento de imágenes y el reconocimiento facial se basa en la complejidad operativa, ya que se requiere una capa adicional de trabajo en el reconocimiento facial porque primero se debe reconocer la cara y sus características y a continuación realizarse el reconocimiento básico de objetos.

El reconocimiento facial se emplea en plataformas de redes sociales para agilizar el proceso de etiquetado de personas en fotografías. También se emplea para usar filtros snapchat o Instagram que parten de un diseño básico autogenerado de la cara y agregan nuevos elementos o efectos. En el ámbito de la vigilancia se está volviendo un método esencial debido a su eficacia y rapidez.

  • Análisis predictivo en la medicina y riesgos:

Utilizar CNN de reconocimiento de imágenes en la medicina permite su aplicación para detectar anomalías en las imágenes de rayos X con mayor precisión que el ojo humano, por ejemplo. La clasificación de imágenes médicas parte de datos masivos como los registros de salud pública, que sirven de base para el entrenamiento de los algoritmos.

Por otro lado, se puede emplear el sistema HRA como aplicación predictiva para calcular la probabilidad de eventos específicos en relación con la salud y los riesgos de las personas como puede ser la progresión de una enfermedad o las complicaciones. Un ejemplo para comprenderlo mejor es que este tipo de red neuronal estudia la actividad solar todos los días para determinar el nivel de amenaza de la radiación.

Por último, dentro de esta aplicación, las CNN pueden trabajar en el descubrimiento de fármacos, ya que durante el desarrollo de medicamentos hay una gran cantidad de datos considerar: el análisis de los efectos médicos observados, la detección de anomalías, etcétera. Estas redes neuronales facilitan el proceso de cubrimiento de fármacos en etapas crítica, reduciendo el tiempo necesario para desarrollar medicamentos realizando análisis predictivos.

Conclusiones y limitaciones que presentan las CNN

Aunque las CNN traen consigo grandes resultados a la hora de reconocer patrones y detalles pequeños que pueden pasar desapercibidos para el ojo humano, cuando se trata de comprender el contenido de una imagen falla. Por ejemplo, en una imagen donde salen varias personas una CNN es capaz de diferenciar edades y rasgos, pero cuando un ser humano mira la misma imagen es capaz de establecer escenarios y situaciones. Sobre todo, cuando se trata de aplicaciones prácticas, como el bloqueo de imágenes inadecuadas en redes sociales, se encuentra con dificultades. Un caso fue el ocurrido con una estatua de 30.000 años desnuda en Facebook que fue bloqueado por una CNN.

No obstante, aunque las CNN presenten estas dificultades han provocado un gran avance en la inteligencia artificial, ya que se usan en muchas aplicaciones de visión por ordenador como el reconocimiento facial, la búsqueda y la edición de imágenes. El sector de la realidad aumentada y la realidad virtual está indagando cada vez más con este tipo de redes neuronales, aunque todavía dista de replicar los comportamientos de la inteligencia humana.