Archivo de la etiqueta: inteligencia

watson

Hace unos meses (aunque yo me he enterado por el radar de O’Reilly hace unos días y en sinapsis tienen un artículo muy completo), IBM presentó a Watson, un sistema de procesamiento de lenguaje natural pensado para participar en el concurso de preguntas y respuestas Jeopardy! Al igual que con la victoria de Deep Blue en ajedrez, IBM busca superar un reto en el que vencer a los humanos en tareas inalcanzables (por ahora) para los ordenadores. El video es muy bueno:

Algunas ideas que se me ocurren sobre Watson:

  • Procesa lenguaje natural escrito: No sólo procesa el lenguaje de manera estadística o semántica, sino que un concurso cómo Jeopardy! requiere que Watson sea capaz de comprender juegos de palabras, información omitida, dobles sentidos… Lenguaje en la forma más humana (e incomprensible para las máquinas actuales).
  • Agrupa múltiples paradigmas/tecnologías: Creo que alguna vez lo he comentado, mi opinión es que no se puede utilizar un sólo enfoque para crear un sistema de inteligencia artificial, a menos que esté dedicado a un problema muy concreto. En este caso, Watson integra las tecnologías de procesamiento de lenguaje natural, recuperación de información, representación del conocimiento y aprendizaje automático.
  • Utiliza varios algoritmos simultáneamente: no sólo agrupa varias tecnologías, sino que para hacer búsquedas utiliza varios algoritmos de búsqueda de información y los integra para calcular un valor de confianza en la respuesta. Si con el algoritmo X cálcula que una respuesta tiene un 50% de ser cierta y el algoritmo Y corrobora la respuesta, entonces la confianza en la respuesta aumenta.
  • Cálculo de confianza: Es el algoritmo fundamental de éste sistema. Tiene pinta de estar basado en cálculos probabilísticos complejos, diría que es donde más han trabajado y dónde los algoritmos de aprendizaje tienen más margen para funcionar. El hecho de que sea estadístico es también muy importante: demuestra que no es necesario que un ordenador tenga un pensamiento binario y le aporta cierta capacidad de fallo “discontinuo” más parecido al razonamiento humano.
  • Tiene problemas con las frases de doble sentido: es lógico que sea así, es la parte que peor procesa un ordenador. Cómo se ven en el video,  lo peor no es que se equivoque en la respuesta sino que se equivoque en el sentido de la respuesta: que le pregunten por una persona y conteste con el título de una película.
  • Test de Turing: es capaz de engañar a las personas. En muchos sitios los comentarios eran exagerados, cómo si Watson fuese capaz de mantener una conversación en lenguaje natural. Aunque el presentador lee la pregunta, a Watson le llega por escrito. Por otra parte es sorprendente el efecto sobre los concursantes humanos, se sienten amenzados (Humans! grita un concursante) y despierta un orgullo de defensa de la humanidad (cómo si Watson no fuese una creación humana que se apaga desconectando un botón).
  • Test de Turing(2): Si no está seguro de una respuesta, no contesta. En este caso se trata de una estrategia para ganar el juego, pero también supone una imitación del comportamiento humano. Es el tema del artículo de Mike Loukides, que el Test de Turing no consiste en demostrar que una máquina es inteligente sino que es inteligente en el sentido humano, incluyendo sus fallos. Por ahora no es así, cómo demuestra el tipo de errores que Watson comete. No son los fallos que comete una persona.
  • Utiliza uima de apache: una arquitectura open source para el procesamiento de información no estructurada. Aunque no vayan a liberar el código fuente, es importante que se utilicen plataformas open source, garantiza que al menos una parte del trabajo se compartirá.
(por ahora)

flattr this!

twitter y la inteligencia artificial

Me gusta encontrarme algoritmos de inteligencia artificial en aplicaciones comerciales, me sirve para comprobar que tiene sentido la investigación a pesar de que durante años no se han obtenido muchos resultados prácticos. La última que me he encontrado es una nueva parte de twitter, que planea insertar tweets promocionados en los resultados de las búsquedas,  al estilo de lo que hace google en sus resultados de búsquedas. Cómo explica Michael Bernstein en un reportaje de technology review esto supone un gran desafío para twitter: el hecho de limitarse a 140 caracteres hace complicado extraer conocimiento de un texto tan corto. Lo habitual en los algoritmos de extracción de información es utilizar las palabras más relevantes, muchas veces buscando las palabras más frecuentes. Pero con mensajes de 140 caracteres es mucho más complicado obtener información.

Otra aplicación que utiliza algoritmos de inteligencia artificial es hunch, que utiliza técnicas de aprendizaje e inferencia estadística para predecir respuestas en cuestionarios generales. Tiene un juego que analiza tus contactos en twitter, los compara con su base de datos y predice las respuestas que vas a dar a los cuestionarios. El indice de aciertos es sorprendentemente alto (merece la pena probarlo, es divertido), pero creo que el truco está en el tipo de preguntas que realiza. No son tan sencillas como los juguetes que adivinan lo que estás pensando en 20 preguntas, pero tampoco son excesivamente complejas y bastantes están relacionadas entre sí (acertando una de las respuestas, es muy probable saber qué vas a responder en la otra).

Hunch es un ejemplo de lo que creo que va a pasar en tecnología: partiendo de los apis de desarrollo de las diferentes redes sociales y plataformas de internet, deberían aparecer servicios más abstractos y genéricos, que aporten más conocimiento y mejoren la funcionalidad de la aplicación haciendola más inteligente.

flattr this!

¿seres reemplazables?

Una frase que ha aparecido en Microsiervos:

En la sociedad del conocimiento, todo aquel que pueda ser sustituido por una máquina merece serlo.

Paradójicamente, es posible que muchos trabajos considerados de la sociedad del conocimiento sean sustituidos por ordenadores antes que muchos trabajos físicos o mecánicos. Tal y como evoluciona la robótica y la inteligencia artificial, algunas tareas cómo la toma de decisiones sean más automatizables que ciertos trabajos físicos.

Un ejemplo sencillo sencillo de mi cosecha: aunque existen robots capaces de tocar el violin, también existen programas capaces de componer obras musicales automáticamente. Y creo que probablemente se desarrollen más rápidamente los programas de composición que los robots con capacidades fisicas, pero no es más una intuición.

flattr this!

dejo el posgrado de inteligencia artificial

Definitivamente dejo el posgrado en inteligencia artificial que estaba estudiando en la uned (momento apropiado para recordar la famosa escena de Manquiña en airbag):


Después de 3 años no he podido sacar ni el tiempo, ni la voluntad suficiente para seguir, sobretodo este año que ha sido el peor con diferencia. Empezaba a tener la sensación de no estar aprendiendo nada y de que no compensa el tiempo invertido, así que es el momento en el que no merece la pena seguir.

El balance de estos 3 años es positivo, he aprendido mucho. El primero fue muy interesante con asignaturas cómo Métodos de aprendizaje en IA que, aunque suspendí, me sirvió para aprender scheme. Aplicaciones de la IA para el desarrollo humano y sostenible es de las mejores asignaturas del posgrado siendo una asignatura no técnica, se puede aprender mucho sobre la filosofía en relación a la inteligencia artificial, la ética, los valores humanos y el desarrollo sostenible. El año pasado me fue bastante bien y es el año que más he aprendido con asignaturas que a priori no me llamaban la atención, pero que finalmente han sido las más interesantes: Métodos probabilistas en la que se aprende sobre redes bayesianas y cálculo probabilistico y Procesamiento del lenguaje natural que trata sobre el análisis del lenguaje en términos sintácticos y semánticos.

Durante los dos primeros años ha habido asignaturas que se me han atragantado en la mayoría de los casos por falta de tiempo (Visión artificial), pero este año, cómo he dicho antes, ha sido el peor. No he podido con Minería de datos por la cantidad de matería y sobretodo el segundo año que estudio Robótica Perceptual y Autónoma. Curiosamente la asignatura por la que empecé el posgrado, ha sido la que peor se me ha dado. No me falta motivación (cómo demuestra este blog), aunque reconozco que el primer año me confié, porque conocía el libro de texto y los conceptos de la asignatura. Sin embargo en ninguno de los dos años he conseguido engancharme por la forma de impartir la asignatura. La teoría está bien explicada, se basa en el libro de Murphy, pero en los ejercicios siempre me he perdido (en el foro he visto que hay más alumnos perdidos, aunque no sé si somos mayoría), no he sentido que tenían un objetivo claro. Quizá estaba demasiado orientada a la investigación académica por libre y no he podido dedicarle el tiempo necesario.

Así que no voy a continuar, prefiero dedicarme a otros asuntos y a seguir escribiendo desde un punto de vista didáctico y no académico, un poco cómo hasta ahora. No creo que cambie nada en el blog, excepto que es posible que tenga más tiempo para escribir e investigar por mi cuenta.

flattr this!

¿qué esperar de los agentes inteligentes?

Hace unos años, los agentes inteligentes eran la gran promesa de la inteligencia artificial. Pero esa promesa, al igual que ha pasado históricamente con la propia inteligencia artificial, parece que no ha podido hacerse realidad. Y la razón de ese fracaso, en mi opinión es que la propia inteligencia artificial no ha avanzado lo suficiente, no el paradigma de agente inteligente.

Según la wikipedia, un agente inteligente es (a grandes rasgos) una entidad que observa y actúa en un entorno para intentar alcanzar unos objetivos. Los agentes inteligentes hay que entenderlos más cómo un paradigma de diseño que cómo una solución a un problema. Y entendidos como un paradigma de diseño, son innegablemente  útiles, ya que sirven para modelar un programa siguiendo un comportamiento inspirado en el de los seres vivos. También sirven para implementar la noción de agente situado en un entorno, que permite definir los límites en el sistema y así mejorar el rendimiento nuestro agente: no es necesario diseñar un agente que opere en cualquier entorno, sino uno que lo haga en el entorno que hemos definido. Lo importante para diseñar el agente no es sólo los objetivos, sino el entorno y la interacción con el mismo.

Sin embargo, el hecho de usar este paradigma no ayuda a resolver por sí mismo los problemas. Hay otro factor importante: a veces se plantea un problema en términos de agentes inteligentes y se espera que el simple planteamiento en estos términos sirva para resolver el problema. La realidad es que el problema es complejo de resolver empleando cualquier paradigma, el problema es complejo en términos absolutos, da igual cómo lo resolvamos.

Los agentes son una forma de modelar una solución problema, que ayudan en la división de problemas complejos y en la comunicación entre distintas entidades. Sin embargo mi opinión es que no mejoran por sí mismos la inteligencia del sistema. Podrían mejorar la inteligencia global por agregación de varias entidades inteligentes, apareciendo un comportamiento complejo por emergencia (varias mentes sencillas cooperando en paralelo en el mismo problema). Pero en general, si los agentes no son lo suficientemente inteligentes, es difícil que su inteligencia colectiva mejore lo suficiente por emergencia.

Así que mientras no mejoren los algoritmos en bruto de la inteligencia artificial, no creo que mejore la capacidad de los agentes inteligentes. Es por eso que si la inteligencia artificial no ha terminado de tener éxito, tampoco los agentes inteligentes lo tendrán.

Al final la realidad es que necesitamos otras técnicas de inteligencia artificial cómo el aprendizaje automático, las redes neuronales, redes bayesianas, o los motores de reglas. Quizá tengamos que descubrir algo nuevo, cómo por ejemplo, la memoria jerárquica temporal de numenta.

Lo que sí creo que facilitan los agentes inteligentes, aunque desconozco si se está utilizando o no, es la implementación de sistemas mixtos. El uso de varias técnicas se puede aunar utilizando agentes inteligentes, al usar los objetivos del agente cómo criterio unificador. Por ejemplo, en el caso de perseguir unos objetivos u otros se puede emplear unas técnicas de inteligencia artificial u otras. O se podrían mezclar los resultados de diferentes técnicas aplicadas al mismo problema, evaluando los resultados de cada técnica en vista de los objetivos del agente.

Éste es el sentido más apropiado que veo al diseño de aplicaciones mediante agentes, la unificación de distintas técnicas de inteligencia artificial, pero en cualquier caso los agentes están limitados por la capacidad de las distintas técnicas de inteligencia artificial.

Quizá cuándo se consiga dar ése salto de calidad, es posible que la emergencia de un comportamiento agregado de agentes nos lleve a otro nivel de inteligencia artificial colectiva más avanzada, pero por ahora es especulación.

flattr this!

buscador de precios colaborativo

Siempre que he usado un buscador ó comparador de precios (kelkoo, ciao, wikio, etc.) he echado de menos una característica: que el usuario pueda aportar algo más que comentarios o evaluaciones.

¿Porqué no pueden aportar los usuarios sitios dónde comprar un producto es lo más barato posible? En muchos casos irá en contra del modelo de negocio de estos sitios, en el que cobran por entrar en el índice. En otros casos simplemente porque suponen que un buscador automático es más eficiente que uno “manual”.

Pero en general se está demostrando que la aportación de los usuarios es útil y en este tipo de aplicaciones puede ser complementario, no tiene porqué una característica sustitutiva, y podría suponer una mejora en las búsquedas de precios más baratos.

Además la colaboracion podría ser más profunda: si se trata de una promoción temporal, los mismos usuarios pueden notificar que ha terminado o que la promoción depende de alguna clásusula. También pueden indicar que un producto está agotado o que ya no se vende.

La idea es transformar los buscadores de precios de algo monolítico en algo más colaborativo de lo que son ahora, aprovechando la famosa inteligencia colectiva.

flattr this!