Las redes neuronales son un conjunto de neuronas que están interconectadas entre sí. Al decir neuronas, me refiero a modelos matemáticos simplificados que imitan el comportamiento de una neurona real.
¿Cual es ese comportamiento? La neurona recibe información de entrada que no es más que una suma de estímulos. Cada fuente de estímulos puede estar ponderada, es decir, que no todas las entradas tienen la misma importancia. Si el estímulo supera cierto umbral decimos que está activa y empieza a transmitir estímulos a las neuronas conectadas al axón (la salida).
¿Por qué son tan interesantes las neuronas? Desde mi punto de vista de no profesional en el tema el interes fundamental de las neuronas es su versatilidad: si tenemos una neurona con tres entradas y dos salidas, podemos definir su estado como función de 4 valores: el peso de cada entrada y el valor de umbral. Dejando una salida conectada a una entrada para poder hacer realimentación, podemos: construir una puerta AND, una puerta OR, una XOR, una puerta NO, Un biestable JK, ... Y todo sin cambiar en absoluto la lógica del invento (sumar las entradas multiplicadas por sus pesos y compararlos con un umbral).
Es más, si en vez de usar una neurona escalon (el grafico de su salida frente al estímulo total es una función escalón), usamos una aproximación que sea derivable (una muy usada es una curva llamada sigmoidal, de forma similar a la i de las integrales). Podemos aplicar algoritmos iterativos que determinen cual debe ser los valores de pesos y umbral a usar.
Y esta es otra característica interesante. El sistema puede ser entrenado con una pequeña muestra de valores de entradas con sus correspondientes salidas y tras el proceso de entrenamiento, el sistema el sistema responde correctamente a estímulos para los que no fue entrenado (y eso se llama aprender). En un tutorial de un sistema neuronal, se ponía el siguiente ejemplo: tenemos una zona cuadrada con un círculo en su interior, se toman 100 puntos dentro de dicho cuadrado indicando si dichos puntos estaban dentro o fuera del círculo. Tras terminar el proceso de entrenamiento, la red había «aprendido» la forma del círculo y era capaz de indicar si un punto cualquiera del cuadrado estaba dentro o fuera del círculo y el grado de confianza de dicha creencia.
Pero yo he venido aquí a hablar de mi libro y no quiero seguir hablando de neuronas. Si quereis más información, he encontrado un documento que profundiza más en estos temas: monografía sobre redes neuronales.
Y mi libro es.........: un juego para aprender el funcionamiento de redes neuronales. Se llama bug brain. Bug brain es un espacio de trabajo tipo workbench, en el que a golpe de ratón, vamos situando neuronas, y las conectamos entre sí. Siguiendo una serie de libros que vienen en el juego, se nos van proponiendo retos que hay que superar para poder continuar.
La tareas, por orden progresivo de dificultad, hablan de simulación de puertas lógicas, dispositivos con memoria, temporizadores, ciclos de trabajo, maquinas de estado, actuación «inteligente» y otras. Como ejemplo, citaré una prueba que consiste en actuar sobre un tirador de cerveza, en el que un ojo detecta el paso del vaso vacío mientras se acerca al tirador y posteriormente activar el tirador el tiempo adecuado para que no rebose.
A quien le guste este tipo de tareas tipo «The incredible machine o aprender sobre el funcionamiento básico de las redes neuronales es muy recomendable que le eche un vistazo.
El software.
Fue desarrollado para windows y no hay expectativas de migración. Originariamente su modo de distribución era shareware, actualmente la versión completa está libremente disponible (freeware). La página web está congelada desde el 2002. Tiene un segundo problema añadido y es que no permite el uso simultáneo de varios usuarios: los libros con las tareas, están bloqueados hasta que has superado las tareas anteriores. Si varias personas quieren jugar, estaran disponibles para todos tantas pruebas como el que mejor vaya, (en mi caso es un fastidio porque mi sobrina avanza sin haber resuelto los problemas básicos). He escrito al autor del programa sobre este inconveniente y me ha respondido:
«There is no easy way for several people to use the program. The position
is stored in a file called "bug.reg". You could make copies of that
file. Or you could copy the whole Bug Brain directory so different
people run different copies of the program.»
Ala, a disfrutarlo.
PD: El experimento 9 del primer libro, es imitar el comportamiento de una puerta XOR. Yo estaba ilusionado con mi modelo de imitación booleano, empleando 3 neuronas (2 AND con una entrada negada y un or). Ha sido un baño de humildad ver que la solución propuesta por el manual tenía sólo 2 neuronas (una inhibiendo el comportamiento de la otra) y más horrible aún, cuando en la web de bug brain, he visto que se puede imitar el comportamiento ¡con una sola neurona! (usando realimentación).
<ESC>ZZ