Programando neuronas

Roa Zubia, Guillermo

Elhuyar Zientzia

Para realizar operaciones matemáticas, el ordenador es más rápido que el cerebro; puede hacer millones de cálculos para empezar a calcular el cerebro. Pero la velocidad de cálculo no es lo único que se busca en una máquina, sino también el tipo de trabajo que puede realizar. Para un ordenador, casi cualquier trabajo que requiera abstracción es muy difícil. Conocer una cara, por ejemplo. Difícil, pero no imposible; si el ordenador trabaja como un cerebro, las cosas cambian.
Programando neuronas
01/12/2007 | Roa Zubia, Guillermo | Elhuyar Zientzia Komunikazioa
(Foto: G. Roa)

Hace doce años, en 1995, un coche conducido por ordenador atravesó Estados Unidos. En total 9.600 kilómetros. No hands across America es el nombre de la aventura, ya que el objetivo era conducir sin las manos. El coche no era sin conductor, ya que una persona aceleraba y frenaba. Sin embargo, eliminando ambas cosas, todo lo demás lo hacía la plataforma de navegación llamada PANS ( Portable Avanced Navigation Suport ), un conjunto de ordenadores, GPS y otros sistemas. Desde entonces, el mundo de los coches robóticos sin conductor se ha avanzado mucho, pero no tanto a nivel de software. Los coches robóticos de hoy utilizan un software similar al que tenía integrado el sistema PANS, programas que permiten a los ordenadores simular el funcionamiento de un cerebro.

El cerebro funciona mediante neuronas conectando millones de pequeñas unidades. Por separado, las neuronas no son muy potentes, reciben pequeñas señales eléctricas, las cambian ligeramente y las envían. Pero, por equipos, las neuronas son muy poderosas, porque estas pequeñas y sencillas unidades están organizadas en una gran y sofisticada red.

Cada neurona recibe señales de otras miles de neuronas. Según consta, decide si va a enviar la señal hacia delante, y si la respuesta es afirmativa, la coloca en la señal y la envía a otras miles de neuronas. Este funcionamiento da una enorme capacidad a la red neuronal, que incluye obras abstractas.

Neuronas informáticas

Uno de los métodos más conocidos para que un ordenador tenga inteligencia es crear una red de pequeñas unidades de cálculo. Normalmente se realiza a nivel de software, denominado red neuronal.
G. Roa

La red neuronal se puede simular por un ordenador. Son muchas las unidades de cálculo pequeñas que se pueden definir y conectar entre ellas. Mediante la aportación de datos a algunos de ellos se puede iniciar la red y obtener el resultado del trabajo a través de las neuronas de salida. De hecho, los informáticos llaman redes neuronales a los programas informáticos que funcionan de esta manera y los clasifican en inteligencia artificial. Las redes neuronales no son la única forma de crear inteligencia artificial, pero sí una de las más importantes.

En la mayoría de las definiciones de inteligencia artificial aparecen verbos como argumentar, razonar, interpretar, aprender. La cuestión es cómo un ordenador puede hacer estas cosas. Por supuesto, fabrica cerebros a través de millones de neuronas y conexiones. Pero diseñar un sistema de este tipo en el ordenador es imposible, aunque el número de neuronas simuladas sea mucho menor. Por ejemplo, ¿qué tiene que hacer cada neurona dentro de la red para saber que un robot campesino es hora de recoger tomates? Nadie sabe la respuesta, pero eso no importa. Y es que una red informática neuronal no sabe cómo se hace el trabajo. Tiene que aprender.

El programador entrega a la red una estructura inicial que la integra en una fase de formación. Para ello le da un problema y, junto con el planteamiento del problema, la solución correcta del mismo. La red analiza el problema y aporta una solución que contrasta con la proporcionada por el informático y adapta la actividad de cada neurona para ajustar correctamente la solución que consigue toda la red. Vuelve a intentarlo, si el programa está bien hecho, en la segunda sesión se acercará la solución de la red y la solución correcta. Volverá a comparar ambas soluciones, reacondicionará el trabajo de las neuronas y volverá a intentarlo. De esta manera, hasta conseguir una solución correcta.

Este sistema de aprendizaje parece una trampa, ya que se le da la solución que debería conseguir. Pero el cerebro hace lo mismo. Los seres humanos, por ejemplo, aprendemos a leer o a conocer una cara de esa manera: una y otra vez después de ver la solución. El conocimiento de las caras es un buen ejemplo; los niños recién nacidos pasan meses aprendiendo a conocer las caras de sus padres, para lo que se requiere un mínimo nivel de abstracción. Y es que si el padre o la madre de un niño de seis meses cambia de aspecto (corte de pelo, por ejemplo), es posible que el niño tenga grandes dificultades para conocer su cara.

Input y output

El software que escanea textos y reconoce caracteres es hoy en día habitual. Está basado en redes neuronales.
G. Roa

Para hacer aprender a la red, en definitiva, hay que ponerse en marcha. Hay que darle un input, introducir datos. Estos datos no llegan directamente a todas las neuronas, son tomadas, tratadas y transmitidas por unos pocos a las neuronas a las que están conectados. Los datos se transmiten en neurona como una señal eléctrica hasta llegar a las neuronas de salida. Estas últimas neuronas proporcionan un output.

Input y output; el antiguo dogma de la informática. Ambas son necesarias. Son componentes imprescindibles de la red neuronal. La red posible más sencilla tendría una única neurona que recogiera un input simple y, transformado, daría un output simple. Para tratar una única neurona y un solo dato. Una red así no aprendería mucho. Incluso para aprender a realizar operaciones lógicas sencillas, una red necesita unas pocas neuronas.

En la operación denominada XOR, por ejemplo, se incluyen dos datos, ceros o uno; cuando los dos datos son unitarios, el resultado de la operación es también uno, y si tiene algún cero, el resultado de la operación es cero. Se trata de una operación muy sencilla, pero se necesitan cinco neuronas para que una red aprenda a hacerlo: dos neuronas para recoger los datos del input, otra para el output final y otras dos neuronas intermedias.

Capas

El mayor desarrollo de las redes neuronales lo hicieron con ordenadores de hace veinte años. Este tipo de programación sigue evolucionando, pero más lentamente.
De archivo

Las neuronas intermedias son necesarias para realizar trabajos intermedios. Y si todos estos trabajos intermedios no son similares, cada trabajo lo hace un grupo de neuronas. Por ello, los informáticos los organizan por capas. En la primera capa se encuentran las neuronas que reciben el input, luego se encuentra la primera capa intermedia cuando es necesario, luego todas las siguientes capas intermedias en orden y, finalmente, la capa neuronal que da el output.

La señal realiza este viaje, desde el input hasta el output, en una vía determinada por conexiones. Puede ser un camino directo o que reenvía la señal desde las últimas capas a las iniciales, la estructura de las conexiones dependerá del trabajo. Y estructuras muy complejas pueden hacer obras muy abstractas.

El cerebro funciona de forma similar: hay neuronas que reciben el input (lo visto, lo escuchado, etc.), se activan determinados grupos neuronales para cada tipo de trabajo y otras que provocan el output (reacción). Pero el cerebro es mucho más complejo que las redes neuronales de informática. Entre otras cosas, aumenta el número de neuronas y conexiones a medida que aprende, al menos al comienzo de la vida.

Ensayo y error

Cuanto más abstracto sea el trabajo, más complejo debe ser la red que aprende a hacerlo. Parece imposible, por ejemplo, diseñar una red neuronal que separe las letras impresas (caracteres). Pero estas redes son habituales: Se llaman OCR sofware. ¿Cómo los informáticos los diseñaron? ¿Cómo conocieron el número de neuronas que debían utilizar, el número de capas que debían organizar y qué conexiones debían establecer?

Conocer las caras es un trabajo abstracto y difícil, tanto para el ordenador como para el cerebro biológico.
G. Roa

La respuesta es sencilla: al principio no sabían. Para llevar a cabo este tipo de trabajos, eligen una red neuronal inicial que le hará aprender. Es muy posible que la red no pueda aprender, que no se quede una vez puesta en marcha o que dé resultados sin sentido. En estos casos, ajustan la red, añadiendo o eliminando neuronas, reestructurando la propia red o modificando la transformación que realiza cada neurona. Y vuelven a probar.

Finalmente, cuando es capaz de aprender la red, está dispuesto a trabajar en el 'mundo real'. Y entonces también habrá que ajustar el trabajo de la red, ya que el proceso de aprendizaje se realiza a través de ejemplos concretos. Y el mundo real tiene muchos casos diferentes.

Trabajo neuronal y percepciones
En el cerebro, la función de las neuronas es la recogida y emisión de señales. Una sola neurona recibe miles de señales de las miles de conexiones que le llegan. Pero no todas estas señales tienen la misma importancia para mi, algunas tienen mayor influencia en la señal de salida que otras. Al final, combinando todos los efectos, la neurona genera una señal de salida que envía a miles de neuronas.
(Foto: De archivo)
En informática, lo mismo. Cada neurona debe dar un peso a cada una de las señales que recibe (el peso, weight en inglés, es una medida del impacto en la señal de salida). Una de las claves del proceso de aprendizaje es el ajuste de estos pesos. Las funciones matemáticas son uno de los principales factores que deben trabajar los informáticos para que la red neuronal tenga éxito.
Se ve fácilmente en redes muy sencillas, como los percepciones. En la época en que se inventaron, los perceptrones eran sistemas de una sola neurona. Tenían muchos inputs, pero un output. De hecho, este output era el número 0 o el número 1 en función de los valores del input y del peso de dichos valores. Posteriormente vieron que los percepciones tenían una capacidad de aprendizaje muy limitada. Por ello, los actuales percepciones tienen más neuronas organizadas en capas.
¿Para qué?
A la informática le falta mucho para convertir el ordenador en cerebro. Hasta hace dos décadas la idea fue revolucionaria y desde entonces se ha avanzado lentamente. Por ello, las redes neuronales y la inteligencia artificial son poco mencionadas por los grandes políticos y empresarios de hoy. Sin embargo, han tomado parte en la tecnología.
El sistema de escaneado de textos y reconocimiento de letras es un ejemplo típico. Se denomina sistema OCR al término inglés Optical Character Recognition. Está basado en una red neuronal. Pero los ejemplos no se limitan a las aplicaciones habituales.
(Foto: De archivo)
Muy utilizado en la investigación. Muchos programas de estudio de datos cristalográficos de proteínas, por ejemplo, son redes neuronales. Muchos programas que controlan sistemas complejos utilizados en ingeniería química, en general muchos sistemas informatizados de control industrial.
Las redes neuronales se han utilizado para hacer predicciones. En meteorología y climatología, por ejemplo, para hacer predicciones a corto y largo plazo, respectivamente. En economía, también en el mundo de la inversión. En las predicciones de los juegos, por ejemplo en los programas que juegan al ajedrez.
Las redes neuronales pueden aplicarse casi en todo. Un caso curioso: unos investigadores australianos elaboraron una red neuronal que analiza los sonidos de estos animales para seguir por ordenador las fases de alimentación de las ovejas.
Puente Roa, Guillermo
Servicios
237
2007
Descripción
033
Inteligencia Artificial; Programación; Software
Artículo
Servicios
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila