Este blog no es publicitado, si lo encuentra fue por casualidad.

martes, 24 de enero de 2012

Nace una idea

Hace ya muchos años, cuando tuve en mis manos la primera computadora que se compró en casa, llegué a tener un programa del que no recuerdo bien el nombre, pero este programa "alegaba" o al menos sus creadores, que podía "aprender" de lo que se le escribía, incluso de leer textos e interpretarlos. El programa al inicio parecía ir bien, pero luego me di cuenta que era un fracaso para interpretar y aprender.

Estos acontecimientos llamaron mi atención, y siempre tuve la duda: ¿Se podrá crear un programa que piense?, y quería fervientemente hacer uno, pero no podía.

Años más tarde llegó mi primer acercamiento a la programación; le había pedido algun software de animación en 3d a mi padre, pero debido a un pequeño error, trae a casa el entonces llamado "Macromedia Flash MX"; y ahí descubrí pequeñas cosas del mundo de la programación, como el programar un botón, y así llegaban a mi pequeños destellos de lo que parecía algo viable: desarrollar un programa que realizara lo que yo quisiera... claro que esto estaba lejos de la realidad.

Este encuentro no me motivó en lo más mínimo para entrar a la programación, de hecho lo considero irrelevante en la decisión, pero siempre me gustó la idea de que con Flash podías crear muchas cosas, y que todo esto se podía mejorar con código.

Mientras realizaba mi carrera en Programación de Sistemas en el Colegio Universitario de Cartago, cuando ya tenía suficiente experiencia en el ámbito de desarrollo, recordé el programa que aprendía textos y respondía de mis inicios con las computadoras, y pensé que ya era hora de desarrollar mi propio programa "pensante". Recuerdo vagamente un conjunto de instrucciones, recuerdo que era en Java, y recuerdo frustración, recuerdo que nunca llegué a nada. Recuerdo que lo intenté de nuevo luego, y lo dejé a un lado.

Para los que no han usado  Prolog, en definición es un lenguaje que entiende lo que dices, y puede realizar conclusiones lógicas basado en previas sentencias lógicas que le introdujiste; la primera vez que lo conocí quedé fascinado con esta capacidad de un lenguaje de programación, pero luego para mí ese se volvió el problema, seguía siendo un lenguaje de programación, era solo un conjunto de piezas de maquinaria para crear una linea de ensamblaje y resolver problemas; no es algo que pueda tener sensaciones propias, está hecho para resolver tareas, acepta funciones y resuelve matemática de raíz, y hasta donde sé, nadie nace aprendido en matemáticas. Me hubiera encantado ver a un programa aprender matemáticas y no resolverlas.

Muchas veces mis intentos de crear un programa que pensara y aprendiera se veían ensuciados por ideas de otras personas y creo que eso es un error, una idea como esta necesita ser creada desde la raíz, olvidando todas las ideas preconcebidas sobre qué debe resolver una inteligencia artificial.

Sobre el nombre inteligencia artificial tengo un pequeño conflicto. Durante una lección en mis años de programación en el CUC, teníamos que hacer una serie de exposiciones sobre varios temas, uno de ellos era este mismo, la IA, la profesora indicó que podías traer algún especialista a dar la charla, era válido, ya que era más capaz en el tema; a quién le tocó el tema de IA tomó esta opción, y vino un especialista, si no me falla la memoria de la UCR, aunque puedo estar equivocado si era de ahí, el caso es que, el hombre preguntó sobre quienes creían en la posibilidad de que aquí a 100 años existiera una inteligencia artificial; muchos levantaron la mano, yo no. He visto a robots aprendiendo Ping Pong, caminando, jugando ajedrez, pero intercambielos y sencillamente son patéticos en la otra tarea. No creo en tal cosa como inteligencia artificial, ya que por principio lógico no existe, ¿por qué? bueno déjeme poner un ejemplo basado en otra cosa, si tengo hidrógeno y oxígeno en un laboratorio, y creo agua, y usted la toma, lo que beberá será agua, no agua artificial, artificial es el proceso, no el resultado; de igual forma la mal llamada inteligencia artificial no debería distinguirse de la inteligencia "real", la inteligencia es eso y solo eso.


2010

Dejé de estudiar programación en el CUC en el 2007, y no tuve interés en máquinas pensantes hasta el 2010, cuando una idea empezó a atacarme. 

Mientras veía por mi ventana un día del 2010, un camión pasó, de color azul, profundidades cuadradas en sus costados servían de adorno; esto me recordó a un episodio de muchos años, cuando con mis padres fuimos en vehículo a buscar a una vieja amiga de la familia, cuyo portón era azul y tenia profundidades similares; completamente sin sentido aparente entre uno y otro, el camión me hizo recordar ese día olvidado por mí hace mucho tiempo, o al menos eso creía, ya que era casi obvio que estos dos eventos compartían características en común. Este simple momento, desencadenó una serie de pensamientos de los cuales, hasta el día de hoy no he podido escapar.

Empecé a cuestionarme del por qué los dos eventos se relacionaban, preguntas generadas del aire dan respuestas aunque usted no lo practique muy a menudo, se lo aconsejo, pregúntese a usted mismo algo que parezca increíble, ingenie respuestas estúpidas o locas, gradualmente se quedará con pocas, y llegará a la correcta.

Mi conclusión, cuando la lea parecerá obvia, así que, tal vez usted podría intentar preguntarse lo mismo antes que de seguir leyendo para ver si es fácil.

Mi conclusión es simple, ambos compartes características comunes, color y forma, pero eso no indica como mi cerebro se redireccionó del presente a un evento pasado, a menos que mi cerebro los asocie gracias a esas dos pequeñas características; es decir, evento pasado y presente tienen un evento superior invisible, que amarra a estos dos eventos, que por separado serían, el color y la forma. Así que a mi forma de verlo, mi cerebro les puso categorías a ambos eventos, filtró por categoría y llegó al evento pasado, ¿fácil no? En resumen todos los objetos que vemos, están categorizados y son al mismo tiempo categorías; en general las categorías que usamos a diario, no funcionan de esta manera, pongo por ejemplo correos en Gmail, una categoría sirve para etiquetar un correo, pero no puedes usar un correo como categoría, ya que fuera de este contexto no tiene sentido, pero si se realizan uniones de categorías, o "categorías de categorías" cosas interesantes suceden.

Ideas que no te dejan dormir

Tuve este concepto en mi cabeza por mucho tiempo, de hecho lo pensaba a diario; no paraba, creaba relaciones en mi mente de objetos con otros, y para mi tenía mucho sentido y lo sigue teniendo. Estaba seguro que esto, era la base de la memoria, de como almacenamos las cosas. Me empecé a obsesionar con el tema, a tal punto que una noche no pude dormir, tenía que sacarlo, tomé una libreta de apuntes que tenía a mano, y empecé a dibujar un esquema. Fue ahí cuando pude dormir.

Pasaron días sin pensar mucho el tema, ya que lo había sacado de mi sistema me sentía mejor; pero luego volvió a aparecer meses más tarde.

Un programa que sabe en lo que trabajo

Durante esos meses creaba esquemas para confirmar lo que había pensado originalmente y creé lo que ahora llamo Relaciones, que son la forma en que estos objetos son relacionados. Si esto le suena familiar, es posible que usted sepa algo de Bases de Datos y las Entidades y Relaciones, y también otro tipo de esquemas que estoy seguro que se parecen. El hecho de crear todo de cero es posible que me haga pasar por el camino de otra personas, pero por lo menos no estaré manchado por ideas ajenas y misconcepciones, así que es posible que note similitud con otras ideas, o alguna variante. Luego me di cuenta que, en cierta forma así fue con el trabajo filosófico de Kant, aunque posiblemente no lo discuta en este artículo, si no en alguno próximo.

Creé varios tipos de relación y ejemplos de estas relaciones. Luego cuando la obsesión volvió no me quedó más remedio que programar el concepto, y comprobar si era viable por código de programación.

La máquina pensante

Desde 2002 he usado Flash como ya leyeron, y desde el 2007 uso Actionscript3 de facto, y no lo he dejado de usar; he usado Flex, pero siempre lo he visto como el primo de Visual Basic para gente que no sabe programar/programar mucho/programar bien; programar interfaces con puro as3 lleva a un profundo conocimiento de la programación sin tomar caminos sencillos, elevando el ingenio y la capacidad humana a nuevos límites. Cuando eres programador, eres consciente que, puedes usar cualquier lenguaje, ya que hay instrucciones muy básicas que puedes emplear en todos, y si no lo sabes puedes aprender, y para eso solo necesitas tiempo, y no todos lo tienen. Conozco PHP, as3, Java, Visual Basic, C#... la lista sigue... pero es irrelevante ya que saber programar es técnica y no lenguajes; pero estaba consciente que as3 lo sé profundamente y no necesito aprenderlo para desarrollar un programa en poco tiempo, además que puede ser convertido a otros lenguajes similares si fuese necesario en el futuro.

No recuerdo cuanto me tomó, pero en el 2011 desarrollé el primer programa, con poca información, y con capacidad de recibir consultas. La primera información relacionada que le dí fue mi nombre, mi profesión, que tenía computadora, y que mi profesión era un trabajo; si le preguntaba si yo era programador el sistema respondía afirmativamente con un TRUE. Cuando lo terminé recordé al ya mencionado Prolog, y creí estar pasando por el mismo camino, pero creo que la diferencia es clara, por el momento es solo un reservorio de datos relacionados, nada más, y una capa de código que me permite verificar si las relaciones existen o no, pero no resuelve matemática por si solo, y mi intención es llevarlo mucho más lejos. La capa que verifica las relaciones puede ser removida, y mi intención es que llegue a conclusiones por sí mismo, sin tener que consultarle, aunque también estará esa capacidad.

Veo un Sistema que podrá relacionar cosas por si mismo que nosotros no imaginamos, y darnos otro tipo de respuestas.

Ya lo sé, usted pensará "las máquinas pensantes no existen" y me dirá que no puedo, y es por eso que este blog permanecerá secreto el tiempo que sea necesario, hasta el momento en que lo logre, ya que siempre hay gente que me dirá que esto o aquello no se puede, es mejor evitarlas al máximo, pero me veo en la obligación de llevar un registro para el futuro.

Detalles

No he estudiado Inteligencia Artificial, y no pienso hacerlo, mi intención es llegar a las conclusiones por mi mismo, no quisiera oír opiniones ajenas. ¿Qué no tengo la capacidad para hacer esto por que solo soy un programador? creo que debería buscarse un amigo programador y preguntarle sobre nuestra forma de pensar, ya que nos ingeniamos para resolver todo lo que nos encontramos en el camino para resolver una tarea. Y si aún tiene dudas sobre la capacidad de las personas se las puede guardar; el gran Michael Faraday era una persona que fue juzgada por sus orígenes humildes como incapaz de aprender y fue un hombre muy capaz, tanto así que descubrió el electromagnetismo y nadie le quita mérito ahora. No me quite mérito, no hasta que usted mismo lo intente.

Una máquina pensante parece una locura, pero no lo es, lo veo viable, y sencillamente no sé por que nadie lo ha hecho aún. 

Conforme pasen los días publicaré ideas y conceptos, detalles y ejemplos, y espero que estos puedan ser tomados de forma libre por otras personas para comprobarlos. Estos conocimientos serán para beneficio dela humanidad, serán libres, por lo tanto desde ahora condeno a quien capitalice con ellos. Utilicemos el conocimiento para el bien, para fines médicos y pacíficos, y esta tecnología será de una gran utilidad.

Sebastián Sanabria Díaz

No hay comentarios:

Publicar un comentario