Dando buen ejemplo a sistemas artificiales de visión

22 abril, 2014

Acabo de hacer una búsqueda en google de la pregunta «¿me puedes dar un ejemplo?» y me han salido más de 64 millones de resultados. La gente pide ejemplos de cartas de presentación, de canciones medievales, de técnicas de adiestramiento de perros, o de qué ropa ponerse para ir a una entrevista de trabajo. El caso es que cuando queremos entender algo o aprender algo, un buen ejemplo nos ayuda. Y digo un buen ejemplo, porque un mal ejemplo, tomado como bueno, puede llegar a darnos serios problemas.

De la misma forma que las personas aprendemos de los ejemplos, las máquinas también lo hacen. Y para que una máquina aprenda bien un determinado concepto necesita que le demos buenos ejemplos. Pero, ¿qué es un buen ejemplo? ¿Todos los ejemplos pueden explicar o ilustrar correctamente un concepto? La respuesta es no. Para explicar un concepto a una máquina deberemos elegir ejemplos que le resulten claros para que entienda bien lo que queremos que aprenda. La dificultad está en que no siempre es obvio cómo encontrar buenos ejemplos y muchas veces un ejemplo puede inducir a una confusión inesperada (véase Fig 1).

Figura 1. Confusión

Dentro del contexto de la visión por computador tenemos evidencias claras de que algunos ejemplos son bastante mejores que otros. Y entender bien si un ejemplo es bueno o no es importante, porque cada vez habrá más máquinas a nuestro alcance capaces de aprender, y cuando necesitemos que aprendan algo tendremos que saber cómo enseñarlas.

De hecho hoy en día ya es posible enseñarle a nuestro iPhone a ver objetos. Podemos hacerlo con la aplicación gratuita DetectMe, diseñada y desarrollada en el Massachusetts Institute of Technology. Con esta aplicación nuestro móvil puede aprender a detectar un objeto cualquiera después de haber visto algunas imágenes de este objeto. Y una de las cosas que hemos observado es que algunos usuarios son mucho más hábiles que otros a la hora de enseñarle a ver.

Para poder estudiar las dificultades que tiene el público al usar este tipo de aplicaciones se han creado, dentro de DetectMe, algunas competiciones para entrenar* objetos concretos (tazas, sillas, mesas…). En estas competiciones cada usuario puede entrenar un detector tomando fotos que se usan como ejemplos para el sistema. Luego los detectores se testean con una base de datos fijada y el test da a cada detector una puntuación que depende de lo preciso que es. Si la puntuación es alta esto quiere decir que el detector es bueno.

Figura 2. Tabla de puntuaciones de la competición de tazas

En la Fig. 2 podemos ver la tabla de puntuaciones de la competición de tazas, así cómo los ejemplos que se han usado para entrenar el mejor detector y el detector que está en la posición 9. Fijaros que el mejor detector ha sido entrenado con un solo ejemplo mientras que el noveno se ha entrenado con 11 imágenes. El sistema de aprendizaje que hay detrás es exactamente el mismo, pero parece obvio que la satisfacción del usuario que obtiene 729 puntos va a ser muy diferente que el que obtiene sólo 23. El primero ha conseguido entrenar un detector de tazas que va a ver tazas con una fiabilidad aceptable, pero el segundo os aseguro que se debe sentir bastante frustrado, porque su detector no va a ver nada y además se ha tomado la molestia de hacer 11 fotos de tazas.

La gente usa DetectMe para entrenar una gran variedad de objetos (gafas, camisetas, plátanos, cepillos de dientes, bicicletas) y este tipo de comportamiento en las puntuaciones lo observamos para cualquier categoría. Y a veces los mejores detectores están entrenados con muchas menos imágenes que los peores. Esto es especialmente sorprendente porque, en general, lo mejor para entrenar sistemas de aprendizaje artificial es usar la mayor cantidad de datos posibles. Sin embargo, estamos viendo que también es esencial que los ejemplos sean buenos representantes del concepto a aprender. Y no es evidente saber cómo se tienen que tomar las fotos para que los ejemplos resultantes sean claros para una máquina, así que caracterizar qué es un buen ejemplo es un problema importante.

Entre las cosas que hemos estado estudiando hemos desarrollado un sistema que permite visualizar la información que aporta un ejemplo. Para ello usamos un cierto conocimiento adicional: sabemos qué tipo de características extrae el sistema de la imagen y también qué algoritmo de aprendizaje usa la máquina. En pocas palabras, la idea detrás de estas visualizaciones es crear una especie de caricatura de cada ejemplo que muestre que es lo que más destaca en él y lo que lo hace más diferente al resto de imágenes del mundo. Esto nos permite entender que es lo que ve la maquina y que es lo que le puede crear confusión.

Figura 3. Visualizaciones del detector de bicicletas

En la Fig. 3 podéis ver algunas visualizaciones para el caso de un detector de bicicletas. En los ejemplos buenos (arriba) la información visual más relevante de la imagen parece ir asociada con el objeto que queremos que aprenda a detectar. La prueba es que seguimos identificando claramente la bicicleta en las imágenes filtradas (a la derecha). En el caso de los ejemplos «malos del todo» (a bajo) ya parecía más intuitivo que esto no iba a ir bien, porque el objeto en la imagen original está cortado y medio oculto. Y nuestras visualizaciones confirman que la información que hay en estas imágenes no va muy asociada al concepto de bicicleta, ya que después de filtrar las imágenes es difícil reconocer el objeto. Sin embargo, lo que pasa en el caso de los ejemplos «un poco malos» es menos intuitivo. Las visualizaciones de estos ejemplos nos evidencian que la información relevante de la imagen no va asociada al objeto sino a otros contornos de la imagen. Esto quiere decir que el ejemplo está dando información confusa al sistema.

Y volviendo a la Fig. 1, ¿nos permite esta visualización entender qué está pasando? Podéis ver el resultado en la Fig. 4.

Figura 4. Visualización de la confusión

Nuestro objetivo, al final, es tener un sistema que permita saber automáticamente si un ejemplo es bueno o no. Y con ello podremos orientar al público en general a poder usar satisfactoriamente este tipo de herramientas sin la necesidad de tener una base técnica en visión por computador. En el futuro nos gustaría extender esta idea a otros ámbitos que no sean necesariamente imágenes. Nuestro sistema se podría usar para analizar textos y ver, por ejemplo, qué palabras son las que están dando la información relevante en un párrafo. En educación esto podría servir para analizar si se está describiendo bien un determinado concepto o si una definición es clara o no. De esta forma usaríamos técnicas de aprendizaje artificial para encontrar pautas que permitan mejorar nuestras propias metodologías de enseñanza y aprendizaje.

entrenar* : es el término que se usa en aprendizaje artificial para la acción de enseñar a una máquina a hacer algo.

REFERENCIA

Agata Lapedriza, Hamed Pirsiavash, Zoya Bylinskii, Antonio Torralba. Are all training examples equally valuable? (http://arxiv.org/abs/1311.6510)

Àgata Lapedriza es licenciada en matemáticas por la Universitat de Barcelona y doctora en informática por la Universitat Autònoma de Barcelona. Es profesora e investgadora de la Universitat Oberta de Catalunya (UOC), en los Estudios de Informática, Multimedia y Telecomunicación. También es investigadora en el Massachusetts Institute of Technology. En la UOC coordina asignaturas de matemáticas y estadística, y dirige tesis de doctorado y proyectos de grado y máster en el ámbito de la inteligencia artificial. Su actividad de investigación se centra en temas de visión por computador y aprendizaje computacional.

Antonio Torralba es licenciado en Telecomunicaciones por la Universitat Politècnica de Catalunya (UPC) y doctor en informática en tratamiento del señal, la imagen y procesamiento del habla por el Institut National Polytechnique de Grenoble (Francia). Es profesor e investigador del departamento Computer Science and Artificial Intelligence Laboratory (CSAIL), en el Massachusetts Institute of Technology (MIT). Es editor de las revistas IEEE Trans. on Pattern Analysis and Machine Intelligence e International Journal in Computer Vision. Ha recibido los premios National Science Foundation (NSF) Career award (2008), best student paper award at the IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (2009), i J. K. Aggarwal Prize from the International Association for Pattern Recognition (IAPR) (2010).

(Visited 29 times, 1 visits today)
Autor / Autora
Comentarios
Deja un comentario