Redes neuronales artificiales

Neuronas. McCulloch-Pitts. Desarrollo histórico. Perceptrón. Estructura y funcionamiento. Inteligencia artificial

  • Enviado por: Gumarro-julio Toscano
  • Idioma: castellano
  • País: España España
  • 15 páginas
publicidad

REDES NEURONALES ARTIFICIALES

  • Introducción

  • De la prehistoria al futuro que tal vez Babbage nunca soñó. El desarrollo de máquinas que puedan imitar la capacidad de aprendizaje del hombre es actualmente un desafío en el que pone sus miras buena parte de la comunidad científica. Con esta amplia Introducción a las redes neuronales, pretendemos dar a conocer los elementos básicos de lo que comúnmente se denomina Inteligencia Artificial, para así comprender de qué modo pueden llegar a «pensar» y «aprender» las máquinas.

    El hombre se ha caracterizado siempre por una búsqueda constante de nuevas vías para mejorar sus condiciones de vida. Estos esfuerzos le han servido para reducir el trabajo en aquellas operaciones en las que la fuerza juega un papel primordial. Los progresos obtenidos han permitido dirigir estos esfuerzos a otros campos, como por ejemplo, a la construcción de máquinas calculadoras que ayuden a resolver de forma automática y rápida determinadas operaciones que resultan tediosas cuando se realizan a mano.

    Uno de los primeros en acometer esta empresa fue Charles Babbage, quien trató infructuosamente de construir una máquina capaz de resolver problemas matemáticos. Posteriormente otros tantos intentaron construir máquinas similares, pero no fue hasta la Segunda Guerra Mundial, cuando ya se disponía de instrumentos electrónicos, que se empezaron a recoger los primeros frutos. En 1946 se construyó la primera computadora electrónica, ENIAC. Desde entonces los desarrollos en este campo han tenido un auge espectacular.

    Estas máquinas permiten implementar fácilmente algoritmos para resolver multitud de problemas que antes resultaban engorrosos de resolver. Sin embargo, se observa una limitación importante: ¿qué ocurre cuando el problema que se quiere resolver no admite un tratamiento algorítmico, como es el caso, por ejemplo, de la clasificación de objetos por rasgos comunes?. Este ejemplo demuestra que la construcción de nuevas máquinas más versátiles requiere un enfoque del problema desde otro punto de vista. Los desarrollos actuales de los científicos se dirigen al estudio de las capacidades humanas como una fuente de nuevas ideas para el diseño de las nuevas máquinas. Así, la inteligencia artificial es un intento por descubrir y describir aspectos de la inteligencia humana que pueden ser simulados mediante máquinas. Esta disciplina se ha desarrollado fuertemente en los últimos años teniendo aplicación en algunos campos como visión artificial, demostración de teoremas, procesamiento de información expresada mediante lenguajes humanos... etc.

    Una Red Neuronal es el resultado de los intentos por reproducir mediante computadoras el funcionamiento del cerebro humano. El cerebro está compuesto por miles de millones de neuronas, interconectadas de forma variable y compleja. Su peculiar forma de trabajo le convierte en el dispositivo más eficaz para procesar información del mundo real.

    Cada neurona recibe impulsos procedentes de otras neuronas, que procesa individualmente dándole un peso determinado. Después transmite la señal resultante a otras neuronas, siguiendo una configuración variable para cada caso. Las redes neuronales tratan de simular este proceso en un equipo computacional.

    El papel de las neuronas es tomado por los nodos, que son pequeñas unidades inteligentes con capacidad de almacenar y procesar señales.

    Al igual que las neuronas en el cerebro humano, cada nodo recibe unas señales que proceden del exterior de la red o de otros nodos, las procesa dando distinto peso a cada una y genera una única señal de salida que se transmite a otros nodos.

    Desde el punto de vista práctico, un nodo debe poseer los medios para almacenar señales y procesarlas según pesos o funciones. Por lo mismo, los nodos deben ser circuitos electrónicos, computadoras o fragmentos de programas.

    Para simplificar el diseño de las redes, los especialistas realizan topologías sencillas de distribución de nodos, disponiéndolos en capas sucesivas. Una de las más utilizadas, sitúa los nodos en tres niveles (entrada, intermedio, salida) en los que cada nodo actúa con las señales de la misma forma. La topología es sencilla de llevar a la práctica (mediante un programa) y produce redes neuronales que aprenden por sí mismas.

    En los inicios de la revolución tecnológica, cuando se querían obtener diferentes señales de salida de un sistema, dependiendo de los tipos y niveles de estímulo presentes en su entrada, era necesario dotarle de una relación matemática entre dichas entradas y salidas.

    Con la aparición de las redes neuronales, el sistema se autorregula, deduciendo los pesos que debe de dar a las distintas señales y la forma de conectar los nodos. Tras esta regulación, puede trabajar en situaciones para las que aún no se hayan establecido reglas de funcionamiento.

    Una red neuronal nueva establece las conexiones de cada nodo de forma convencional. Su proceso de aprendizaje empieza al darle una pareja de datos de entrada y salida. La red va haciendo pruebas mediante la determinación de los pasos más convenientes y de las conexiones entre nodos más adecuadas. Al cabo de varios intentos, repetidos con varias parejas de datos de entrada y salida conocidos, el sistema está ya educado, es decir, en condiciones de trabajar; la información que almacena una red se halla dispersa por todos sus nodos, lo que le confiere características distintas a las de una computadora convencional y le hace menos propensa a fallos.

    Es fácil suponer que una de las primeras aplicaciones es la simulación del cerebro humano y sus cientos de miles de millones de neuronas. Hasta la fecha sólo se ha logrado simular unas 10,000, lo que no esta mal, pero quedó lejos del órgano original. En esas simulaciones se han empleado grandes computadoras, que han necesitado horas para repetir procesos que el cerebro realiza en segundos. Se sigue intentando desarrollar un modelo donde experimentar los efectos de nuevas medicinas, el comportamiento ante estímulos, etc.

    En el campo tecnológico las aplicaciones se refieren, sobre todo, a situaciones donde hay que tratar datos difusos, desarrollar modelos o pronosticar situaciones complejas.

    Se conocen cinco aplicaciones tecnológicas aplicadas:

    • Reconocimiento de textos manuscritos

    • Reconocimiento del habla

    • Simulación de centrales de producción de energía

    • Detección de explosivos

    • Identificación de blancos de radares

    Las redes neuronales son otra forma de emular otra de las características propias de los humanos: la capacidad de memorizar y asociar hechos. Si examinamos con atención aquellos problemas que no pueden expresarse a través de un algoritmo nos daremos cuenta de que todos ellos tienen una característica común: la experiencia. El hombre es capaz de resolver estas situaciones acudiendo a la experiencia acumulada. Así, parece claro que una forma de aproximarse al problema consista en la construcción de sistemas que sean capaces de reproducir esta característica humana. En definitiva, las redes neuronales no son más que un modelo artificial y simplificado del cerebro humano, que es el ejemplo más perfecto del que disponemos de sistema que es capaz de adquirir conocimiento a través de la experiencia. Una red neuronal es «un nuevo sistema para el tratamiento de la información cuya unidad básica de procesamiento está inspirada en la célula fundamental del sistema nervioso humano, la neurona».

    2. La neurona y la sinapsis

    El cerebro humano contiene aproximadamente 12 billones de células nerviosas o neuronas. Cada neurona tiene de 5.600 a 60.000 conexiones dendríticas provenientes de otras neuronas

    (figura 1). Estas conexiones transportan los impulsos enviados desde otras neuronas y están conectadas a la membrana de la neurona. Cada neurona tiene una salida denominada axón. El contacto de cada axón con una dendrita se realiza a través de la sinapsis. Tanto el axón como las dendritas transmiten la señal en una única dirección.

    La sinapsis (figura 2) consta de un extremo presináptico de un axón conectado a un extremo postsináptico de una dendrita, existiendo normalmente entre éstos un espacio denominado espacio sináptico.

    Redes neuronales artificiales

    Figura 1

    Redes neuronales artificiales

    Figura 2

    Las neuronas son eléctricamente activas e interactúan entre ellas mediante un flujo de corrientes eléctricas locales. Estas corrientes se deben a diferencias de potencial entre las membranas celulares de las neuronas. Un impulso nervioso es un cambio de voltaje que ocurre en una zona localizada de la membrana celular. El impulso se transmite a través del axón hasta llegar a la sinapsis, produciendo la liberación de una sustancia química denominada neurotransmisor que se esparce por el fluido existente en el espacio sináptico. Cuando este fluido alcanza el otro extremo transmite la señal a la dendrita. Los impulsos recibidos desde la sinapsis se suman o restan a la magnitud de las variaciones del potencial de la membrana. Si las contribuciones totales alcanzan un valor determinado (alrededor de 10 milivoltios) se disparan uno o más impulsos que se propagarán a lo largo del axón.

    Aunque todavía no está del todo claro, parece que este impulso se inicia en la conexión entre el axón y la membrana. Su amplitud y velocidad dependen del diámetro del axón y su frecuencia del número de disparos que se efectúen.

    Las redes neuronales artificiales basan su funcionamiento en las redes neuronales reales, estando formadas por un conjunto de unidades de procesamiento conectadas entre sí. Por analogía con el cerebro humano se denomina «neurona» a cada una de estas unidades de procesamiento. Cada neurona recibe muchas señales de entrada y envía una única señal de salida (como ocurre en las neuronas reales).

    3. El modelo de McCulloch-Pitts

    Uno de los primeros modelos matemáticos de una neurona fue el propuesto por McCulloch y Pitts en 1943 y es en el que se basan las redes neuronales actuales.

    En este modelo (figura 3) cada neurona consta de un conjunto de entradas, Si, y una sola salida Sj. Cada entrada i está afectada por un coeficiente que se denomina peso y que se representa por la letra wij (gráficamente suele representarse como una media luna).

    Redes neuronales artificiales

    Figura 3

    El subíndice i refleja que el peso afecta a la entrada i, y el subíndice j que se trata de la neurona j.

    La cantidad calculada como la suma del producto de cada entrada multiplicada por su respectivo peso se denomina activación de la neurona, xj. La salida, Sj, de la neurona es una función de la activación de ésta. Es decir:

    xj = Sum Si wij + Qj

    i

    Sj = f(xj)

    donde el término Qj es un valor «umbral», y f(xj) es una función de la activación de la neurona.

    Por ejemplo, en una de las primeras arquitecturas neuronales, el «Perceptrón», se utiliza la siguiente función de salida:

    Sj = 0 si xj < h

    Sj = 1 si xj >= h

    donde la constante h se denomina umbral. Esta es una función de salida de tipo binaria, y existen otras de tipo lineal puro, lineal con umbral, y sigmoidea, entre otras.

    En este modelo tan sencillo puede verse que la activación de la neurona depende del valor que tomen los pesos y las entradas, de forma que la variación de éstos origina distintas salidas para la misma entrada a la neurona. En la práctica, los pesos de las neuronas se modifican sometiendo a la red a un entrenamiento, permitiendo que la red realice una función determinada. Esta es la característica que diferencia a una red neuronal de una máquina algorítmica clásica: una red neuronal no se programa, se «educa». La red es capaz de retener y asociar el conocimiento a través de la adaptación de los pesos de las neuronas siguiendo una regla de aprendizaje. Estas reglas son ecuaciones expresadas en función de las entradas y salidas de las neuronas y describen la forma de variación de los pesos. En definitiva, son el instrumento empleado por las neuronas para adaptarse a la información que se le presenta.

    El aprendizaje de una red se puede producir de tres formas:

    • Aprendizaje supervisado: consiste en introducir una serie de patrones de entrada a la red y a su vez mostrar la salida que se quiere tener. La red es capaz de ajustar los pesos de las neuronas de forma que a la presentación posterior de esos patrones de entrada la red responde con salida memorizada.

    • Aprendizaje no supervisado: se presentan los patrones de entrada a la red y ésta los clasifica en categorías según sus rasgos más sobresalientes.

    • Aprendizaje autosupervisado: la propia red corrige los errores en la interpretación empleando una realimentación.

    Una de las primeras reglas de aprendizaje fue propuesta por Donald Hebb en 1949, y se basa en un hecho biológico constatado: cuando dos neuronas se activan simultáneamente su conexión se refuerza. Esta idea se expresa matemáticamente como:

    dwij

    ---- = alpha Si xj

    dt

    4. Desarrollo histórico de las redes neuronales

    Partiendo de que las redes neuronales se fundamentan en el sistema nervioso humano deberíamos remontarnos a los tiempos de Galeno en los que ya se tenía un conocimiento considerable de éste. Sin embargo, los verdaderos avances en neurología se produjeron a partir de la segunda mitad del siglo XIX. Investigadores ilustres de esta época son Jackson, Ramón y Cajal y Golgi entre otros.

    Fue en 1943 cuando Warren McCulloch y Walter Pitts propusieron el clásico modelo de neurona en el que se basan las redes neuronales actuales. Seis años después, en 1949, en su libro The Organization of Behavior, Donald Hebb presentaba su conocida regla de aprendizaje.

    En 1957, Frank Rosenblatt presentó el Perceptrón, una red neuronal con aprendizaje supervisado cuya regla de aprendizaje era una modificación de la propuesta por Hebb. El Perceptrón trabaja con patrones de entrada binarios, y su funcionamiento, por tratarse de una red supervisada, se realiza en dos fases: una primera en la que se presentan las entradas y la salidas deseadas; en esta fase la red aprende la salida que debe dar para cada entrada. La principal aportación del Perceptrón es que la adaptación de los pesos se realiza teniendo en cuenta el error entre la salida que da la red y la salida que se desea. En la fase siguiente, de operación, la red «es capaz» de responder adecuadamente cuando se le vuelven a presentar los patrones de entrada. Se crearon grandes expectativas sobre sus aplicaciones, que posteriormente se tornaron en gran decepción cuando en 1969 Minsky y Papert demostraron las grandes limitaciones de esta red.

    En los años 60 se propusieron otros dos modelos, también supervisados, basados en el Perceptrón de Rosenblatt denominados Adaline y Madaline. En estos, la adaptación de los pesos se realiza teniendo en cuenta el error, calculado como la diferencia entre la salida deseada y la dada por la red, al igual que en el Perceptrón. Sin embargo, la regla de aprendizaje empleada es distinta. Se define una función error para cada neurona que da cuenta del error cometido para cada valor posible de los pesos cuando se presenta una entrada a la neurona. Así, la regla de aprendizaje hace que la variación de los pesos se produzca en la dirección y sentido contrario del vector gradiente del error. A esta regla de aprendizaje se la denomina Delta.

    La era moderna de las redes neuronales artificiales surge con la técnica de aprendizaje de propagación hacia atrás o Back Propagation. La estructura de las redes citadas anteriormente (Perceptrón, Adaline y Madaline) consta de dos capas: una capa primera formada por unidades que dejan pasar la entrada y que no tienen aprendizaje, y una segunda capa formada por una o varias neuronas en el caso del Madaline. La contribución de Minsky y Papert fue la de demostrar que una red del tipo Perceptrón no es capaz de aprender todas las posibles combinaciones entre entradas y salidas. La solución del problema consiste en añadir capas intermedias de neuronas, introduciendo de esta forma el problema de cómo enseñar a estas capas intermedias. Aquí es donde tiene importancia el algoritmo de propagación hacia atrás. En éste se compara la salida real con la salida deseada. La diferencia entre ambas constituye un error que se propaga hacia atrás desde la capa de salida hasta la de entrada permitiendo así la adaptación de los pesos de las neuronas intermedias mediante una regla de aprendizaje Delta. Sin embargo, también tiene sus limitaciones.

    Posteriormente se han desarrollado otros modelos que permiten un aprendizaje no supervisado como el mapa auto-organizativo de Kohonen, los basados en la Teoría de Resonancia Adaptativa (ART) de Grossberg y Carpenter, o los modelos de control motor de Bullock, Gaudiano y Grossberg, entre otros.

    5. El Perceptrón

    A continuación se mostrará el funcionamiento de una de las redes neuronales clásicas, el Perceptrón de Rosenblatt. Su importancia es más bien histórica puesto que las limitaciones que presenta hacen que en la actualidad no se emplee en aplicaciones prácticas. Se verá en primer lugar la estructura del Perceptrón, a continuación se detallará su funcionamiento y por último se mostrará el código fuente en C de un programa que realiza una simulación por ordenador de un Perceptrón, donde puede verse cómo es capaz de aprender funciones lógicas de tipo OR y AND.

    5.1 Estructura

    Un Perceptrón consta de dos niveles o capas (figura 4). El primer nivel está compuesto por un número de unidades de entrada, denominadas unidades sensoriales, que en nuestro ejemplo son dos. El segundo nivel está compuesto por un número de unidades de salida, denominadas unidades de asociación, cuyas entradas son las salidas de las unidades de entrada ponderadas por unos pesos. En el ejemplo sólo se empleará una neurona en la capa de salida. Las unidades de entrada tienen una sola entrada correspondiente a una de las entradas a la red, y una sola salida. Estas unidades transmiten la señal que aparece en su entrada.

    Redes neuronales artificiales

    Figura 4

    5.2 Funcionamiento

    El Perceptrón se diseñó para trabajar con patrones de entrada y salida de tipo binario. Así, la salida será 1 cuando la activación de la neurona alcance un valor y 0 en caso contrario.

    Según lo expuesto, la activación de la neurona del segundo nivel para un

    umbral 0 se calcula, en el ejemplo, como:

    xj = S1 w1j + S2 w2j

    donde S1 y S2 son las entradas, y w1j y w2j sus correspondientes pesos.

    La función de salida vendrá determinada por:

    Sj = { 1 si xj > h ; 0 si xj <= h }

    donde h es el umbral.

    La regla de aprendizaje que se emplea para la adaptación de los pesos está basada en el error. Durante la fase de aprendizaje se presentan a la red los patrones de entrada y la salida bj deseada para > h cada entrada. El error viene dado por la diferencia entre la salida deseada bj, y la salida real de la neurona, Sj. Es decir:

    dj = bj - Sj

    5.3 Mecanismo de variación de los pesos:

    • Si la entrada fue correctamente categorizada (es decir, que la salida de la neurona corresponde con la salida deseada), entonces no se hace ningún cambio.

    • Si la salida es 1 cuando debería ser 0, entonces los pesos y el umbral se modifican de la siguiente manera: en primer lugar se incrementa el umbral en una unidad, para hacer menos probable la activación de la neurona. Si la entrada ii es 0, entonces no se hace ningún cambio en su peso, puesto que esta entrada no ha contribuido a activar la neurona. Por el contrario, si la entrada ii es 1, se decrementa su peso wi en una unidad. En el otro caso en el que la salida es 1 cuando debiera ser un 0, los cambios que deben hacerse son los opuestos.

    El método requiere que cada patrón de entrada y salida se presente a la red las veces necesarias hasta que ni los pesos ni el umbral varíen. Por otro lado, el cambio en el umbral y en los pesos se expresa matemáticamente como:

    Incremento h = -dj

    Incremento wi = djii

    Esta regla de aprendizaje, que Rosenblatt denominó back coupled error correction, tiene la propiedad de converger siempre al valor correcto de los pesos siempre que este valor exista. En uno de los apartados siguientes veremos que hay determinadas combinaciones de entradas y salidas que el Perceptrón no puede aprender.

    6. Conclusiones

    El Perceptrón aprende bien las funciones OR y AND, sin embargo no ocurre lo mismo con la función XOR. Esto es debido a que a medida que se van presentando los patrones de entrada y su correspondiente salida, la red va adaptando los pesos, pudiendo ocurrir (como en el caso del XOR) que la diferencia entre las entradas y la salida sea muy grande provocando un cambio grande en el valor de los pesos y haciendo que se borre lo aprendido anteriormente.

    Este problema en el que la red «va olvidando» lo aprendido a medida que aprende nuevas cosas ya ha sido resuelto en otras redes neuronales más modernas. En algunos casos el problema se soluciona presentando las entradas en un orden distinto. Sin embargo, en el caso del Perceptrón se ha demostrado que no puede aprender determinadas combinaciones de entrada y salida. En este sentido, en 1969 Minsky y Papert demostraron en su libro Perceptróns que este tipo de redes no puede clasificar patrones de entrada que no sean linealmente separables. Unos patrones de entrada/salida se consideran linealmente separables cuando en una representación geométrica en el plano pueden separarse por una línea recta los grupos de entradas/salidas del mismo tipo. Por ejemplo, en el caso de la función OR, la figura 6 muestra cómo pueden ser separados por una línea recta los patrones de entrada clasificados con una salida 0 de los clasificados con una salida 1. Sin embargo, en el caso del XOR, véase la figura 7, no es posible hacer una separación de este tipo.

    Redes neuronales artificiales

    Figura 6 Figura 7

    Veamos que esto es así. Para que el Perceptrón aprenda una función XOR deben cumplirse las siguientes cuatro desigualdades:

    0 w1 + 0 w2 < h => 0 < h

    1 w1 + 0 w2 < h => w1 > h

    0 w1 + 1 w2 < h => w2 > h

    1 w1 + 1 w2 < h => w1 + w2 < h

    Sin embargo, si w1 y w2 son mayores que el umbral h, su suma nunca podrá ser menor que éste, y por tanto no hay ninguna combinación de estos valores que cumpla simultáneamente las cuatro desigualdades.

    Para ilustrar estas ideas puede representarse en el espacio de los pesos la superficie del error para cada función. Así, puede tomarse una función de error del tipo:

    n

    Ej = Sum (djp)²

    p=1

    donde djp es el error de la neurona j para cada patrón p de entrada. Es decir, la función de error Ej da el error total en la neurona j para un valor dado de los pesos y para un grupo de entradas y salidas. El error se calcula como la suma de los errores elevados al cuadrado cuando se presentan las n entradas a la neurona. En el ejemplo que nos ocupa n=4, puesto que hay cuatro patrones de entrada distintos.

    La función de error definida de esta manera toma un valor para cada par de valores que tengan los pesos w1j y w2j. De esta forma, en el espacio de los pesos la función de error es una superficie donde podrá observarse qué combinaciones de los pesos hacen mínimo el error.

    Las figuras 8, 9 y 10 muestran las superficies del error, con un umbral de valor 1, para las funciones OR, AND y XOR, respectivamente. Se ha representado en color más oscuro las porciones de superficie de error 0 en cada caso. Además, los bordes de la función de error se han unido al plano de error 0 para mayor claridad.

    Redes neuronales artificiales

    Figura 8

    Redes neuronales artificiales

    Figura 9

    Como puede observarse hay infinitas combinaciones de los pesos que hacen que hacen el error 0 para la función OR. Igualmente puede verse que hay una única combinación de los pesos que hace que valga 0 en el caso de la función AND. Y por último, que no hay ningún valor de los pesos que haga nulo el error cuando se trata de una función XOR, como era de esperar.

    Una solución al problema, ya conocida por Minsky y Papert, consiste en introducir una capa adicional de neuronas entre la capa de entrada y la capa de salida. Sin embargo, esta solución implica modificar la regla de aprendizaje para poder enseñar también a las neuronas de la capa intermedia.

    Redes neuronales artificiales
    Figura 10

    7. Aplicaciones al control automático

    Por último, se muestran algunas de las múltiples aplicaciones que pueden darse a las redes neuronales en este campo.

    • Visión artificial: Se emplean modelos de redes neuronales que son capaces de emular características del funcionamiento visual humano permitiendo, por ejemplo, el reconocimiento de imágenes texturadas en color, el aprendizaje para determinar posiciones a partir de la información proveniente de dos cámaras, y representación de la visión binocular.

    • Reconocimiento y categorización de patrones: Estas redes emplean las arquitecturas de la Teoría de la Resonancia Adaptativa o ART. Entre otras aplicaciones se encuentran el reconocimiento de caracteres manuscritos, autorización de descubiertos bancarios y clasificación de cromosomas.

    • Procesos químicos: Dos aplicaciones posibles son: el control de la temperatura en un reactor químico y el control de procesos químico-orgánicos no lineales.

    • Control motor: Permiten resolver el problema cinemático inverso en manipuladores y robótica móvil, consistente en determinar la secuencia de movimientos que deben realizar las distintas partes del robot para alcanzar una posición deseada. También permiten el aprendizaje de la dinámica del manipulador, es decir, de la generación de las fuerzas y pares que hay que aplicar para producir un movimiento determinado.

    • Otros campos, como la predicción económica y problemas de gestión, aprendizaje preventivo, etc...

    8. El futuro de las redes neuronales

    Las redes neuronales alcanzan cada vez mayor auge, teniendo multitud de aplicaciones en campos diversos y dando soluciones sencillas a problemas cuya resolución resulta complicada cuando se emplean máquinas algorítmicas. Aún así, el futuro de las redes neuronales no está todavía claro y será en los próximos años cuando se determine su evolución.