viernes, 14 de mayo de 2021

Algunas diferencias entre texto e imagen que afectan a los algoritmos de deep learning

A veces parece como si los algoritmos de inteligencia artificial, muy en especial los del campo del deep learning, fueran pura magia. Como si bastase conectar un 'montón' de neuronas artificiales, entrenarlas con muchísimos datos y esperar que, de alguna manera, los pesos de la red neuronal se ajusten hasta conseguir obtener el resultado esperado a la salida de la red ante una entrada concreta.

Sin embargo, la cosa no es tan sencilla. Ni mucho menos. Los matemáticos, científicos de datos o ingenieros que trabajan en estos algoritmos deben entender muy bien la naturaleza del problema que se quiere resolver con cada red neuronal concreta y, aunque es cierto que permanece un poquito de intuición y de ensayo y error en ese proceso de diseño, también hay mucho conocimiento, mucho criterio y mucha experiencia a la hora de seleccionar y diseñar la arquitectura e hiper-parámetros de la red neuronal que luego entrenaremos.

En esa línea, por ejemplo, puede resultar interesante realizar una comparación entre el problema a que se enfrentan dos áreas muy importantes de la inteligencia artificial actual: el procesamiento del lenguaje natural (el texto, si se quiere) y el procesamiento de imágenes. 

Y en ese sentido, me ha resultado muy interesante, la sencilla identificación de diferencias entre los datos de tipo texto (texto de lenguaje natural) y los datos de imágenes que recoge David Foster en su libro 'Generative Deep Learning: Teaching Machines to Paint, Write, Compose and Play'. Foster identifica cuatro grandes diferencias entre datos de texto (lenguaje natural) e datos de imagen, a saber:


  • Los datos correspondientes a texto se agrupan en bloques (ya sean caracteres o palabras) mientras que en una imagen los puntos que lo componen se mueven en un espectro continuo de colores.

  • Los datos de tipo texto tienen una dimensión temporal (el orden de las palabras, por ejemplo, es fundamental para entender el significado) pero no tienen dimensión espacial. Por el contrario, las imágenes sí tiene dimensión espacial pero no temporal.

  • Los datos de tipo texto son muy sensibles a pequeños cambios y así, el cambio de unas pocas palabras en un texto pueden modificar completamente el sentido de ese texto. Incluso, el cambio de alguna letra puede cambiar completamente el significado de una palabra. Por el contrario, en datos de imágenes, el significado de la imagen no suele cambiar por alterar algún pixel.

  • Los datos de texto, de lenguaje, muestran una estructura basada en unas reglas gramaticales mientras que, en el caso de una imagen, no existen reglas acerca de cómo deben asignarse los valores de los píxeles.

Todas estas características de los datos de entrada con los que debe trabajar una red neuronal condicionan la arquitectura a utilizar y, aunque no hay fronteras estancas y absolutas, hace que, por ejemplo, las redes recurrentes (que tienen en cuenta la dimensión temporal) tengan amplio uso en procesamiento de lenguaje natural, y las redes de convolución en visión artificial.

Así que, hay mucho de ciencia e ingeniería y, aunque no existe un procedimiento cerrado acerca de cómo se debe diseñar una red neuronal, si existen criterios importantes que nacen del conocimiento de la materia prima de partida, los datos, y la naturaleza de los algoritmos específicos de cada red.


No hay comentarios:

Publicar un comentario