martes, 31 de julio de 2012

De Inteligencia Artificial y otros conceptos

Muchos años atrás, al contemplar lo que sería mi primera computadora, nunca imaginé el camino que me vendría por delante en los valles de la programación, pero uno de los caminos que cruzaría una y otra vez, antes, durante mis estudios, y actualmente como profesional, siempre ha sido la Inteligencia Artificial.

La primera vez que tuve un encuentro con la inteligencia artificial, fue con un curioso programa, que afirmaba tenía la capacidad de aprender de textos que le eran introducidos, o de una simple conversación con un humano; al principio parecía funcionar, pero gradualmente me daba cuenta que el programa más se confundía y en las cosas más sencillas enredaba la conversación; sin embargo de ahí nació mi interés en este campo de la informática; nunca activo, siempre latente, ya que nunca lo vi viable; no porque no se pudiera hacer, si no porque nunca vi una utilidad fundamental, el problema a resolver que cumple todo programa.

El término Inteligencia Artificial, nunca ha sido de mi agrado; la inteligencia no es artificial; la inteligencia es una capacidad y punto, su origen no debería dictar una diferencia, ya que los productos de esta inteligencia no son artificiales, por ejemplo, si una máquina con capacidad de IA crea una silla, ¿es esta artificial? ¿Acaso no podré sentarme en ella ya que yo si tengo inteligencia normal? Si le hace falta un poco de inteligencia, pues la respuesta es: no.

Antes de estudiar programación tuve un encuentro con ella, sin saber mucho del tema, practiqué con funciones de programación, y supuse la posible creación de una "mascota electrónica"; un pequeño perro con comportamiento propio e independiente de mi persona; mi experiencia distaba mucho de un programador profesional o experimentado, por lo tanto este intento fue un fracaso, pero el interés siempre estuvo latente.

Tiempo después ya encaminada la carrera, durante una exposición sobre campos de la programación, intervino un experto en el campo de la IA del Instituto Tecnológico de Costa Rica; no recuerdo su nombre, fue hace ya varios años, pero su pregunta introductoria aún no la olvido: ¿Cuántos creen posible que se pueda crear en el futuro IA? No lo pensé mucho, para mi era obvia la respuesta, así que no levanté la mano... sí, no la levanté... esto por mi discrepancia con el término y su producto... la exposición siempre se basó en el futuro, nunca en el ahora... y en ese momento como aún lo es, lo que ha derivado de la inteligencia artificial es especializarse en un minúsculo campo para llevar una simple tarea, por ejemplo, un robot que camine, un robot que sepa escribir, una super computadora que juega ajedrez, una supercomputadora que coteja una base de datos para obtener la respuesta más cercana posible; nunca hay una mezcla de todas. Para mi es decepcionante.


Si la inteligencia puede ser Artificial o Creada, en tal caso debemos aceptar la posibilidad de que nosotros también seamos un elemento creado por un ente superior. ¿Qué tan grande es tu ego para no pensar en esa posibilidad?, pero eso se lo dejo a cada uno.

Mi siguientes encuentros con la IA, fueron ya intentos de crear un programa, al estar mucho más avanzada la carrera, que pudiera pensar por sí mismo, aprender por sí mismo y no depender de mí, y de nuevo fallé; no por falta de conocimientos si no por la vía de implementación, o la lógica implementada (para los que ignoran el término "Lógica", no es sobre lo que es "aparente a todo el mundo", si no de la lógica matemática aplicada, que es muy diferente) ya que el camino que decidí seguir, era muy similar al de crear un lenguaje de programación del que ya tenía experiencia en IA: PROLOG que es ampliamente usado para realizar sistema lógicos que pueden relacionar datos en base a enunciados similares a las analogías como por ejemplo:

Superman es hombre
Yo soy hombre

Resultado: Yo soy Superman

La lógica es buena, pero usted puede identificar que el enunciado es incorrecto; a pesar de ser buena la analogía, faltan miles y millones de conceptos, que obviamente nosotros poseemos, para poder identificar que el resultado no tiene sentido.

Si bien ProLog es funcional, o sea, puedes crear un sistema que brinde resultados, no es lo que necesitaba, ya que cada vez que intentaba crear un ente independiente yo sospechaba que algo no andaba bien; luego estas sospechas se volverían realidad, al ver que el programa cae por su propio peso... el asocie de conceptos no debería hacerse desde el código, si no en tiempo de ejecución; además ProLog utiliza desde el núcleo funciones para multiplicar y sumar, que para mi propósito era incorrecto, ya que si pretendía crear un ente independiente, este debería aprender por si solo a sumar y multiplicar, y no tenerlo desde su concepción.

Un día de 2010

Ya habían pasado varios años desde que si quiera recordaba el intento de crear un ente pensante... pero en 2010 las cosas cambiaron mucho... lo veo directamente relacionado con mi adquisición de conocimientos de Drupal (6 y 7), me vi forzado yo solo a superar la curva de aprendizaje casi imposible que tiene este administrador de contenidos (no hay muchos que la superan) y un curioso efecto secundario que permanece hasta hoy sobre este esfuerzo sobre humano, fue un incremento en mi memoria; realmente nunca fui bueno para memorizar cosas, si  necesitas algo puedes buscarlo, pero con Drupal me vi forzado para ahorrar tiempo de investigación tener a mano esos conceptos, y se generalizó, recordaba cosas de años atrás, recuerdos disparados por un gatillo visual, y lo mejor de todo, empecé a relacionar conceptos que aparentemente no tenían nada que ver... el conocimiento, el aprendizaje, se volvió casi una droga; esto se mantiene hasta el día de hoy, no hay nada que no se pueda aprender, que puede no sea útil ahora, pero que se puede relacionar con otros conceptos.

Y así sucedió un día, que mi subconsciente empezó a amarrar ideas... ¿Por qué cuando vi un camión azul disparaba un recuerdo de mi niñez? no era un recuerdo significativo, pero fue el primer disparador a algo más grande... y darme cuenta que lo que había dicho Albert Einstein era cierto "The important thing is not to stop questioning. Curiosity has its own reason for existing." "Lo importante es no dejar de hacerse preguntas. La curiosidad tiene su propia razón para existir" Nunca, pero nunca en mi vida creí que podría entender esa frase, uno creé que la entiende, pero no la entiende hasta que la practica (esa frase misma de Einstein la recordé por si solo, parte de los efectos secundarios de la memoria) ¿cuál es su funcionamiento? no es solamente la pregunta, si no intentar responderla, esa es la magia, preguntas sin respuesta, pueden tener cualquier respuesta, respuestas fantásticas, y de ahí viene otra frase de Einstein "Imagination is more important than knowledge." "La imaginación es más importante que el conocimiento" ya que esta imaginación podrá responder las preguntas que no tienen respuesta, y luego con el método científico, ponerlas a prueba para confirmar si son verdaderas o no.

Una madrugada no lo soporté más, no podía dormir... tenía esta idea, un increíble mapa conceptual que aún hoy tengo en papel... sudando me levanté... tomé papel y lápiz y enlacé las ideas de el núcleo de lo que ahora sí, para mí, después de tantos años, podría considerar la primera capa nuclear de un ente independiente... el primer paso... de un camino muy largo que apenas ha dado frutos... luego de escribir en el papel... entonces ya pude dormir.

Simulacro de Cerebro

No me gusta la palabra simulación para una ente pensante, caigo en el mismo concepto de "Artificial", simulacro es la traducción directa de Simulacra, la palabra que realmente uso para definiar a un cerebro artificial, y a su ejecución independiente y pensante, tomado de Simulacra and Simulation donde en mi versión Simulacra es la ejecución del cerebro para convertirse en un ente pensante.

Han pasado muchos meses, en que luego de escribir el diagrama de Simulacra, decidí retomarlo... no me considero alguien que procrastina, si no alguien que pierde interés en las cosas, por lo tanto si la estamina de mi interés se pierde por un proyecto, salto a otro; los proyectos en los que voy saltando, son los proyectos más grandes, y el más grande hasta el día de hoy sigue siendo Simulacra. Desde el 2010 hasta hoy he hecho varias aplicaciones en el Android Market (hoy Play Store) por lo que de nuevo considero que no soy procrastinador, si no que más bien hay que dejar que el interés vuelva para continuar, y cuando vuelvas, tendrás nuevas ideas y habrás aprendido algo nuevo de tus otros proyectos.

El camino de la sabiduría

Para aprender algo muchas veces no basta con que nos digan como es, tenemos que vivirlo para aprenderlo de verdad; como me gusta decir, el conocimiento no se transfiere por ósmosis y las cosas se olvidan, es mejor vivir el camino; por lo tanto tomé una decisión que muchos considerarán estúpida, pero estoy seguro que muchos dijeron lo mismo del viaje a La Luna muchos años antes, decidí no leer nada sobre IA ya existente, decidí que mi obstáculo fue conocer un poco sobre ello, e intentar subconsciente de replicar esos conocimientos; así que es mejor generar todo desde cero, evitar lo que otros han hecho, y encontrar mi propio camino, uno diferente, ya que lo que se ha hecho hasta el día de hoy, es lo que considero no es el camino.

¿Qué es un objeto?

¿Qué es un lápiz para ti? una herramienta para escribir muchos dirán... yo me pregunté ¿Qué es un lápiz para un reo en una prisión? un arma dirás ahora... pero ¿no era una herramienta para escribir? ¿Qué te hizo cambiar de opinión? De nuevo aquí las preguntas de Einstein, y con la misma imaginación que describía Einstein decidí responderlas... El ambiente, es la respuesta, tu concepto cambió, porque los conceptos que lo rodeaban son diferentes; el contexto si quieres verlo así, entonces un lápiz no es solo un lápiz, este lápiz, es lo que YO quiera que sea... ¿interesante no? de pronto tu mente puede convertir cualquier cosa, en otra cosa, llevándonos inclusive a la mismísima relatividad, pero una relatividad en contexto, donde su relatividad, se vuelve objetividad.

De nuevo ¿qué es un lápiz? dígaselo a un químico, le dirá, es el resultado de grafito y celulosa, metales y gomas plásticas para su borrador... un físico posiblemente le mencionará los elementos, la cantidad de átomos, su masa, su fuerza de gravedad, su aceleración; conceptualmente relativo debido al contexto; pero esto me llevó a pensar que, nosotros no almacenamos esos conceptos increíblemente detallados, del lápiz podemos saber cuantos átomos pueda tener, pero ¿cómo podemos comprobarlo? puede que mañana cambien sus átomos, sus radicales libres, su masa... entonces para nosotros es un lápiz... eso es lo que almacena nuestro cerebro... conceptos. Todas estas reflexiones me llevaron varios días luego de muchos meses de inactividad, pero ya era algo tangible, que muy pronto podría crear un programa que probara mis conceptos, de nuevo, una vez conseguidas las respuestas por la imaginación, hay que probarlas científicamente, si no, se quedan en teoría.

En este punto tenía un gran dilema filosófico y moral, ¿qué consecuencias puede haber de crear un ente pensante independiente? ¿puede ser bueno o malo? ¿puede destruirnos? de repente toda la ciencia ficción de libros, comics, y películas que tanto me gustan, se vuelve algo real y tangible en mi plano; así que decidí consultar con un buen amigo, filósofo de la Universidad de Costa Rica sobre lo que estaba haciendo, y sobre mis avances; al final me hizo ver que mis descubrimientos eran muy similares a los del filósofo Kant, muy emocionado luego de la charla, busqué información de Kant y su trabajo... solo para descubrir que no avanzó más allá de este punto... una verdadera lástima, ya que pude haberlo usado, pero las cosas no siempre salen como uno quiere.

Es un programa real

Así es, Simulacra es un programa REAL, en toda su extensión, es un programa funcional que cumple lo que planeé para su núcleo, responder preguntas básicas como la primera que me hice ¿Quién es mi hermano?, esto conociendo detalles directos e indirectos sobre quien soy yo.

La siguiente fase está un poco detenida, como dije anteriormente, mi interés brinca de un proyecto a otro y por ahora estoy más interesado en otras cosas, y también por una pequeña traba de lógica en lo que quiero hacer, si el sistema puede responder preguntas, también puede deducirlas sin realmente conocer los datos, lo que me lleva a un procedimiento de fórmulas para deducir estos conceptos, pero estas fórmulas tienen dimensiones variables, por lo que su almacenamiento es de igual forma variable, y no puede estar contenido en una estructura física fíja y es aquí donde estoy aun pensando, pero no es mi prioridad por ahora.

Aplicaciones de Simulacra

Comentaba con un amigo sobre el programa, nos divertimos conversando sobre las posibles consecuencias de un ente independiente autónomo, de una máquina pensante que pueda venirse en contra de nosotros; pero a pesar de estas bromas, hay que tomar en cuenta varias cosas, sobre un programa que simula un cerebro humano, que mucha gente no toma en cuenta, y es que si logro crear un sistema que lo simule a su total capacidad, le tomaría dos años aprender un idioma, hasta unos quince años para tener un razonamiento lógico como un joven, y cerca de los veinte años para considerarse una mente independiente; ¿a qué quiero llegar con esto? si se simula un cerebro humano, reaccionará igual que una persona, podrá ser buena o mala, podrá no ser siempre buena o mala, podrá ser promedio, ignorante, inteligente, todo en la gama humana; pero ¿estaría dispuesto a invertir 20 años de aprendizaje para tener una copia de un ser humano? Ni yo lo estoy, pero no es imposible.

Aplicaciones más viables de un sistema con capacidad para aprender, serían para mi un sistema vigilante, uno que esté observe el tráfico, y que encienda o apague las luces de acuerdo a su razonamiento. Claro ya existen estos sistemas,pero basados en lo que sucede en el punto en cuestión de un semáforo, que tal toda una ciudad monitoreada por un Simulacra, y que cambie de decisión de acuerdo a lo que parece la mejor decisión, esto sin programarla, simplemente dejarla ejecutando y aprendiendo por si misma, hasta informando a los usuarios en sus vehículos de cual debe ser la mejor ruta para ellos de acuerdo con el tráfico. Un Simulacra que tome decisiones corportativas, prediga eventos y controle cantidad de la producción en respuesta a un posible incremento en ventas, todo esto sin intervención humana, pero desgraciadamente tan falible como la humana y limitada a la cantidad de datos que se le provea para crear conceptos; un mal manejo de conceptos provoca malas decisiones o respuestas del Simulacra, por lo que se debe asegurar que estos valores sean reales a nuestra realidad, pero inclusive un Simulacra se puede encargar de ello, cotejando la información con valores reales de internet, y tomando como concepto real, el valor más aceptado y funcional por experiencia de otro seres humanos.

Un Simulacra nos puede ayudar a tomar decisiones al conducir, tomando el control del vehículo en caso de peligro humano.

Si no me ha seguido la linea de pensamiento, la idea no es construir un Simulacra nuevo desde cero, si que existiría de fabrica un Simulacra igual para todos estos eventos, lo que cambiaría serían sus conceptos, y por lo tanto respondería de diferente forma a un evento similar, al igual que un mecánico respondería de cierta forma a como arreglar una patineta de como lo solucionaría un profesor; probablemente lleguen a la misma respuesta, por diferentes caminos, todo ello debido a sus conceptos propios, aprendidos, no escogidos y escogidos.

Espero algún día publicar el trabajo completo y una muestra de un Simulacra básico, pero a pesar de la increíble cantidad de trabajo, lo considero aún en una etapa temprana, pero ese día llegará tarde o temprano. Sin embargo, si quiere leer sobre como voy poco a poco llegando a mi meta, hice un nuevo blog para tal fin, y aunque todo esté muy criptico, si tiene interés lo invito a participar comentando

Blog: http://cerebrumsimulacra.absulit.net/