bahamas_2836_600x450

Dice Marvin Minsky que la mejor forma de comprender la mente es construyendo una. Estamos de acuerdo, así que vamos a ver uno de los intentos clásicos de hacerlo. En 1957, Simon, Shaw y Newell, diseñaron uno de los grandes hitos de la historia de la Inteligencia Artificial: el General Problem Solver. Era un programa creado para solucionar cualquier problema de tipo general, rompiendo con la preconcepción de que las máquinas solo podían resolver problemas muy específicos. Su estructura, muy simplificada, venía a ser la siguiente:

Sin título

El GPS funcionaba realizando una analogía entre su situación actual y el objetivo a cumplir, efectuaba un análisis de las diferencias entre ambos estados, utilizaba métodos para reducir las diferencias, y luego volvía a realizar la analogía inicial hasta que no existiesen diferencias entre el estado actual y el estado deseable. El diseño es muy interesante, sobre todo, por las similitudes que parece reflejar con respecto a la forma que tenemos los seres humanos de solucionar problemas, manteniendo, empero, una estructura muy simple:

1. Al realizar una comparación entre su situación y sus objetivos, tiene una cierta representación de sí mismo. Si quiero irme de viaje a las Bahamas, lo primero que tengo que saber es que YO no estoy en las Bahamas. Estaríamos todavía a años luz de la autoconsciencia, pero ya es un paso.

2. Para reducir las diferencias, el GPS podía suspender momentáneamente su objetivo principal para resolver sub-objetivos. Esto es una característica plenamente humana: suspender las urgencias del presente en pro de un objetivo futuro, es decir, planificar una acción en pasos. Si quiero irme a las Bahamas tengo que solucionar sub-problemas como pagar los billetes de avión, hacer las maletas, coger un taxi al aeropuerto, etc. Cuando queremos solucionar un gran problema, una buena forma de hacerlo es dividirlo en problemas más pequeños.

3. El GPS razonaba por analogía, quizá la forma humana más habitual de razonar. ¿Cómo sé que hay que hacer para viajar a las Bahamas? Porque antes he realizado otros viajes o porque he visto a otros hacerlos. Realizo analogías entre ese conocimiento previo y el problema al que me enfrento. Si yo viajé antes a Hawai, también hice las maletas y cogí un taxi al aeropuerto, pero a la hora de comprar los billetes de avión ahora tendré que comprarlos para Bahamas y no para Hawai y, probablemente, el precio será diferente. Hay similitudes que utilizaré sin problemas y diferencias que tendré que solucionar.

Sin embargo (ah, el siempre triste sin embargo), el GPS tenía el defecto que, hasta la fecha, no ha podido solucionarse (y del que ya hemos hablado en muchas entradas). Si realizar una analogía entre como estoy y lo que quiero hacer no parece presentar demasiados problemas, encontrar métodos de reducción de diferencias sí. Cuando nuestra máquina se encuentra en el aeropuerto y comprueba que «comprar un billete para Hawai» no le llevará a las Bahamas tiene que saber, de algún modo, que «en un aeropuerto pueden comprarse billetes a muchos sitios diferentes». Si no sabe eso, es imposible que pueda solucionar tan simple problema. Y es que el GPS solo funcionaba en entornos muy formalizados, no en el mundo real. Estamos ante el enigma del sentido común: si el GPS podía resolver teoremas matemáticos de gran complejidad, no podría comprar un billete de avión.

Una forma de entender este dilema se ha formulado afirmando que cuando realizamos cualquier acción existe un montón de conocimiento implícito que excede el conocimiento de una simple descripción simbólica como la que maneja un computador. Douglas Lenat nos ofrece un magnífico ejemplo de ello: analicemos la frase «Fred le dijo al camarero que él quería patatas fritas a la inglesa». ¿Qué tenemos que saber para entender esta afirmación?:

La palabra él se refiere a Fred, y no al camarero. Eso sucedía en un restaurante. Fred era un cliente que estaba cenando allí. Fred y el camarero se encontraban más o menos a un metro de distancia. El camarero trabajaba allí y en aquel momento estaba atendiendo a Fred.

Fred quiere patatas en rodajas finas, no en tiras. Fred no desea unas patatas determinadas, sino solo un tipo determinado de patatas.

Fred indica esto mediante las palabras habladas que dirige al camarero. Tanto Fred como el camarero son seres humanos. Ambos hablan el mismo idioma. Ambos tienen edad suficiente para poder expresarse, y el camarero tiene edad suficiente para trabajar.

Fred tiene hambre. Desea y espera que en unos minutos el camarero le traiga una ración normal, que Fred empezará a comer en cuanto le sirvan.

Asimismo podemos suponer que Fred supone que el camarero también supone todas esas cosas.

No hay más que decir: o el GPS sabe o puede deducir todo este conocimiento implícito, o jamás podrá resolver problemas que ocurran cuando tenga que pedir una ración de patatas en un restaurante. La solución que se dio fue la de crear sistemas expertos. Podríamos dotar al GPS de un montón de conocimiento sobre todos los pasos que hay que dar para realizar un viaje o comer en un restaurante. No obstante, al hacerlo, estamos incumpliendo nuestro propósito inicial, a saber, que nuestra máquina solucione cualquier tipo de problemas y no únicamente problemas específicos. Este es el asunto en el que la Inteligencia Artificial lleva estancada durante las últimas décadas y que no tiene demasiados visos de resolverse a corto plazo.

Véanse, en la misma línea:

Contexto o como no montar una orgía

Cero en conducta

El límite Winograd

El mismo Lenat lleva años intentando dotar a las máquinas de sentido común. En esta entrada hablé de su encomiable proyecto: la inteligencia son cien millones de reglas.

comentarios
  1. sirnewton3813 dice:

    Sí, creo que aún están muy lejos de construir sistemas que puedan elegir satisfactoriamente entre varios caminos, pues precisamente, por el conocimiento implícito.
    El decantarse al final por una opción es la punta del iceberg de un montón de información implícita que el ordenador o robot no puede manejar ya sea porque no tiene condensada tanta información en su memoria o porque no tenga algoritmos que trate los matices de toda la información que posee y no la pueda traducir a una elección satisfactoria.

  2. alejandrovu dice:

    Santiago: ¿Y si estuviéramos sobrestimando nuestras capacidades? Es cierto que nosotros somos «sensibles al contexto». Sabemos que si en una conversación nos referimos a nuestro interlocutor como «tú» esta palabra hará alusión a nuestro interlocutor y no a otros «tús» que hayamos conocido, pero tampoco es cierto que tenemos toda la información presente durante todo el tiempo.

    Si le pidiera papas fritas al camarero, no creo que me detenga a pensar en si tiene un contrato de trabajo y si lo firmó con una lapicera negra o azul, ni en que está sometido a la misma fuerza gravitacional que yo, ni siquiera que está sujeto a las mismas leyes del a física que Mercurio. ¿Será que operamos a un nivel más inconsciente del que nos gustaría reconocer ? ¿Será parte de la «magia» la simplificación que de alguna manera hace nuestro cerebro con la información del mundo (a modo de un gran filtro)? Cuando pienso de esta manera, la IA se me torna más atractiva; algo que podríamos llegar a construir.

    De alguna manera, somos prueba de que es posible hacerle frente a la explosión combinatoria y dado que la evolución se sacó unos cuantos ases bajo la manga, espero que un día nosotros nos saquemos otros.

    Saludos.

    PD: SHRDLU Ah… Parecía tan cerca… 🙂
    PPD: Llevo algún tiempo sin dormir… Disculpen la falta de continuidad entre las ideas… xD

  3. sirnewton3813 dice:

    Añadiría también, que quizás el sistema para ser relativamente autosuficiente en el contexto en el que se mueve, debería poder manejar «símbolos» como los que maneja la mente humana, esos símbolos que son concretos pero que representan tantas cosas, me explico, un robot puede reconocer una mesa a nivel visual, pero no entender que es una mesa , si maneja «símbolos», quizás podría entender la mesa como un elemento duro(por ejemplo). Lo duro sería el símbolo que puede expresarse hacia cosas muy diferentes, así pues al ver visualmente el agua, podría entender el agua a través del opuesto de lo «duro» es decir «blando».
    Se podrían hacer algoritmos que sólo tratases esos símbolos y que estuvieran relacionados con otros símbolos(algoritmos), y que esa red de símbolos diera una dirección, un sentido, a lo que por ejemplo ve. Así pues el robot, no sólo vería la mesa, sino que entendería la mesa a través de algoritmos especializados, no se si me explico bien.
    Entendería la mesa como su propiedad, «duro», ese símbolo contextualizaría la mesa en un marco más rico y por tanto habría más información implícita.

  4. Alejandro:

    Sí, la mayor parte de la información que manejamos permanece a nivel inconsciente. En el restaurante la consciencia solo se encargaría de cosas como buscar al camarero, elegir el menú, observar a los demás comensales, etc. Pero, aunque esta información no esté presente en nuestra consciencia, «está presente» ya que nos permite funcionar competentemente. Cuando estoy en el restaurante no pienso en ningún momento que el camarero va a echar a volar, pero sé, de algún modo, que los camareros no vuelan, y esa información me permite predecir la conducta del camarero aunque no piense conscientemente en ello.

    Y sí, nuestra mente hace una especie de «filtro» con la información que le es relevante en cada momento. Y eso es lo realmente difícil de simular: ¿cómo saber qué información es la que realmente importa y cómo separarla de tanta información insignificante? ¿Cómo, por ejemplo, sabe nuestro cerebro seleccionar de entre los miles de estímulos que se le presentan, que si en la mesa los platos están sucios, quizá este no sea un buen restaurante al que apetezca volver? ¿Cómo diablos hacer que un computador entienda eso?

  5. Sirnewton:

    La Inteligencia Artificial lleva años diseñando modelos simbólicos como los que mencionas. El problema es que mundo simbólico es tremendamente complejo y ambiguo. Por ejemplo, mira estas dos frases:

    El lápiz está en la caja.
    La caja está en el lápiz.

    ¿Cómo hacer que el computador piense que la segunda proposición es extraña e improbable? Solo enseñándole previamente que no es habitual que existan cajas en los lápices, pero entonces, ¿cuánta información hay que meterle a una máquina para que se comporte como un ser humano?

  6. alejandrovu dice:

    Santiago: Justamente de acuerdo, ¿Es nuestro pensamiento consciente sólo la punta del iceberg? Por supuesto que decir esto no soluciona el problema. Sigo pensando en si la evolución dio con el equivalente de un algoritmo simplex: Partir de un punto del espacio de soluciones y dar con una buena solución sin recorrer todo el espacio posible de soluciones. (en estos momentos me siento verde de envividia y de respeto por la evolución 🙂 )

    Sirnewton3813: Buena suerte con eso. Si se logra seré uno de los primeros en alegrarse. ¿Qué forma debería tener? ¿Debería parecerse a la numeración de Gödel? ¿Al lenguaje universal que visualizó Leibniz?

  7. David dice:

    La IA tuvo un pecado original, y fue el abuso de la introspeccion para entender que es la inteligencia y que problemas son faciles y cuales dificiles. Dado el castañazo inevitable los investigadores se centraron en resolver problemas mas especificos, tanto por razones teoricas como de capacidad de calculo. En los ultimos años la tendencia se esta empezando a invertir, principalmente gracias a la neurociencia. Algunos investigadores creen que desentrañando los mecanismos del cerebro se podra dotar de mas generalidad a los algoritmos tradicionalmente especificos de la IA.

    Un ejemplo

    http://www.youtube.com/watch?v=AY4ajbu_G3k (ver minuto 8)

  8. sirnewton3813 dice:

    Santiago:

    Sí, debe de ser muy difícil construir un programa que sepa distinguir detalles pequeños o ambiguos pero que representen una gran diferencia, por ejemplo lo del lápiz esta en la caja, o la caja está en el lápiz.

    Supongo que igual que todo ser vivo tiene al inicio de su vida una etapa de aprendizaje bastante importante y que luego todo conocimiento que reciba estará en función de ese aprendizaje inicial, quizás debería de crearse programas capaces de aprender y luego en base a lo aprendido reconducir toda información nueva que le llegue.

    Especulando:

    Si el robot ve un lápiz(de una forma tridimensional) y le asocia la red de símbolos largo,pequeño, etc.., si además el robot puede coger el lápiz y tiene sentido de tacto y le asocia los símbolos duro,sólido,denso, luego ve la caja(también tridimensionalmente) y le asocia símbolos grande-espacioso y tocándola asocia símbolos ligera-vacía etc..
    Entonces lo bueno sería que el juego de símbolos organizaran la información que le viene de los sentidos, sabría que el lápiz es pequeño, más que la caja, y que la caja es grande, más que el lápiz, entonces podría decantarse más a que el lápiz puede entrar en la caja, que al contrario.
    De todas formas lo ideal es que además el robot tuviera la curiosidad de coger el lápiz y la caja y jugar con ellos, dotar al robot de capacidad de juego como «motor de curiosidad», eso le haría comprometerse más con los elementos y que las redes de símbolos se organizaran mejor.

    Pero claro esto es especular mucho.
    Yo personalmente me inclino a pensar que más tarde que temprano habrá sistemas que emulen el cerebro humano y por tanto todas sus capacidades.

    Alejandrovu:

    La verdad es que tengo muy poca base de informática, no estoy metido en ese mundo o sea que poco podría hacer, seguro que sabrás más informática y matemáticas que yo.

  9. Un chiste gilipollesco:

    HAL: Estoy enamorado de ti.
    Ingeniera: No puede ser HAL, lo nuestro es imposible.
    HAL: ¿Por qué?
    Ingeniera: Yo te quiero mucho pero como amigos.

    Conclusión de HAL: Warning: las ingenieras guapas realizan prácticas caníbales con sus amigos.

    Sirnewton:

    Ya desde los comienzos del asunto, el mismo Turing habló de construir máquinas bebé que podrían tener largos procesos de aprendizaje. Pero el problema, insisto, es que todo ese conocimiento simbólico necesario para actuar en el mundo real es, por un lado, difícil de organizar y almacenar (no sabemos ni siquiera cómo lo hacemos los humanos) y, por otro, parece absolutamente inabarcable.

    En el ejemplo del lápiz no parece que existan demasiados impedimentos para que un robot pudiera manejar un lápiz a nivel operativo: cogerlo, saber sus dimensiones, textura, peso, etc. En la década de los 70 se desarrolló SHRDLU, que hacía eso bastante bien (¡ y ya fue un trabajo colosal de programación!).

    http://es.wikipedia.org/wiki/SHRDLU

    Sin embargo, si ya ambicionamos algo más comienzan los problemas: ¿cómo podría averiguar la máquina para qué se usan los lápices? Podríamos hacer que obrara por imitación: veo a humanos manejándolos y realizando trazas en rectángulos de papel (lo cual ya comienza a ser complejo). Vale, ¿pero cómo entendería el robot que escribiendo se expresan ideas, que las letras son símbolos mediante los cuales alguien puede, por ejemplo, escribir una carta a su amada ingeniera canibal? Una locura programar algo así.

  10. sirnewton3813 dice:

    Sí estoy totalmente de acuerdo que hoy por hoy es una utopía que un sistema tenga ni siquiera una mínima capacidad de entendimiento, (al menos por lo que entendemos por «entendimiento»).

    Es más que yo sepa ni siquiera pueden hacer un programa que emule el sistema nervioso o centro de actividades de una mosca, con lo cual para emular el neocórtex o algo parecido estamos bastante lejos.
    Es más incluso el propio cerebro humano con una mínima diferencia ya presenta taras importantes, síndrome de Down o autismo o ciertas enfermedades que incapacitan a la persona para ciertas actividades muy básicas. Así pues en el caso de que hiciéramos un sistema inteligente o muy inteligente en ciertos aspectos, en otros podría tener una puntuación bajísima, me refiero a que un robot podría llegar a poder ser capaz por ejemplo de ser un experto cocinero e incluso creativo, pero ser incapaz pues eso, de comunicarse satisfactoriamente con alguien, sería una especie de robot autista.
    Creo que los programadores informáticos (que se dedican a la IA) tendrían que ser formados o ayudados por psicólogos, neurólogos o incluso por filósofos que entiendan en profundidad la mente.

  11. Hola Santiago, he llegado a tu blog por lo de «pensar con el estómago» (algo sobre lo que llevo rumiando varios años), pero viendo este post me ha interesado aún más, y quería comentarte que he construido una «mente» que resuelve este mismo problema genérico de una forma muy sencilla, basada en el concepto de aumento de la entropia de la termodinámica, y resolviendo las ecuaciones (infumables) con técnicas fractales sacadas de la manga (soy matemático).

    Como todo esto te puede sonar a chino mandarían, si te interesa, puedes echar un vistazo a estas dos entradas de mi blog, son quizas las que más directamente te muestran el «como» y el «hasta donde» del método:

    Este explica lo más básico, el «sentido común»:
    http://entropicai.blogspot.com.es/2014/10/goal-less-intelligence.html

    Y este muestra la potencia de usar fractales:
    http://entropicai.blogspot.com.es/2016/04/understanding-mining-example.html

    Tienes un buen montón de entradas sobre AI basada en sentimientos, temas de consciencia, diferentes tipos de inteligencias (todas conviviendo en nuestro cerebro), colasboración entre inteligencias y demás temas relacionados, solo que no los trato a un nivel filosófico, si no que habló de fórmulas y algoritmos muy concretos y funcionales, lo cual es digamos «raro» en este mundillo.

    Un placer haber conocido tu blog, me ire leyendo más cosillas conforme pueda!
    Sergio Hdez.

Deja un comentario