Visión artificial, el mejor ejemplo para comprender qué es la «nueva» IA

Hoy seguiremos con nuestra divulgación sobre la «nueva» Inteligencia Artificial (IA), como ciencia de datos aplicada. Para comprender qué es y cómo funciona, una buena idea es exponer un ejemplo de ella. Y probablemente uno de los mejores pueda ser la visión artificial.

Este artículo de hoy quizá pueda resultar más denso y largo que otros, pero es necesario para comprender esta realidad que nos estamos encontrando en tecnología. En todo caso, y como siempre, intentaremos hacernos comprender.

La visión artificial es una disciplina que tiene como objetivo conseguir que los ordenadores puedan obtener determinadas informaciones a partir de imágenes fijas o en movimiento. En la visión humana, a través de los ojos recibimos puntos de luz que se envían por el nervio óptico al cerebro para que los procese; es en el cerebro donde se produce ese proceso por el cual identificamos, por ejemplo, una gran mancha azul con el cielo, o una figura rectangular como una mesa.

El objetivo de la visión artificial es que los ordenadores también puedan hacer ese tipo de procesamiento.

El aprendizaje en la visión humana

La visión humana, para reconocer los objetos, necesita de un periodo de aprendizaje. Esto ha podido comprobarse de manera experimental, en un estudio del MIT publicado en la revista Nature Neuroscience. ¿Cómo llegaron los científicos a esta afirmación? Detectaron a 5 pacientes que eran ciegos de nacimiento por razones operables (cuatro por cataratas congénitas y uno por opacidad de la córnea). Operaron a todos ellos, con lo que los pacientes dejaron de ser ciegos. Al retirar los vendajes de los ojos, comprobaron que los pacientes eran capaces de ver; para ello, mostraron un primer objeto a los pacientes, y a continuación les mostraron dos objetos, pidiendo a los pacientes que identificaran el original. Todos eran capaces de hacerlo; sin embargo, no fueron capaces de superar otra prueba que hicieron a continuación. La prueba consistió en impedir temporalmente la visión de los pacientes y pedirles que tocaran con sus manos ciertos objetos. Después, y ya con la visión recuperada, se pidió a los pacientes que identificaran qué objetos habían tocado. No fueron capaces.

El experimento fue repetido al cabo de una semana, y los pacientes ya habían experimentado una mejora importante en los resultados a esta segunda prueba. Según uno de los investigadores que participaron en el estudio citado, algunas tareas complejas como por ejemplo identificar una cara, pudieron tardar entre 6 y 12 meses para los pacientes una vez que comenzaron a ver.

Esta es una conclusión empírica que cierra un debate abierto en filosofía desde 1693, cuando el científico irlandés William Molyneux se lo planteó a John Locke. El empirista Locke, en su Ensayo sobre el entendimiento humano, respondió en línea con lo que ahora se ha comprobado, pero otros pensadores posteriores, como Leibniz o Diderot, argumentaron en contrario.

El aprendizaje en la visión artificial («machine learning»)

De la misma forma que los humanos, los ordenadores también necesitan un periodo de aprendizaje para poder reconocer objetos en imágenes. Esto es algo que sabemos porque somos capaces de provocarlo mediante programación.

La pregunta que queremos responder entonces es ¿Cómo se puede provocar ese aprendizaje artificial? ¿Cómo aprenden los ordenadores a “ver”?

Imaginemos que mostramos a una persona mil fotografías de perros chihuahua. Desde distintas perspectivas y posiciones. Después, mostramos a esa misma persona una fotografía y le preguntamos si lo que aparece en ella es un perro chihuahua. Lo más probable es que acierte. Pues algo parecido es lo que hacemos con los ordenadores con el “machine learning”.

Básicamente, el “machine learning” o aprendizaje automático en visión artificial consiste en aportar un número muy elevado de imágenes a un ordenador, e indicarle que todas ellas representan una misma cosa; junto a esto, se aporta también al ordenador una función matemática normalmente muy sencilla, de tipo lineal, y que representa la relación entre las características de la imagen (que el ordenador expresa en forma de conjunto ordenado de valores numéricos que representan los colores de cada pixel), y la identificación con el objeto indicado.

Lo que hace el ordenador es ir ajustando automáticamente la función, de tal manera que las características de la imagen que él es capaz de obtener se acerquen lo más posible al resultado dado.

Normalmente estos sistemas de aprendizaje automático suelen tener unos niveles bajos al principio (cuando cuentan con pocas imágenes), pero luego pasan a una aceleración en su optimización (cuando cuentan con un número elevado de imágenes). Cuantas más imágenes (datos) se aporten al ordenador, más eficaz será su aprendizaje. Pues bien, este es el funcionamiento de una red neuronal de visión artificial.

Redes neuronales

Una red neuronal de visión artificial como la descrita puede conseguir buenos resultados ante la pregunta para la que se ha entrenado de manera específica. En nuestro ejemplo, si aportamos una fotografía al ordenador, y le preguntamos si lo que se muestra en ella es un perro chihuahua, lo más probable es que acierte.

Pero no es infalible. De hecho, los humanos somos mejores que las máquinas en estas tareas. Por ejemplo, a un ordenador entrenado a distinguir chihuahuas le costará mucho distinguirlos de ciertas madalenas. Sin embargo, nosotros podremos hacerlo fácilmente.

En cualquier caso, las redes neuronales de visión artificial se especializan en la resolución de problemas de este tipo, y su aprendizaje será más eficaz cuanto más optimizada esté la función que utiliza, algo que se produce por la incorporación sucesiva de ejemplos adecuados.

Ahora daremos un paso más dentro de la visión artificial: de las redes neuronales a las redes neuronales profundas de visión artificial (Deep neural networks). ¿Cuál es la diferencia?

Deep learning

El aprendizaje automático (machine learning) puede estar formado por una sola red neuronal que puede tener una estructura muy sencilla, pero cuando esta red neuronal pasa a tener una estructura muy compleja, con muchas capas dentro de sí, estamos ante una red neuronal profunda, que puede generar aprendizaje profundo (Deep learning).

Para comprenderlo mejor, volvamos una vez más a nuestro ejemplo de los chihuahuas. Ya hemos conseguido que nuestro ordenador sea eficaz en la tarea de dilucidar si una fotografía que le aportamos muestra a un chihuahua o no (ha “aprendido” a “ver” chihuahuas). Para ello hemos tenido que aportarle mil fotos de chihuahuas, más la función. El sistema, por sí solo (machine learning) ha ido optimizando la función. Lo interesante es que esto mismo podemos hacerlo con todas las razas de perros que se nos ocurran: dálmatas, pastores alemanes, caniches, etc.

En efecto, podemos aportar mil imágenes de dálmatas, mil imágenes de pastores alemanes, mil imágenes de caniches, etc. El organismo mundial canino Federación Cinológica internacional cifra en 343 las razas de perros existentes en el mundo. De esta manera, con 343.000 imágenes bien seleccionadas seríamos capaces de enseñar a un ordenador a distinguir qué raza de perro aparece en una imagen dada.

Esto puede dar una sensación de sabiduría “humana” en una máquina, y maravillarnos fácilmente: muy pocos de nosotros sabríamos nombrar la raza de la mayoría de los perros, y hay ya sistemas comerciales que lo consiguen sin mayor problema. Sin embargo, su “sabiduría” no es fruto de un aprendizaje “mágico”, sino que en realidad parte de una sistemática muy sencilla. Lo que hace el ordenador es plantearse 343 preguntas seguidas: ¿en la imagen aparece un chihuahua? ¿Y un dálmata? ¿Y un pastor alemán? ¿Y un caniche?, etc. Al final del proceso, si el sistema está bien diseñado, el ordenador habrá respondido negativamente a 342 de esas preguntas, y de manera afirmativa a una de ellas: la correspondiente a la raza del perro que se le ha mostrado. Esto es aprendizaje profundo o “Deep learning”.

Otro acercamiento habitual al “Deep learning” en el caso de la visión artificial, especialmente cuando el anterior no es aplicable, es dividir el problema a resolver por el ordenador en varias fases. Cada una de ellas tendría como entrada la resolución que ha logrado la capa anterior. En este caso las distintas etapas tendrán distintos niveles de complejidad (en el caso anterior todas tienen el mismo nivel), y no podrían resolverse de manera independiente, sino que forman un proceso conjunto.

Volviendo a nuestro ejemplo, el de un ordenador que identifica razas de perros, este acercamiento se plasmaría en la resolución sucesiva de varias etapas. Una posibilidad sería que el programador creara algo parecido a esto: 1ª etapa: ¿En la imagen puede verse alguna cabeza?; 2ª etapa: en caso afirmativo, ¿es la cabeza de un perro?; 3ª etapa: en caso afirmativo, ¿es la cabeza de un chihuahua?

Este acercamiento al Deep learning precisa que el programador plantee el problema como un todo, y se programe el sistema para ello. Como puede verse, se trata de un acercamiento más complejo que el anterior.

¿Visión artificial o procesamiento de datos?

En cualquier caso, es fácil de comprender que para que el Deep learning funcione adecuadamente, resulta necesario que el ordenador que lo ejecuta cuente con un buen procesador. De lo contrario, el procedimiento resultará muy lento.

Una empresa que cuenta con un número enorme de ordenadores con grandes procesadores es Google. Además, esa empresa cuenta con un número elevadísimo de imágenes que están etiquetadas y que puede utilizar por tanto para dárselas a sus ordenadores para que “aprendan”. Solamente hay que utilizar su buscador de imágenes en Internet para darse cuenta de ello. No es de extrañar en consecuencia que sea probablemente la compañía que más avanzado tiene su conocimiento sobre visión artificial, y más lo esté aplicando a distintas tareas.

Porque de eso se trata: las técnicas de machine learning con redes neuronales y de Deep learning con redes neuronales profundas pueden ser de aplicación a muchas tareas en el campo de la visión artificial.

Lo importante en este punto será discriminar, en primer lugar, qué tareas pueden llevarse a cabo con esta estrategia de trabajo y cuáles no y, en segundo lugar, cuáles de las tareas que sí pueden llevarse a cabo son más interesantes que otras.

Además, será fundamental trabajar muy bien los algoritmos, evitando en todo momento los ejemplos conflictivos que puedan echar a perder sus funciones. Cuanto más depurado esté un algoritmo, mejor funcionará. Por eso las grandes empresas tecnológicas están hambrientas de datos: cuantos más datos tengan sobre determinadas realidades, mejor serán capaces sus sistemas informáticos de comprenderlas. Los datos (adecuados) son el petróleo del siglo XXI.

Hasta aquí hemos hablado de la visión artificial con ejemplos sencillos referidos a imágenes, que hemos entendido como estáticas: fotografías. Pero ¿qué pasa con la visión artificial referida a las imágenes en movimiento, los vídeos? La respuesta a esta pregunta es que la cuestión se vuelve más compleja.

En todo caso, y vamos ya concluyendo, lo importante de la visión artificial es que cumpla bien con su labor. Que resuelva bien los problemas que se le plantean. Por eso Google y otras empresas similares quieren fichar a los mejores expertos que encuentran. Quieren que sus sistemas de visión artificial funcionen adecuadamente, y eso significa que resuelvan razonablemente bien los problemas que se les presenten.

Pues esa, y no otra, es el cometido de la Inteligencia Artificial: resolver problemas adecuadamente. Lo hemos visto con el ejemplo de la visión artificial, pero esto vale en realidad para cualquier acercamiento de la «nueva» Inteligencia Artificial, que no es más que ciencia de datos aplicada.

Esperamos con este artículo haber conseguido en nuestros lectores un «aprendizaje humano» sobre qué es el «aprendizaje artificial».

Julián Alberto Martín

La tecnología, ¿mejora la educación?

Sobre el autor

Todas las columnas del autor

Julián Martín
Author: Julián Martín

Dejar respuesta

Please enter your comment!
Please enter your name here