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.
La visión humana, para reconocer los objetos, necesita de un periodo de aprendizaje. Esto ha podido
comprobarse recientemente 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.
Los humanos, por tanto, necesitamos de un cierto tipo de entrenamiento para
poder identificar objetos con la vista. 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.
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. Sería algo parecido a esto:
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.
Las funciones que se utilizan más habitualmente son de este tipo:
La primera es una función sigmoide y la segunda una
rectificación lineal.
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). Como se
observa en los gráficos, y según nos dicta
también el sentido común, 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.
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, como vemos a continuación:
Sin embargo, nosotros podremos hacerlo fácilmente.
Algunos detractores de estas técnicas de aprendizaje automático las están
saboteando conscientemente mediante la incorporación a los sistemas de
aprendizaje de ejemplos conflictivos, que hacen que el sistema tenga que
“romper” la función matemática que usa, dejándola inservible, porque se han
incorporado a la colección de imágenes que el sistema utiliza para aprender,
algunas con características totalmente distintas. Este es un tipo de
ciberactivismo que puede parecer un simple acto de gamberros, pero que en un
mundo en el que los algoritmos cada vez toman más decisiones, puede tener sus
consecuencias.
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?
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.
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. 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.
De lo contrario, podría suceder lo que les pasó a aquellos conejos de la
fábula del poeta ilustrado canario Tomás de Iriarte, que se enredaron en la disputa
de distinguir galgos de podencos, con consecuencias funestas para ellos.
Recordémosla como colofón a esta explicación sobre la visión artificial:
“Por entre unas matas,
seguido de perros,
no diré corría,
volaba un conejo.
De su madriguera
salió un compañero
y le dijo: «Tente,
amigo, ¿qué es esto?»
«¿Qué ha de ser?», responde;
«sin aliento llego...;
dos pícaros galgos
me vienen siguiendo».
«Sí», replica el otro,
«por allí los veo,
pero no son galgos».
«¿Pues qué son?» «Podencos.»
«¿Qué? ¿podencos dices?
Sí, como mi abuelo.
Galgos y
muy galgos;
bien vistos los tengo.»
«Son podencos, vaya,
que no entiendes de eso.»
«Son galgos, te digo.»
«Digo que podencos.»
En esta disputa
llegando los perros,
pillan descuidados
a mis dos conejos.
Los que por cuestiones
de poco momento
dejan lo que importa,
llévense este ejemplo.




No hay comentarios:
Publicar un comentario