domingo, 11 de mayo de 2014

La computación neuronal.

Muchas tareas relacionadas con la inteligencia y el reconocimiento de patrones son extremadamente dificiles de automatizar, pero parecen ser fácilmente llevadas a cabo por los animales. Por ejemplo, los animales pueden reconocer objetos o entender la mayor parte de la información visual en su entorno. Por tanto, parece lógico pensar que un sistema que intente llevar a cabo tareas similares se beneficiará enormemente de entender cómo los animales realizan estas tareas y de simular los procesos que se llevan a cabo para realizarlas.

Con este objetivo en mente surge el modelo de la Computación Neuronal, también conocido como el modelo de las Redes Neuronales Artificiales. Este modelo esta inspirado en el sistema nervioso, en especial, en las redes de neuronas que forman este sistema. Una Red Neuronal Artificial esta formada por elementos con comportamiento que pretende imitar al de una neurona biológica, siendo capaces de aprender de la experiencia, generalizar, permitiendo un buen comportamiento ante pequeñas variaciones y abstraer, obteniendo la esencia ante un conjunto de entradas. Antes de comenzar a explicar cómo funciona una red neuronal artificial, vamos a explicar brevemente como funcionan las neuronas naturales.

Esquema de una neurona. Traducido de la creación de BruceBlaus (Licencia CC-BY).
Disponible en: http://goo.gl/oL7W32 

La neurona es la unidad fundamental del sistema nervioso y, en particular del cerebro. Se puede ver como una simple unidad de procesamiento. Una neurona típica esta compuesta de un cuerpo celular, o soma, un axón de forma tubular y multitud de dendritas, como se muestra en la figura. El axón es esencialmente un tubo largo que se ramifica en botones sinápticos que casi tocan a las dendritas de otras neuronas. Este pequeño hueco que queda entre la dendrita y el axón se llama sinapsis y es a través del cual se transmite la información. Esta información se transmite mediante estímulos. Cuando a una neurona le llegan estímulos de otras neuronas esta combina los estímulos y si el estímulo resultante es suficientemente fuerte, la neurona produce un estímulo de salida que envía por su axón.

 Nuestro cerebro esta compuesto por unas 10 billones de estas neuronas conectadas cada una de estas con, entre 100 y 100000. Es decir, 10 billones de pequeñas unidades procesadoras, muy simples y muy interconectadas. Esta interconexión, esta red, permite realizar las tareas tan complejas que caracterizan a los animales y sobre todo, a los seres humanos. Y es en esta red de pequeñas unidades de procesamiento en la que se inspira el modelo de las Redes Neuronales Artificiales.

Esquema de un perceptrón. Creación de Mayranna (CC-BY-SA).
Disponible en: http://goo.gl/Ocyqy6 
Los primeros investigadores en desarrollar el primer modelo matemático de neurona fueron Warren McCulloch y Walter Pitts, en el año 1943, y del cual se han obtenido un gran número de modelos derivados entre los que podemos destacar el Perceptrón, introducido por Frank Rosenblatt en 1958, padre de la red neuronal del mismo nombre. En palabras de Rosenblatt, el perceptrón es una máquina que aprende, usando ejemplos, a clasificar unas entradas en diferentes clases usando una función lineal de la entrada. Concretamente, el perceptrón recibe una serie de entradas, lo que se conoce como vector de entrada. Cada entrada tiene asignado un peso (vector de pesos), el cual nos permite simular la fuerza de las conexiones en el aprendizaje sináptico. Las entradas, modificadas por los pesos, se suman (combinación) y se produce una salida. Esta salida se realiza mediante una función de transferencia, que en el caso del perceptrón es un simple umbral, haciendo analogía al comportamiento natural de la neurona. Si la entrada es suficientemente fuerte, se activa la salida.

De esta forma, una Red Neuronal Artificial, consiste en un conjunto interconectado de estas unidades de procesamiento, en cuya conexión radica la utilidad de la red. Normalmente estas redes se organizan en capas, distinguiéndose:
  • La capa de entrada: por donde se presentan los datos a la red.
  • La capa de salida: que ofrece la respuesta de la red a una entrada determinada.
  • Las capas ocultas: que son las capas intermedias de la red.
Esquema genérico de una red neuronal. Traducido de la creación de Kjell Magne Fauske (Licencia CC-BY).
Disponible en: http://goo.gl/deLGNC
 
Además de la topología de la red, un factor determinante en la salida de esta son los pesos de las neuronas artificiales, que fueron comentados anteriormente. La mayoría de los métodos para el aprendizaje de estos pesos están relacionados con el análisis de la correlación y la técnica de descenso de gradiente. Así Hebb, en 1949 propone un método para modificar los pesos cuando dos nodos conectados están simultáneamente activados y Frank Rosenblatt, en 1958, propone un modelo de aprendizaje de estos pesos basado en el método de descenso de gradiente.
Normalmente, la red aprende estos pesos a base de ejemplos de entrenamiento, modificándolos de forma que se aproximen a la función de salida deseada. Para llevar a cabo este entrenamiento hay, básicamente, dos mecanismos:
  • Supervisado: En el que proveemos a la red con las entradas y salidas deseadas y se modifican los pesos paulatinamente para aproximarse a la función deseada.
  • No supervisado: Al que solo proveemos con las entradas y la red se ajusta de forma que entradas similares produzcan salidas similares.
Esquema de una red Perceptrón simple.
Traducido de la creación de Al456.
(Licencia CC-BY-SA)
Disponible en: http://goo.gl/yC45ka
Veamos un ejemplo del primer tipo de aprendizaje con la Red Perceptrón, introducida por Frank Rosenblatt. Esta red fue la primera red neuronal con capacidad de aprender. Esta formada únicamente por neuronas de entrada y por neuronas de salida. Las neuronas de entrada normalmente tienen dos estados, ON y OFF, mientras que las neuronas de salida usan como función de transferencia un umbral (son Perceptrones). Estas redes, por su simplicidad solo pueden resolver problemas lineales o que se pueden aproximar mediante una línea recta. Para el aprendizaje de los pesos se utiliza, como adelantamos anteriormente, aprendizaje supervisado, ajustando los pesos mediante un algoritmo de descenso de gradiente. Muy generalmente, este algoritmo intenta hacer mínima una función del error cometido al clasificar ejemplos de prueba. Este método consiste en ir dando pasos que cada vez nos acerquen más al mínimo de la función a minimizar (en el caso de que la función tenga un solo mínimo, llegaríamos al óptimo global). Una ilustración de este mecanismo se puede ver en la siguiente figura.

Ilustración del método de descenso de gradiente (Dominio Público).
Disponible en: goo.gl/VID2PD
La red Perceptrón fue estudiada en profundidad por Marvin Lee Minsky, autor del libro Perceptrons, e investigador reconocido en diversos campos de las ciencias cognitivas, y al el que se le atribuyen invenciones como la primera Head-mounted Display o SNARC (Stochastic Neural Analog Reinforcement Calculator) una red neuronal implementada en hardware. El libro Perceptrons, llevo a mucha controversia en el campo de la inteligencia artificial, contribuyendo, según varios autores, al Invierno de la Ingeligencia Artificial. En este libro se realizaban una serie de predicciones pesimistas, basándose en el hecho de que la red Perceptrón básica no podía implementar la función lógica XOR. Esto es así debido a que la red Perceptrón básica solo puede trabajar con problemas para los que las salidas puedan separarse mediante una línea recta. Se puede ver un ejemplo en la siguiente figura.

Gráfica de solución de un problema de separación lineal. Obra derivada de otra de Dominio Público.
Disponible en: goo.gl/gp7kFH

Pero las salidas de la función XOR no pueden separarse por una linea recta, como se puede ver en la siguiente figura.

Ejemplo de intento de separación de la función XOR. Creación propia. 

Sin embargo, el rumbo que torno la inteligencia artificial debido a estos pronósticos resulto erróneo cuando nuevos descubrimientos demostraron que el libro se equivocaba en algunas de estas predicciones.
En la actualidad existen muchos otros ejemplos de redes neuronales que mejoran la red Perceptrón. En especial, habría que hablar de las redes neuronales en las que el aprendizaje se realiza mediante la técnica de backpropagation introducida en 1974 por Paul Werbos, David E. Rumelhart, Geoffrey E. Hinton y Ronald J. Williams, que llevo a un renacimiento en la investigación en redes neuronales. Esta investigación decayó durante principios del siglo XXI pero se ha vuelto a poner de moda en la actualidad, gracias a la gran capacidad de cómputo actual y al uso de las GPUs para aumentar el rendimiento. Dicho esto, gracias a la investigación en redes neuronales, estas se han convertido en métodos muy poderosos, incluso llegando a convertirse su uso en un estándar de facto en aplicaciones relacionadas con el procesamiento del lenguaje natural, compresión de imágenes, reconocimiento de caracteres, reconocimiento de patrones en imágenes, problemas combinatorios, modelos económicos, y un largo etc. Pero no solo las redes neuronales son importantes en el campo de la informática. Estas se han usado también en campos como la neurología y la psicología para simular partes del cerebro e investigar sobre los mecanismos internos de este.

Enrique González Rodrigo

Bibliografía:

Kishan Mehrotra, Chilukuri K. Mohan, Sanjay Ranka. Elements of artificial Neural Networks. ISBN: 0-262-13328-8

V.Cheung, K. Cannons. An introduction to Neural Networks.University of Manitoba.
Disponible en: http://www2.econ.iastate.edu/tesfatsi/NeuralNetworks.CheungCannonNotes.pdf

E. Roberts. Neural Networks. Disponible en:
http://cs.stanford.edu/people/eroberts/courses/soco/rojects/neural-networks/index.html

X. Basogain Olabe. Redes Neuronales Artificiales y sus aplicaciones. Escuela Superior de Ingeniería de Bilbao. Disponible en:
http://cvb.ehu.es/open_course_ware/castellano/tecnicas/ redes_neuro/contenidos/pdf/libro-del-curso.pdf

G. Orr. Neural Networks. Willamette University. Disponible en: http://www.willamette.edu/~gorr/classes/cs449/intro.html

Colaboradores de Wikipedia. Marvin Minsky. Wikipedia. Disponible

Wikipedia Contributors. Perceptrons (book). Disponible en:

No hay comentarios:

Publicar un comentario