Equipo de fúbtol robótico

Impresionantes los vídeos que he encontrado en una web de la universidad de Osaka donde se ven robots humanoides manejado pelotas con una agilidad increíble. Fijaros como se coordinan todas las articulaciones del robot para mantener el equilibrio, para conseguirlo seguramente lleven un sistema fuzzy que se encarga de mantener la estabilidad del sistema. Explicaremos lo que es un sistema fuzzy más adelante :)

Controlando robots japoneses desde internet

Via Gizmodo encuentro un robot creado con un Tablet PC, una webcam, cuatro ruedas y alguna que otra cosa más. Lo más interesante es que puede ser controlado por cualquiera desde internet, se abre una sesión de unas horas cada semana para que los usuarios de cualquier parte del mundo lo puedan controlar.

Thomas Bayes

Leyendo un artículo en Minid en el que comenta que Mozilla incorpora un Filtro Bayesiano para filtrar el spam he recordado la impresionante labor de Thomas Bayes. Un matemático inglés que vivió desde 1702 hasta 1761, y desarrollo los fundamentos de la teoría probabilística a la cual hoy en día se le siguen obteniendo nuevas utilizadades.

Thomas Bayes presentó un ensayo sobre la teoría de la probabilidad y su famoso teorema a la Royal Society que se publicó en 1764. Tuvo un gran impacto en la época y de hecho Condorcet (Otro matemático) hizo descubrimientos parecidos sin conocer los textos de Bayes.

Pero realmente cuando más utilidad práctica se le está encontrando es en nuestros días de la era de la información. Sus herramientas matemáticas las usan los físicos con su mecánica cuántica, los telecos con sus señales, control de tráfico en redes etc. Y los informáticos lo usamos cada día sin darnos cuenta, cuando usamos google están actuando Bayes, cuando usamos nuestra cámara digital también actua Bayes, cuando usamos traductores automáticos, el diccionario de nuestro teléfono móvil, los filtros para el spam de nuestro lector de correo electrónico. En tareas de investigación se usa en visión artificial, sistemas expertos, reconocimiento de lenguaje natural etc.

Básicamente para hacer un filtro de spam lo que haríamos de forma directa sería mirar ciertas palabras que aparecen en los típicos correos basura, apuntarlas, y luego mirar si en cierto mail aparece o no la palabra. Esta técnica es un poco arriesgada porque eliminaría muchos mails que no fueran spam. Gracias a la probabilidad de Bayes, podemos utilizar probabilidades condicionadas, es decir podemos tener en cuenta también el contexto de una palabra. De esta forma un filtro hecho a lo “bestia” eliminaría todos los mails que tengan la palabra “sexo”, esto podría cargarse algunos mails que no fueran de spam. Con un filtro Bayesiano tendríamos en cuenta el contexto por lo que vemos las cadenas en general, por ejemplo “mucho sexo gratis”. Al ver esto el filtro bayesiano ve que la probabilidad de que un mail sea de spam conteniendo la palabra “gratis” condicionado a que esté la palabra “sexo” antes es muy alta y descartará el e-mail.

Otra ventaja de los filtros Bayesianos es que se pueden implementar como algoritmos incrementales. Esto quiere decir que va “aprendiendo” de nuestros gustos, va viendo que mails eliminamos como spam y cuales no para mejorar sus decisiones futuras.

¿No es increíble que Thomas Bayes se avanzara tanto a sus tiempos? ¿Que pensaría Bayes si le dijeramos que sus descubrimientos se están utilizando para eliminar correo basura?

Sistemas Autoorganizativos (SOMs)

Una de las tareas fundamentales de los ordenadores es la organización de la información. Una forma de hacerlo es indicándole nosotros mismos donde tiene que guardar cada cosa, por ejemplo cuando enviamos un Post a nuestro blog le indicamos en que sección queremos que esté (Personal, Diseño web etc…). En Inteligencia Artificial este modelo se denomina “Aprendizaje Supervisado”, ya que el ordenador obtiene información del exterior que le indica como actuar.

Hay otro modelo que puede sonar a ciencia ficción, pero que existe y de hecho funciona, que es el “Aprendizaje No Supervisado”. Con este modelo nosotros le pasamos datos al programa y éste los organiza segun la similaridad entre ellos. Los SOMS (Self Organizing Maps) desarrollados en los años 80 por Teuvo Kohonen (Curioso apellido) son un ejemplo de estos sistemas. Imaginad que le pasamos 300 posts de nuestro que no tienen categoría a uno de estos sistemas, el sistema organizaría todos los posts en grupos con similitudes. Luego nosotros simplemente tenemos que etiquetar cada grupo.

Un ejemplo lo tenéis en el siguiente mapa donde se han coloreado los países que tienen características similares con el mismo color.

Para hacerlo, al programa se le han pasado datos sobre cada país. Y él solo se ha encargado de poner los colores a cada uno sin que nosotros le digamos nada. Abajo tenéis la forma clásica de representar los datos anteriores de forma gráfica. Fijaros en que los países con características económicas similares aparecen cercanos.

Como veis además de usarse para organizar datos, los SOMs son buenos para representar gráficamente grandes cantidades de datos. Más información sobre el mapa en la web de Kohonen. Si os apetece programar un sistema autooganizativo aquí podéis encontrar toda la información necesaria. Yo he programado uno básico en java y no es demasiado complicado, ánimo.