Los autómatas celulares y las redes neuronales

El martes, empezamos a entrar en materia. La jornada matutina estaba compuesto de autómatas celulares y las redes neuronales.

Los automátas celulares, podemos considerarlos un sistema complejo en los que los elementos individuales tienen dos características:

  • Tienen estados finitos y discretos. Es decir cada elemento puede tener un estado de una lista {vivo, muerto}, {1,2,3}, {contento, descontento, indeciso} ...
  • El estado de cada elemento depende exclusivamente de su propio estado y el de otros elementos que están en su vecindad. Así que cada elemento actúa localmente y no varía en función de todo el colectivo

Es común que se presenten estos autómatas celulares en parrillas bidimensionales con elementos de dos estados formando así "dibujitos". Un ejemplo muy típico de esto es el llamado juego de la vida. La verdad es que a parte de estas reflexiones más o menos lúdicas, los autómatas celulares presentan la base para sistemas más especializados como...

Las redes neuronales:

Las redes neuronales son estructuralmente hablando autómatas celulares. Y funcionalmente son una imitación, pobre, del funcionamiento de las neuronas que poseemos los seres vivos.

El resumen del funcionamiento de estas es:

  • Tenemos una disposición de neuronas interconectadas entre sí.
  • Las neuronas pueden estar activas o no. Como se puede observar, presentan dos estados.
  • Cada neurona tiene una serie de estímulos de entrada. Que pueden ser estímulos externos u otras neuronas previas. El conjunto de estímulos de entrada generan un estimulo de entrada global que si supera cierto límite activa la neurona. En caso contrario, la neurona queda inactiva.

La gracia de las neuronas, es que cada neurona puede dar más o menos importancia a los estímulos que recibe. Y que si nosotros le indicamos el resultado que queremos para ciertas entradas, existen mecanismos que permiten calcular que estimulos son más importantes para los casos que nos interesan. Dicho de otro modo. Se le puede enseñar a un conjunto de neuronas que tengan el comportamiento que nosotros queremos que tengan.

Una de las cosas que más me impresionó a mí cuando me enteré de esto del aprendizaje de las neuronas es que las neuronas "aprenden" de verdad. Es decir que pueden deducir respuestas correctas sobre problemas que no se habían enfrentado nunca. Un ejemplo sencillo: Dibujamos sobre un papel una figura cerrada. Y también marcamos puntos a lo largo del papel (unos dentro y otros fuera de la figura marcada). Podemos pasar las coordenadas de los puntos diciendo si dichos puntos están o no dentro de la figura. Tras terminar el periodo de aprendizaje, podemos preguntar cualquier punto del espacio y (debería) de contestar correctamente si dicho punto está dentro o no de la figura.

Existen problemas adicionales como un exceso de entrenamiento en el cual la red se concentra tanto en los puntos dados que pierden la perspectiva de los otros puntos. Hemos estado viendo diversos sistemas para evitar este sobre aprendizaje.

Por la tarde hicimos prácticas con redes neuronales. En los cuales en vez de emplear los sistemas tradicionales de enseñanza de la red, usamos sistemas de algorítmos genéticos. (ya hablé en el anterior post). Y sistemas híbridos. (Del que hablaré en la nota del miércoles).