Mes: octubre 2008

  • la habitación china

    La habitación china se trata de un experimento conceptual propuesto por John Searle en 1980 que se ha convertido en un clásico de la inteligencia artificial.

    El experimento consiste en lo siguiente: tenemos a una persona que no habla, ni comprende el chino, encerrada en una habitación. A esta persona, le llegan una serie de textos escritos en chino a través de una rendija. En la habitación tiene una serie de normas y procedimientos en papel, que describen lo que debe escribir en cada caso. Cuándo le llega un texto, sólo tiene que seguir esas normas escritas y escribir la respuesta, que estará correctamente escrita en chino.

    Para pasar el test de Turing un juez debe determinar, haciendo preguntas en chino y examinando las respuestas, si han sido generadas por un ser humano. Si el juez es engañado, podemos decir que la habitación es inteligente.

    Suponiendo que conseguimos una habitación con una serie de normas escritas que superan el test de turing y engañan al juez, el argumento de Searle es que el test no es válido para identificar una máquina inteligente, puesto que la persona en el interior de la habitación ni siquiera comprende el lenguaje chino y el resto de elementos de la sala no son inteligentes.

    El experimento pretende demostrar que una máquina que se limite a realizar un procesamiento sintáctico (seguir unas reglas para componer un mensaje escrito) no puede ser inteligente. Como consecuencia, cualquier intento de crear inteligencia artificial a través de ordenadores no tendrá éxito, puesto que un programa de ordenador no es más que un procesador sintáctico de símbolos (las normas escritas en papel). Además invalida el test de Turing cómo herramienta para identificar inteligencia, puesto que la máquina descrita no es inteligente y sin embargo pasa el test.

    Sin embargo, si suponemos que la habitación pasa el test de Turing, esto implica que el juez (si ha comprendido bien el test) está realizando preguntas que implican un nivel semántico profundo. Por ejemplo, le preguntará a la máquina qué entiende por existencia, qué piensa del amor, qué recuerda de su infancia, a lo que la habitación china debe responder inteligentemente. Si después de un rato el juez repite las mismas preguntas, la máquina (como ser inteligente) deducirá que el juez no le ha comprendido y matizará las respuestas (si una persona repitiese exactamente lo mismo cada vez que le preguntamos algo, no lo juzgaríamos como inteligente). A pesar de que la sala funciona mediante el procesamiento sintáctico de símbolos, si supera el test es porque ha conseguido generar una comprensión semántica.

    Mi argumento es que el test no está correctamente planteado. No se puede demostrar que siguiendo una serie de reglas sintácticas puede surgir este comportamiento semántico, pero tampoco lo contrario. No sabemos si ejecutando millones de reglas obtenemos un sistema capaz de comprender a nivel semántico. Sólo podemos decir que la sala para superar el test debe estar a un nivel semántico. Ni el experimento, ni los contraejemplos eliminan la duda de si esto es posible con una máquina de turing, con lo que el experimento de la habitación china está por ahora en tablas. Creo que es posible conseguirlo, pero ahora mismo es una cuestión de fé.

    Me gusta compararlo con la mecánica cuántica y la mecánica clásica. Si sólo conocieramos las leyes de la mecánica cuántica y estuvieramos jugando con un puñado de átomos sería imposible prever las leyes de la mecánica clásica. Necesitamos un número gigantesco de átomos para tener planetas y gravedad.

  • el fin de una era

    Microsoft anuncia que ofrecerá versiones ligeras de Office a través del navegador. Cómo explican en el artículo de Techcrunch, esto supone renunciar a parte de los clientes que usan y pagan por el office convencional. Aunque a corto plazo no habrá cambios y aunqueh abrá un gran número de clientes que seguirán pagando, Microsoft puede ver muy disminuida una de sus principales fuentes de ingresos.

    Supone también una pequeña derrota para Microsoft porque con Live Office ofrecía una perspectiva mixta, Office en el escritorio combinado con almacenamiento online, que no ha terminado de cuajar. La idea estaba orientada más a salvar a Office que a ofrecer una solución completa para sus clientes, al contrario que google docs.

    Por otra parte este anuncio supone aceptar el nuevo modelo de aplicaciones online que propone google y sobretodo aceptar el hecho de que el escritorio ha perdido parte de la importancia que tenía anteriormente.

    El escritorio sigue teniendo importancia, como demuestran las tecnologías de integración de escritorio y web cómo Silverlight, Adobe Air ó Mozilla Prism, pero es más importante tener aplicaciones en la nube.

  • privacidad en la nube

    Uno de los argumentos en contra de la arquitectura en nube es la privacidad, al dejar en manos de una empresa externa nuestros datos personales.

    Depositar tus datos en una empresa externa supone un salto de confianza importante, pero vez dado no tiene marcha atrás. Sin embargo, ese salto no es más que una barrera psicológica que ya hemos dado en otros ámbitos.

    Por ejemplo, cada al pagar con tarjetas de crédito, cedemos parte de nuestros datos a estas empresas. Tienen acceso a los productos que pagamos, nuestras tiendas favoritas, nuestras horas favoritas de compra, etc. Y sin embargo, la facilidad en el pago supera el riesgo de ceder nuestros datos personales. Al depositar nuestra confianza en visa, mastercard, etc. esperamos que nuestros datos personales no se pierdan ni se usen para otra cosa que no sea el pago de productos.

    Cada vez que pagamos en un centro comercial y usamos una tarjeta de fidelización para obtener descuentos. Con esa información nos identifican y clasifican para saber qué compramos y cuando compramos. Sin embargo los descuentos que nos ofrecen, compensan la pérdida de privacidad.

    No hay que confiar ciegamente nuestros datos a las empresas, pero creo que terminaremos depositando nuestra confianza en estas empresas y cederemos nuestros datos confiando en que las empresas sean responsables.

    Sólo cederemos nuestra privacidad si un servicio merece la pena, compensa la pérdida de privacidad y la empresa es responsable en el tratamiento de nuestros datos, es decir si se ganan nuestra confianza.

  • ordenadores en la nube

    Dentro de la tendencia a poner las aplicaciones en la nube, se suele identificar como precursores a los ordenadores en red de los 90. Durante la primera ola de internet se intentó sin éxito fomentar el uso de ordenadores de baja capacidad conectados a internet, que descargarían aplicaciones o usarían versiones on-line. Estos primeros terminales seguían la filosofía de los terminales tontos y es la razón por lo que mucha gente cree que la nueva generación de computación en la nube va a fracasar.

    Dejando de lado el componente comercial del término (igual que en la web2.0, es más marketing que otra cosa) hay que identificar las razones por las que puede triunfar esta tecnología y porqué fracasó en el pasado:

    • precio: anteriormente estos ordenadores tenían un precio alto, similar al de un ordenador convencional. No ofrecían ventajas para el usuario final, no eran más que ordenadores castrados de una u otra forma , con lo que era mejor comprar un ordenador completo. Los netbooks actuales son algo más baratos que los portátiles y ofrecen la ventaja de un menor tamaño y consumo, por lo que tienen ciertas ventajas sobre los portátiles, aunque tienen desventajas como la falta de disco duro (en algunos modelos) o procesadores más lentos.
    • ancho de banda: en un modelo de computación distribuida es muy importante el ancho de banda. En los 90 con los modem de 56k era difícil que una aplicación de escritorio se pudiera descargar. La web estaba todavía verde con javascript empezando y html más orientado a la representación de documentos (html dinámico era la novedad).

    El cambio que han posibilitado estas ventajas ha sido la posibilidad real de crear aplicaciones web. Sin la arquitectura de aplicaciones basada en la web, no se habría dado este cambio de paradigma. Cualquier otra arquitectura (corba, applets, etc) ha fracasado por un motivo u otro y finalmente se ha impuesto el modelo de aplicaciones web.

    Este modelo también tiene limitaciones, cómo la falta de integración en el escritorio o la imposibilidad de integrarse con dispositivos, pero creo que el siguiente paso en las aplicaciones web es saltarse esas limitaciones e imponerse como alternativas al desarrollo de aplicaciones de escritorio y por eso tienen sentido proyectos como silverlight, flex ó prism.

    En cualquier caso el usuario simplemente quiere hacer cosas, no se preocupa de cómo estén hechas. Pensando en el usuario, es más cómodo que una aplición esté en la nube que en el escritorio, sobretodo si tenemos en cuenta que actualmente se usan cada vez más ordenadores.

    Puedo ser un caso raro pero tengo ordenador en el trabajo, ordenador en casa, ultraportátil y un ordenador para ver películas en la tele. ¿Qué es más cómodo, usar una aplicación instalada en cada ordenador o usar una aplicación a la que accedo desde cualquiera de ellos? ¿Qué es mejor, usar una aplicación html con formularios y recarga de páginas o una aplicación ajax rápida e integrada en el escritorio?

    Las aplicaciones deben estar listas para el acceso desde múltiples dispositivos, dado que con la nueva oleada de móviles, ya no sólo accederemos a google, facebook, y compañía desde el ordenador, sino que accederemos desde muchos ordenadores.

  • ancho de banda de los sentidos

    Ya había leído anteriormente una estimación del ancho de banda generado por la vista, pero acabo de leer en microsiervos un artículo en el que se estima el ancho de banda de todos los sentidos y resulta muy llamativa la diferencia entre el ancho de banda de los sentidos, que en total envían unos 11Mbit/s al cerebro y el ancho de banda de la cantidad de información procesada por la parte consciente del cerebro, apenas 80 bits/s.

    A un amigo le comenté con otras palabras, que esta diferencia esconde uno de los principales problemas de la inteligencia artificial: cómo traducir esos 11Mbit en apenas 80 bit de información «útil» para que la use nuestro cerebro consciente. Éste problema es la percepción, que debe transformar la información en bruto de los sentidos en otra información procesada que pueda ser usada por la parte consciente del cerebro.

    Se puede pensar de otra forma: nuestro cerebro consciente piensa con palabras, pero no demasiadas palabras por minuto. Esas palabras se pueden transmitir en apenas unos bits por segundo y es por lo que obtenemos un pequeño ancho de banda de procesamiento consciente de información. Aunque puede resultar una medida engañosa: aunque el cerebro procese poca información por segundo, la profundidad de esa información (informacion conceptual en muchos casos) es muy difícil de procesar en los ordenadores actuales.

    Un ejemplo con un robot aspiradora: Implementar un algoritmo para aspirar una habitación es relativamente sencillo. Lo complicado en el «mundo real» es distinguir un calcetín de una sombra, lo complicado es saber si estamos situados encima de una alfombra o de parquet. Una vez que tenemos asimilada la información del mundo, la decisión de saber qué presión ejercer es muy pequeña: «si estamos en parquet ejercer X presión si no ejercer Y». De ahí que haya tanta diferencia entre la información generada por los sentidos y la información procesada por la parte consciente del cerebro. La información que manejamos en la parte consciente está muy generalizada, sin embargo su uso implica interacciones muy complejas con el mundo físico: pensar en abrir una puerta nos cuesta muy poco en cantidad de información, pero conlleva una cantidad de información sensorial asociada enorme (desde la vista y reconocimiento de la puerta y el pomo hasta el movimiento de cada uno de los músculos apropiados).

    En el artículo original se analiza otro aspecto interesante sobre la toma de decisiones. Parece que hay evidencias de que las decisiones se toman en la parte inconsciente del cerebro. Estas decisiones se toman en la parte inconsciente siguiendo algoritmos sencillos para permitir una reacción rápida (o un depredador te puede comer). A 80bits/s es difícil realizar muchos cálculos. Es posible que usemos algoritmos muy sencillos que quizá no sean óptimos, pero sí rápidos (eficiencia de la solución vs. velocidad de cálculo).

    En Fooled by randomness se aborda este tema de otra forma: muchas teorías económicas sobre mercados eficientes se estén cuestionando porque las decisiones que tomamos no son óptimas desde un punto de vista matemático. Parece que no tomamos decisiones racionales porque tenemos unos prejuicios cognitivos, que no son más que cortocirtuitos de razonamiento que hacen que nuetro cerebro funcione más rápido.

    Este debate se podría relacionar con las aproximaciones reactivas y deliberativas en la robótica o con el conexionismo vs ia simbólica: probablemente todas las perspectivas tengan razón desde un punto de vista distinto, algo así cómo la mecánica clásica vs relativista.

    Quizá habría que replantearse la forma de construir una inteligencia artificial, pero tendiendo en cuenta que en algunos casos no necesitaremos una inteligencia que funcione cómo la de un ser humano. Es posible que sea conveniente implementar máquinas inteligentes parecidas al ser humano en unas situaciones y máquinas inteligentes «en bruto» que resuelvan problemas complejos en otras diferentes.