jueves, 27 de junio de 2013

Una discución sobre inteligencia artificial, modelos agentes, algoritmos genéticos y problemas sociales

El otro día en clase de inglés discutimos la siguiente situación: una multinacional petrolera ha descubierto reservas de petróleo en reservas indígenas de cierto país del norte y desea a toda costa hacerse con esas tierras para poder explotar los recursos del lugar. Sin embargo, para hacer esto de manera legal deben convencer a las tribus de indígenas que ahí viven y no dejar que el peso político de cierta organización pro-naturaleza los intimide.

La discusión fue muy amena, argumentos por aquí y por allá. Los indígenas deseaban escuelas y empleos que la compañía le deseaba dar a cambio, la organización no deseaba que una malvada multinacional entrara a violar una zona ecológica protegida.

Por otro lado, en algunas de estas reservas, estos indígenas habían comenzado a producir drogas o construir casinos, que en cualquier otro lugar serían ilegales; a su vez, la multinacional es responsable de por lo menos cuatro accidentes y catástrofes ecológicas, de las que una y otra vez se lavó las manos; y a la organización verde le han donado 50 millones de dólares para poder resolver este conflicto, pero posee una bien ganada reputación de ser extremadamente radicales.

Esta discusión me llevo a pensar sobre algo que leí sobre los agentes programables en el estupendo y clásico libro “Inteligencia Artificial, un enfoque moderno”. Vale, mientras duraba la plática de mi clase yo veía a tres agentes que intentaban completar ciertos objetivos: producir dinero, impedir daños ecológicos y conseguir empleos, educación e integración social. Cada uno de estos agentes buscaba una manera de convencer a los otros para conquistar la meta que tiene planteada.

En aquel momento yo era miembro del grupo de los chicos ecológicos así que mi objetivo era impedir que los chicos petroleros acabaran con el ecosistema de las reservas. “Bueno” pensé, “tengo varias opciones, por un lado, la causa que persigo es del todo justa, desinteresada y moralmente superior… pero eso a los chicos petroleros no les importa, así que también puedo amarrarme a los arboles e impedir su paso, aunque eso no serviría de nada porque quizá los indígenas me saquen a golpes porque decidieron  vender su tierra”.

En fin, hay un mundo de posibilidades… pero, pensé, siendo que se trata de un problema de optimización y tenemos cierta variedad de opciones, quizá pensarlo como un algoritmo genético pudiera ser más eficiente. Me explico.

Cada agente tiene una propuesta que muestra a los otros dos agentes, y estos evalúan (función de fitness o adaptación, usando el argot de los algoritmos genéticos) cada una de las propuestas para decidir si aceptan una u otra propuesta (podría decirse que esto es una selección) y a la ves extienden ciertas recomendaciones para cada propuesta (a esto le llamaré radiación, por no tener una mejor palabra para describir a una idea que tiene probabilidades de producir un cambión en el código genético).

Una vez terminado este proceso, cada agente decide que propuestas deben retirar y cuales solo deben cambiar (selección). Finalmente, cada agente decide qué cambios deberán realizarse sobre su código genético (mutación) o si aceptan las modificaciones propuestas (cruzamiento). Lo siguiente es iterar por los siglos de los siglos hasta que alguien se canse o muera, lo mismo que podría decirse de cualquier plática babilónica.



Bueno, en mi vida diaria juego a ser programador y en mis fantasías a que sé algo sobre IA, así que creo que este proceso se puede optimizar para no llegar a un loop infinito.

Para empezar, me parece que los tres agentes deberían considerarse como un solo agente cuyo objetivo a optimizar es una mezcla de los objetivos de los otros agentes. En segundo lugar, cada propuesta de los antiguos agentes debería ser mutada para optimizar (o complacer) los nuevos objetivos principales ¿qué es una calumnia que unos se ayuden a otros? Bueno, quizá, pero en este momento trato de pensar que las personas involucradas actúan de la manera racional, y que uno de sus objetivos principales siempre es llegar a una conclusión lo más pronto posible.

Pero queda una pregunta: ¿cómo? Pues usando un operador de “Cruzamiento” modificado. Lo pensé con una de las propuestas que se dieron ese día. Para tratar de ser un poco más claro, propongo la siguiente forma de presentar el siguiente formato para los argumentos:

  1. El ex-agente “petrolero” desea: “producir dinero”, para conseguirlo:
  2. El ex-agente “petróleo” propone: “industria del petróleo”, escucha:
  3. El ex-agente “chico verde” se niega porque desea: “respeto por la naturaleza”.
  4. El ex-agente “petróleo” muta su propuesta y propone: “industria del petróleo respetuosa con la naturaleza”.
  5. El ex-agente “chico verde” pide una mayor mutación.
Hasta este punto llegamos en clase. Pero ¿qué habría pasado de haber continuado? No lo sé, pero considero que comenzar a mezclar las propuestas podría acelerar la conversación un poco. Por ejemplo:

  1. El ex-agente “petrolero” desea: “producir dinero”, para conseguirlo:
  2. El ex-agente “petrolero” propone: “industria respetuosa con la naturaleza”.
Es en realidad casi lo mismo si consideramos que el cruzamiento cambia de manera azarosa cada gen de ese código genético, considerando al código como un enunciado completo y cada palabra como un gen (“industria”, “del”, “petróleo” cruzado con “respeto”, “por”, “la”, “naturaleza” podría cambiar a “Industria del respetuosa” o a algún enunciado con menos sentido, como puede ser “industria del petróleo respetuoso” o “respeto por la industria”).

En fin, a lo que quiero llegar, es que cada viejo código puede ser tratado como una vía de optimizar los objetivos de los diferentes agentes y mezclarlos en el caso de considerar al grupo como un solo agente que busca optimizar los objetivos de cada uno de los agentes. Supongo que en las teorías de administración a esto se le llama Win Win, la verdad no lo sé.

El verdadero problema es que, en el mundo real las personas no siempre toman las decisiones más óptimas, por no decir que en muchos casos los objetivos de los agentes son totalmente contrarios, lo que no pasa en este ejemplo, donde se halló una situación de cooperación o simbiosis de una manera bastante directa.

domingo, 23 de junio de 2013

Is not too late for speak about my thesis

I

Suelo llegar tarde a todos lados, pero me conozco y sé que el patrón de estos retardos es mi casa: nunca puedo salir a tiempo de mi casa, o mejor dicho, de mi habitación. Se ha convertido en un hábito muy desagradable, sobre todo para las personas con quienes suelo convivir.

La raíz de este hábito es más bien reciente, de cuando me mude a mi actual casa hace ya 6 años. Esta casa para mí, al principio significo muchas cosas, un cambio total de ambiente y de situación (viví solo por 6 o 7 meses, luego durante un año solo con mi hermano y después llego mi madre).

Veo a esta cosa como una zona de seguridad y demasiado confort. Ya sabes, ese lugar donde nada malo te puede suceder y te puedes quedar para siempre sin que nada malo pase. Sin embargo, me parece demasiado excitante salir al mundo exterior, ponerme en riesgo, caminar por las calles acompañado únicamente por la noche, conocer gente nueva, crear cosas nuevas, etc.

Pero mi hogar se ha convertido en un antónimo de correr riesgos. No lo sé, solo no me siento cómodo estando aquí y aun así, aquí estoy, este domingo lluvioso rodeado de chocolate amargo, café y golosinas, escribiendo una pequeña confesión.

II
Me gustaría hablar sobre mi trabajo terminal. Realmente nunca he hablado de él por aquí y creo que vale la pena hacerlo, pues fue un proyecto del que tengo sentimientos muy encontrados.

Primero que nada, va el título, se llamó TT 2012-A011: “Entrenamiento Virtual de intervenciones quirúrgicas, utilizando sensores kinect, con percepción de sensaciones físicas”. No saben cuánto me gusto el nombre… aunque nunca he logrado memorizar el nombre, me encanta por ser tan largo y decir absolutamente nada.

En mi opinión fue difícil hacerlo por tres razones:

Mi equipo (no me agrada decir “mi” porque el equipo no es mío, más bien, el equipo al que pertenecí) no teníamos ni una pizca de nociones de medicina, menos aún de cirugía.

La poca fe que se tiene en los proyectos ambiciosos e interdisciplinarios o  “no la van a terminar porque alguien en un país primermundista lo intento y fracaso”, “no tienen los conocimientos ni el tiempo para hacerla” y cosas por el estilo, las oímos y más de una vez nosotros mismos las pronunciamos.

El efecto “es solo un pinche proyecto de titulación, se la mamaron demasiado, son demasiados, etc”. En mi opinión ese tipo de cosas las dicen los mediocres. Punto.

Al final, quede satisfecho con lo conseguido, claro que el proyecto tiene sus detalles y bastantes errores, pues el tiempo no nos permitió hacer las rigurosas pruebas que este tipo de sistemas necesitan, pero sigue siendo un proyecto en pie y listo para seguir adelante.

Como dije, hacen falta detalles (como la adquisición de una licencia de uso comercial de Unity3D), pruebas con estudiantes o doctores de a devis, corregir muchos bugs, optimizar muchos algoritmos, perfeccionar modelos 3D, mejorar el guante Kimochi, buscar compradores, conseguir fondos para vender, etc.

domingo, 16 de junio de 2013

This isn't one of these specials days

La última vez que publique en este blog fue hace un mes con diez y seis días. No lo he olvidado, lo juro por lo poco que me puedo tener de sincero en internet, pero mi trabajo terminal me tuvo saturado.

Bueno, en un mes y medio pasan muchas cosas, cosas importantes y cosas tan irrelevantes que vale plasmarlas en la eterna combinación de papel y estados magnéticos.

Hoy es uno de esos domingos tan comunes en México o al menos en mi vida. Domingo de ir a correr con mamá, desayunar jugo de naranja y yogurth. Llegar a casa para ver perder en futbol al equipo en turno, que esta vez para mayor desgracia fue la misma selección nacional. Salir con mi hermano a dar un paseo, aunque esto no sea lo más común del mundo. Beber un par de tazas de café mientras alguien cuenta varios chistes. Felicitar a mi abuelo por seguir tan feliz.

Lo único que no hace a este domingo tan común, es la fecha que celebramos: el día del padre. Google lo festejo poniendo a Mr. T en su doodle. Yo lo festejo como cualquier otro domingo del año. Me gusta imaginar que algún día lo festejare o mejor aún: me festejaran en este día.

Hace rato, justo mientras dormitaba después del desayuno y masajeaba mis piernas (disculpen ustedes, pero hoy logre correr 10km por vez primera en dos años, un gran logro personal), pensaba en cómo reaccionaría ante mi padre, en como reaccionaria.

¿Acaso le gritaría? ¿Lloraría? ¿Esperaría petrificado a que me dirigiera la palabra? ¿Correría a abrazarlo como el chiquillo temeroso que temo ser? Pero, ¿él como reaccionaría? Ciertamente no lo sé, me da miedo imaginarlo, me da un poco de miedo imaginar su rechazo aunque probablemente sería lo más natural teniendo en cuenta el tiempo que ha pasado y las múltiples oportunidades que decidió no darnos a mi hermano y a mí… pero ¿debo estar tan enojado como lo estoy ahora? ¿Es justo juzgar a alguien que no conozco y cuyos motivos solo alcanzo a comprender por las anécdotas llenas de recelo de las personas que dejo tras de sí?

Bajo la cabeza y dejo escapar un desaliento cobijado de la humedad de mis ojos. Ese tic tan mío y tan personal me obliga a humedecer mi labio superior con la lengua, luego el inferior y posteriormente a morder mis labios y me quedo callado, viendo como el párrafo dejo de avanzar.

Pero, cómo nos dijo Hamlet una vez:

Ser o no ser: todo el problema es ése.
¿Qué es más noble al espíritu: sufrir
golpes y dardos de la airada suerte,
o tomar armas contra un mar de angustias
y darles fin a todas combatiéndolas?
Morir..., dormir; no más y con un sueño
saber que dimos fin a las congojas,
y a los mil sobresaltos naturales
que componen la herencia de la carne,
consumación es ésta que con ruegos
se puede desear. Morir, dormir,
¡Dormir! ¡Tal vez soñar! ¡He ahí el obstáculo!
Porque el pensar en qué sueños podrían
llegar en ese sueño de la muerte,
cuando ya nos hayamos desprendido
de este estorbo mortal de nuestro cuerpo,
nos ha de contener. Ese respeto
larga existencia presta al infortunio.
pero ¿quién soportará los azotes,
los escarnios del mundo, la injusticia
del opresor, la afrenta del soberbio,
del amor desairado las angustias,
las duras dilaciones de las leyes,
la insolencia del cargo y los desprecios
que el pacienzudo mérito recibe
del hombre indigno, cuando por sí solo
podría procurarse su descanso
con un simple estilete? ¿Quién querría,
llevar cargas, gemir y trasudar
bajo una vida por demás tediosa,
sin el temor de algo tras la muerte
(esa ignota región cuyos confines
no vuelve a traspasar viajero alguno)
que nuestra voluntad deja perpleja
y antes nos hace soportar los males
que ya tenemos, que volar a otros
que nos son, en verdad, desconocidos?
Así, de todos hace la conciencia
unos cobardes, y el matiz primero
de la resolución, así desmaya
bajo el pálido tinte de la idea;
y las empresas de vigor y empeño,
por esta sola consideración
tuercen el curso inopinadamente
y dejan de tener nombre de acción.

Monólogo de Hamlet, Acto 3 Escena 4. William Shakespeare (Tomado de Aqui)


Mi respuesta es la de siempre y ahora continuó escribiendo.