• La intuición… ¿es sólo humana?

    Si han estado leyendo los titulares durante los últimos meses, seguro han leído algo relacionado a Google y su gran hito con AlphaGo. Pero, qué es AlphaGo? Y qué relevancia tiene para el futuro?

    El Go es un juego tradicional chino utilizado para testear un sistema de inteligencia artificial (AI system). Desde hace un par de décadas, la mayoría de los laboratorios de investigación en Inteligencia artificial han estado abocados al desarrollo de un sistema que pueda ganarle al jugador más experimentado de Go.

    Este juego de origen oriental data de hace 3000 años atrás y las reglas son muy simples:
    dos jugadores (uno con fichas blancas y otro con fichas negras), juegan en turnos para colocar sus piezas sobre un tablero (el tablero generalmente tiene una medida de 19 x 19 líneas) y cada jugador trata de “comer” las piezas de su rival rodeándolo de espacios vacíos para hacer puntos en su territorio.

    Aún con esas simples reglas, las posibles combinaciones del juego son extensas, y son más que las de un tablero de ajedrez. En números: las posibles combinaciones en un tablero de ajedrez son algo así como 1 x 1057, que es un número bastante grande; pero nada se compara con el Go en el que las posibles combinaciones de un tablero de 19 x 19 líneas, es algo así como 1 x 10170! Mucho más grande!!

    Pongamos este número en perspectiva, el universo tiene cerca de 1 x 1080 átomos, entonces Go tiene más combinaciones que átomos en el universo. No solo eso, tiene más combinaciones  que 1 x 1080 universos con 1 x 1080 átomos! Impresionante, verdad?

    Como pueden imaginar es prácticamente imposible para un computador (todos los computadores del mundo) evaluar todos esos posibles tableros durante una partida de Go.

    En este punto puede pensar que la única diferencia entre Go y el ajedrez, es el número de posibles tableros y sus combinaciones, pero no es así.

    En una partida de ajedrez siempre se puede determinar quién gana, cada pieza tiene un valor y se sabe que si un jugador tiene una reina y el adversario no, probablemente el primero gane. Además en el ajedrez hay una conocida heurística, por eso un maestro de ajedrez puede explicar por  qué está moviendo una determinada pieza a una particular posición.

    En Go esto no es válido, primero no se puede determinar qué jugador va a ser el ganador y en segundo lugar, no hay heurística para evaluar cada movimiento. Los maestros de Go confían en su intuición y sus sentidos. Si le preguntas a un maestro por qué realizó un movimiento en particular, seguramente responda que lo hizo porque así lo sintió.

    Esto es lo que hace a este juego tan particular, interesante y difícil de jugar con inteligencia artificial.  Tratar de emular ese “sentir” ha sido el mayor reto para un software que trata de ganarle a un maestro jugador.

    AlphaGo, es entonces, un programa de computadoras para el que el aprendizaje profundo de la red neuronal de Google es utilizado con el fin de enseñarse a sí mismo a jugar Go.

    Pero qué es una red neuronal? Una red neuronal trata de simularla red de neuronas del cerebro. Biológicamente, las neuronas tienen tres partes:

    • Dendritas (que reciben los impulsos eléctricos),
    • Soma o “pericarion” central (cuerpo) y
    • Axón o  “cilindroeje” (que conduce los impulsos eléctricos desde el soma hacia otra neurona).

    Entonces básicamente, simplificando un poco los conceptos, una neurona toma uno o varios impulsos eléctricos y realiza algo con esos impulsos (inputs) y produce impulsos (outputs) hacia otras neuronas. Este es el comportamiento programado de una red neuronal que trata de cumplir.
    Una red neuronal puede contener una sola línea de neuronas o puede ser un sistema de múltiple líneas, dónde una línea toma un impulso (input) que fue enviado (output) desde una línea previa.

    AlphaGo toma la descripción del tablero como un input (esto significa un tablero entero con todas las piezas ubicadas sobre él) y procesa estos inputs en 12 diferentes redes de líneas que contienen millones de conexiones “neuronales”. Los outputs de estas conexiones serán una pequeña muestra de los mejores posibles movimientos, cómo AlphaGo calcula esta muestra y cómo decide qué movimientos debe seleccionar está fuera del alcance de este artículo.

    Esta no es la primera vez que un algoritmo le gana a un jugador experto en un juego. Si miramos hacia atrás podemos recordar cuando IBM Deep Blue derrotó a Garry Kasparov veinte años atrás. Pero cuál es la diferencia entre AlphaGo y Deep Blue?

    Deep Blue fue creada para jugar ajedrez, tiene algoritmos “escritos a mano” y heurística para saber cuál es el mejor movimiento para realizar basado en la distribución sobre el tablero. Por, otro lado, AlphaGo usa una combinación de red neuronal para analizar el tablero y descifrar cuál es el movimiento más certero para realizar e imita esa “intuición” de los jugadores experimentados de Go tienen.

    Deep Blue solo puede jugar ajedrez y eso es todo. Es “el” mejor algoritmo de ajedrez inventado por un humano, pero no puede jugar Go o Damas… Simplemente no puede porque solo sabe jugar ajedrez y no es capaz de aprender nuevas habilidades.

    Los algoritmos y los métodos usado con AlphaGo pueden ser usados para aprender cualquier otro juego: Go, Damas, Atari o lo que sea.
    En el caso de que AlphaGo la intención fue la de enseñar a un sistema a jugar Go, entonces los investigadores de Google dotaron al sistema de millones de jugos históricos y pusieron al sistema a jugar online contra sí mismo hasta que el sistema tuvo suficiente “entrenamiento” para jugar por sí solo y ganarle a uno de los mejores jugadores en la historia de la humanidad.

    Notan la diferencia? Deep Blue obtuvo una gran victoria para ese momento. Pero fue programado para realizar una única tarea y tuvo el más potente procesador en ese momento. En cambio AlphaGo no fue programado para jugar solo Go y el sistema puede aprender cualquier otra cosa. Solo necesita un número significativo de información y entrenamiento. Si se le dan estas dos cosas, él mismo puede hacerse mejor y mejor conforme pasa el tiempo.

    Es difícil de predecir exactamente  qué AlphaGo significa para nuestro futuro. Antes de AlphaGo los expertos tenían confianza y realizaban predicciones para los próximos 10 años, pero ahora no están tan seguros de lo que sucederá en los próximos 5 años.

    Es AlphaGo, o cualquier otro dispositivo con red de tipo neuronal, es tan potente como el cerebro humano? Todavía no, el cerebro humano tiene alrededor de 1 trillón de sinapsis entre sus neuronas. Hoy, la mayor red neuronal artificial conocida tiene 1 billón de sinapsis entre sus neuronas. Es 100 veces menos poderoso que el cerebro humano.
    Cuánto tiempo le llevará a la inteligencia artificial neuronal llegar al hito de 1 trillón de sinapsis? Nadie sabe con certeza, estamos seguros que no serán en los próximos 5 años, pero no estamos seguros si tomara 6 o 20 años. Pero definitivamente es un hecho que algún día se llegará a ese punto.

    AlphaGo como un excelente jugador de Go, no es significante para nosotros, no afectará nuestras vidas. Pero lo que significa AlphaGo en el sentido de que una red neuronal artificial capaz de auto aprender cómo uno de los juegos más difíciles en la historia y vencer al MEJOR jugador del mundo de ese juego, es importante. También es importante la idea de que un sistema artificial haya aprendido una nueva disciplina y se convierta, en solo algunos meses, en mejor que cualquier humano (más particularmente del individuo que ha jugado este juego toda  su vida). Es importe entender que un jugador de Go gana su partida siguiendo su intuición y que AlphaGo prueba de que hemos podido enseñar a un algoritmo a hacer eso (o al menos a hacer algo parecido).

    Es difícil de predecir qué pasará en el futuro, es claramente incierto lo que sucederá. Lo que estamos viendo es solo la punta del iceberg, esto continuará evolucionando y progresando más rápido en los próximo meses/años.

    Para los científicos en computación o las compañías  IT, tienen que comenzar a estudiar estos nuevos tópicos y comenzar a integrar en los desarrollos. Es, sin duda, un cambio sustancial en cómo hacer las cosas o en cómo aprendemos o solemos hacer las cosas; pero deberíamos empezar por tomar esto seriamente y al menos aprender y pensar como integrar estas nuevas/viejas tecnologías en nuestro trabajo diario.

    En MVD Consulting, estos hechos de actualidad son significativos para el futuro de las empresas y su proyección a futuro. Conocer y dominar las últimas tendencias, no solo nos enriquecen y son parte de las estrategias de trabajo interno y para con nuestros clientes.

    Ing. Alejandro Narancio
    CEO Cubriklabs

    ©MVD Consulting 2016