jueves, 15 de marzo de 2007

El juego de las 20 preguntas

Seguramente de pequeño has jugado alguna vez al juego de las 20 preguntas, ya sabes, uno piensa en un objeto y otro trata de adivinarlo haciendo preguntas a las que sólo se puede responder “sí” o “no”. Si lo adivinas con un máximo de 20 preguntas has ganado.

20Q es una versión web de este juego utilizando inteligencia artificial. En este caso, tu compañero de juegos es virtual, piensas en un objeto y será el ordenador quien debe adivinar el objeto mediante preguntas. Si el ordenador consigue adivinarlo con un máximo de 20 preguntas, ha ganado. Si necesita más de 20 preguntas, habrás vencido al ordenador. La dirección para jugar online es : http://www.20q.net/


Si has estado jugando con 20Q seguro que te estarás preguntando ¿Cómo es posible?. Puedo asegurarte que no es un truco de magia, es inteligencia artificial.


Habrás oído hablar muchas veces de inteligencia artificial, pero ¿Qué es inteligencia artificial? La inteligencia artificial no es algo nuevo. Este término tiene su origen en 1956 y podríamos definirlo como “la ciencia que se encarga del estudio de las facultades mentales mediante el uso de modelos computacionales”.


20Q es, en realidad, una aplicación basada en una red neuronal artificial, que es una de las ramas de estudio de la inteligencia artificial. Si comprendemos el funcionamiento de una red neuronal, comprenderemos el funcionamiento de 20Q.


Las redes neuronales son un modelo de aprendizaje y procesamiento de información automático inspirado en el sistema nervioso biológico.



Los cerebros humanos están compuestos por decenas de billones de neuronas conectadas mediante sinopsis, estas conexiones pueden intensificarse o atenuarse dependiendo de una serie de factores. La neurona, dependiendo del estado global de sus conexiones, toma un nivel de activación. Luego, propagará esta información a todas las neuronas con las que esté conectada.



En las redes neuronales artificiales las neuronas se modelan mediante unidades de proceso, que están unidas mediante conexiones ponderadas. Cada conexión tiene un peso asociado, que equivale a la fuerza de la conexión. La función de red es la encargada de calcular la entrada global, que generalmente se calcula mediante una suma ponderada de todas las entradas recibidas. La función de activación, generalmente más compleja que la función de red, se encarga de determinar el nivel de activación basándose en la entrada global. Este valor de activación será el que se transmitirá a todas las unidades con las que esté conectada.



Para diseñar una red neuronal artificial debemos establecer las conexiones entre unidades y los pesos de estas. Lo normal es tener
unidades en forma de capas: una capa de entrada, que actuará como buffer de entrada; una capa de salida, que actuará como buffer de salida y capas ocultas que serán las encargadas de extraer, procesar y memorizar la información.


Una de las características más importantes de las redes neuronales es el aprendizaje. El aprendizaje en las redes neuronales biológicas se produce mediante el ajuste de la efectividad de la sinopsis, de esta manera cambia la influencia que unas neuronas ejercen sobre otras. En las redes neuronales artificiales el aprendizaje consiste en el ajuste de los pesos en las conexiones.


Inicialmente, habremos establecido unos pesos para las conexiones de nuestra red neuronal artificial, pero a través de entrenamiento podemos conseguir que estos pesos cambien. En nuestro caso, entrenamos a 20Q cada vez que jugamos. Si para el mismo objeto repetidas veces obtiene la misma respuesta, esa conexión se irá reforzando y terminará reconociendo esa respuesta como válida. Por esta razón, cuando hemos acabado el juego nos dice las contradicciones que ha encontrado, mostrando para esa pregunta la respuesta que tiene más peso hasta el momento (que no coincide con lo que nosotros hemos contestado). Sin embargo, nuestra respuesta ha contribuido a aumentar el peso de esa respuesta.

No hay comentarios: