Descargar

Redes Neuronales Artificiales, Metodología de Desarrollo y Aplicaciones


  1. Introducción
  2. Neurona biológica
  3. La neurona artificial
  4. Redes neuronales directas
  5. Algoritmo Backpropagation
  6. Metodologia de desarrollo de la red neuronal
  7. Aplicaciones de redes neuronales
  8. Conclusiones
  9. Referencias bibliográficas

Introducción

A partir de 1982 surgió un gran interés por un método de representación del conocimiento que simula ciertos procesos biológicos. Este método recibió el nombre de redes neuronales. Para entender su funcionamiento, es necesario tener nociones del funcionamiento del cerebro humano.

Las Redes Neuronales Artificiales (RNAs) están inspiradas en los sistemas nerviosos biológicos. Se intenta reproducir por lo menos el funcionamiento del cerebro humano en las computadoras, sea esta en hardware o software, estas redes solucionan problemas para los cuales no fue programado explícitamente.

El estudio de las redes neuronales es un campo extremadamente interdisciplinario, tanto en el desarrollo como en las aplicaciones. Las redes neuronales pueden ser aplicadas en diversas áreas, desde actividades de investigación hasta aplicaciones comerciales e industriales.

Neurona biológica

La neurona es una célula altamente especializada. Como cualquier célula biológica, está delimitada por una fina membrana celular que además de su función de separar el interior del exterior de la célula, posee determinadas propiedades que son esenciales para el funcionamiento eléctrico de la célula nerviosa. La neurona recibe impulsos eléctricos a partir de sus dendritas, esos impulsos son procesados en la soma o cuerpo celular y retransmitidos por el axón, hacia las dendritas de una o varias neuronas.

La neurona Fig. N° 1, muestra el bloque fundamental de construcción del sistema nervioso. Esta es una célula similar a otras del cuerpo con ciertas especializaciones.

Una neurona biológica posee tres partes particularmente importantes para el estudio de las neuronas artificiales: dendritas, soma y axón.

edu.red

Fig. N° 1: Neurona biológica

  • Las dendritas, tienen la función de recibir las informaciones (impulsos nerviosos) de otras neuronas y conducirlos al cuerpo o soma para que sean procesados. Poseen una forma similar a las raíces de los árboles.

  • El cuerpo o soma, posee una forma piramidal o cilíndrica, éste es el núcleo de la célula nerviosa. Las informaciones que provienen de las dendritas son procesadas, generando nuevos impulsos que se retransmiten. El cuerpo celular es como un procesador de informaciones, sumando el potencial eléctrico que viene de las dendritas. Este es el responsable de proveer las funciones necesarias de la neurona.

  • El axon de una neurona, generalmente es único y se puede prolongar por distancias comparables a las dimensiones del organismo. También es responsable de llevar los impulsos generados en el cuerpo de la neurona hasta la sinapsis. El axon puede ser visto como una vía de transporte, o una línea de transmisión. Tiene una forma lisa, con pocas ramificaciones.

  • Una sinapsis consiste en un terminal pre-sináptico, por donde llega un estímulo proveniente de otra célula. En la región inter-sináptica, el estímulo nervioso que llega a la sinapsis se transfiere a la membrana dendrital a través de sustancias conocidas como neurotransmisores. El resultado de esta transferencia es una alteración en el potencial eléctrico de la membrana post – sináptica. Dependiendo de la naturaleza de los neurotransmisores y por la naturaleza de los receptores químicos que los reciben en el otro lado de la sinapsis, la señal será excitatoria o inhibitoria.

La neurona artificial

Las redes neuronales no utilizan conocimientos ni procedimientos explícitamente definidos para analizar datos nuevos. En vez de ello, buscan patrones preexistentes o ejemplos provenientes de datos basados estadísticamente. El conocimiento o la experiencia, utilizando en sus técnicas de concordancia de patrones no se conserva en una base de conocimientos. Mas bien es, creado de manera automática por la red en un proceso conocido como aprendizaje, que ocurre cuando una red queda expuesta a datos nuevos. Este conocimiento de resolución de problemas se consigue en las muchas interconexiones que conforman una red neuronal.

Las redes neuronales están siendo entrenadas para ejecutar funciones complejas en varios campos de aplicación, como:

El funcionamiento consiste en aplicar un conjunto de entradas, cada una representando la salida de otra neurona, o una entrada del medio externo, realizar una suma ponderada de estos valores y filtrar este valor con una función. En la Fig. N° 2, se muestra una neurona artificial.

Las entradas, que podemos llamar vector X, corresponden a las señales que llegan a la sinapsis de una neurona biológica. Cada señal se multiplica por un peso que tiene asociado, w1, w2, . . ., wn. Los pesos los podemos llamar vector W, cada peso corresponde a la "intensidad" o fuerza de la conexión de una sinapsis en una neurona biológica. Estas multiplicaciones se suman, esta "adición" corresponde al cuerpo de una neurona biológica. Esta es una suma algebraica de las entradas ponderadas, entonces:

edu.red

En la Fig. N° 2, se observa que existen variables comprendidas desde x1 hasta xn, también se tiene pesos desde w1 hasta wn, las variables se multiplican por los pesos correspondientes y el resultado de la sumatoria de los productos ingresa a la neurona, el cual es enviado al exterior mediante una función de activación.

edu.red

Fig. N° 2: Neurona artificial

Funciones de activación

La señal Net (salida) generalmente se procesa por medio de una función de activación F, la cual producirá una señal que será la salida (Out) de la neurona.

La función F también puede ser alguna otra función que simule mejor las características no lineales de transferencia de una neurona biológica.

Si F reduce el rango de Net de manera que Out nunca salga de algún límite, independientemente de lo grande que sea Net, entonces F es una función sigmoidal, una función de este tipo es la función logística.

Redes neuronales directas

Las redes directas o feedforward son aquellas que pueden ser representadas por un dígrafo acíclico. Estas redes sólo poseen una memoria de corto plazo, siendo las únicas informaciones almacenadas relativas al procesamiento inmediatamente anterior de cada neurona. Sus señales se propagan solamente en un sentido y las salidas sólo dependen de las señales que están llegando de las otras neuronas. Una vez entrenadas, estas redes producen siempre el mismo resultado de salida para una misma entrada. Estas redes generalmente están organizadas en capas, denominadas multicapas. Las neuronas que reciben señales de excitación pertenecen a la capa de entrada, o primera capa. Las neuronas de salida, como la salida de la red, pertenecen a la última capa o capa de salida. Las neuronas que no pertenecen a la capa de entrada ni a la capa de salida son las neuronas ocultas o internas de la red y pertenecen a una o más capas internas.

El primer paradigma utilizado en la implementación de sistemas expertos con redes neuronales directas fue propuesto por Gallant. Se basa en que las redes directas son aproximadores universales de funciones. Así, se presenta a la entrada de la red los datos, y se entrena a la red para presentar la salida o el resultado del sistema experto.

Las redes directas generalmente son entrenadas de modo supervisado, este procedimiento puede ser descrito como: dado un vector con el patrón a ser reconocido, se ingresa ese vector a la capa de entrada de la red, que pasará los valores hacia las siguientes capas intermedias y finalmente hacia la capa de salida a través de los pesos de las conexiones, obteniéndose de esta forma el resultado. Cada neurona de la red opera realizando la suma de los pesos de entrada y repasando el resultado para la próxima capa, o para la salida de la red mediante una función de activación.

Representado matemáticamente como:

edu.red

La Fig. N° 3, muestra una red con una capa oculta o interna. Las neuronas de la capa interna extraen características de las neuronas de la capa de entrada, transmitiéndolas hacia las neuronas de la capa de salida.

edu.red

Fig. N° 3: RNA con tres capas

Como estas redes no poseen ciclos o retroalimentación estas son estáticas. También es posible introducir dinámica en este tipo de redes, a través de la utilización de neuronas dinámicas (ecuación diferencial de primer orden o una diferencia finita). A pesar de esa posibilidad su dinámica es limitada, no siendo posible representar todos los sistemas dinámicos (Barreto, J., 1997).

Aprendizaje de redes neuronales

Una RNA puede aprender de varias formas. La principal finalidad es que dado un determinado conjunto de entradas, se produzca un conjunto esperado de salidas, para realizar tal tarea, existen métodos para determinar la fuerza de las conexiones de la red.

Una manera es definir y atribuir explícitamente los pesos a cada una de las conexiones de la RNA, usando el conocimiento de un experto, como en el caso de las redes bidireccionales. Otra forma es entrenar a la red con un algoritmo de entrenamiento, que ira automáticamente ajustando los pesos de la red. Para el entrenamiento, existen dos técnicas, el aprendizaje supervisado y el aprendizaje no supervisado.

  • a) Aprendizaje supervisado

En el aprendizaje supervisado, se presenta a la red pares de entradas y salidas, donde las entradas llevarán a la red a producir una salida, que será comparada con la salida deseada, ver Fig. N° 4.

edu.red

Fig. N° 4: Aprendizaje supervisado

En caso que la respuesta producida por la red sea diferente de la respuesta esperada, la red genera un error, éste se usa para calcular el ajuste de los pesos sinápticos. Los pesos son alterados para aproximar los resultados de las salidas esperadas. Ese proceso se repite con todo el conjunto de entrenamiento, hasta que la red obtenga un error aceptable o ningún error. Al final del entrenamiento, cuando el aprendizaje de la red no converge, se aumenta el número de épocas de entrenamiento, alterar el número de neuronas de cada capa o el número de capas de la red.

  • b) Aprendizaje no supervisado

Se presenta a la red sólo las entradas, dejando de lado las salidas deseadas. Se utiliza un esquema tal que, para ejemplo de cosas semejantes, la red responde de modo semejante. La red se encamina iterativamente, en un proceso interno, propio de categorización de la información de entrada, también conocido como "data clustering", donde los datos de entrada son clasificados en categorías en las salidas.

edu.red

Fig. N° 5: Aprendizaje no supervisado

Algoritmo Backpropagation

Este algoritmo lo desarrollaron a partir de estudios anteriores con el fin de crear una red que aprendiera las relaciones existentes entre pares de datos. Existe por lo menos una capa intermedia, la regla backpropagation (BP) o el algoritmo BP comenzó a ser usado cuando, en 1986 Rumelhart, et al., 1986 desarrollaron el modelo actual.

El proceso básico necesita que el patrón de información incluya tanto los datos de entrada (input) como los datos de salida (output). Inicialmente a partir de las neuronas de la capa de entrada se van propagando los datos de las variables input, por el resto de las neuronas y conexiones en función de los pesos que inicialmente son aleatorios. A partir del algoritmo de aprendizaje, estos pesos se irán modificando hasta producir determinados outputs. En el proceso de entrenamiento se presentan simultáneamente a la red patrones de datos input – output, ya que cada valor de entrada tiene su correspondiente valor de salida.

El diagrama mostrado en la Fig. N° 6 muestra la secuencia de pasos necesarios para la implementación del algoritmo de entrenamiento BP.

El ajuste de los pesos se efectúa cuando se compara la salida observada con la salida deseada, si de esa comparación resulta un error se calcula el gradiente de ese error con relación a los valores sinápticos de la capa de salida, que es actualizado. Luego se calcula el error de la penúltima capa, y así sucesivamente hasta llegar a la capa de entrada. De ahí el nombre de retropropagación – propagación para atrás – puesto que el error se actualiza de atrás para el frente. El proceso se repite en cada capa, hasta que todas las neuronas de la red reciban una señal de error que describa su contribución relativa al error total. Basándose en la señal de error percibida, se actualizan los pesos de las conexiones de cada neurona, hasta que la red converja hacia un estado que permita clasificar correctamente todos los patrones presentados para el entrenamiento.

La importancia de este proceso consiste en que a medida que se entrena la red, las neuronas de las capas intermedias se organizan a sí mismas, de tal modo que las distintas neuronas aprenden a reconocer distintas características del espacio total de entrada. Después del entrenamiento, cuando se le presenta un patrón arbitrario de entrada que contenga ruido o que esté incompleto, las neuronas de la capa oculta de la red responderán con una salida activa, si la nueva entrada contiene un patrón que se asemeje a aquella característica que las neuronas individuales hayan aprendido a reconocer durante su entrenamiento. Y a la inversa, las unidades de las capas ocultas tienen una tendencia a inhibir su salida si el patrón de entrada no contiene la característica, para la cual ha sido entrenada.

edu.red

Fig. N° 6: Flujograma retropropagación

El entrenamiento de una red multicapa se realiza mediante un proceso de aprendizaje, en este proceso inicialmente se debe tener definida la estructura (topología) de la red, número de neuronas en la capa de entrada que depende del número de componentes del vector de entrada, cantidad de capas ocultas y número de neuronas de cada una de ellas, número de neuronas en la capa de salida, el cual depende de la cantidad de componentes del vector de salida o patrones objetivo y funciones de transferencias requeridas en cada capa, con base a la estructura se asignan valores iniciales a cada uno de los parámetros de la red. No existe un criterio para determinar el número de capas ocultas, ni el número de neuronas en cada una de ellas.

El ajuste de los pesos wi,j de la capa de salida, de la neurona j está dada por:

edu.red

Lo que se debe tener en cuenta, es la posibilidad de convergencia hacia alguno de los mínimos locales que pueden existir en la superficie del error del espacio de pesos como se ve en la Fig. N° 7, si sucede esto, se tiene que realizar un nuevo entrenamiento con nuevos valores para los parámetros y localizar el mínimo global.

edu.red

Fig. N° 7: Superficie de error

Durante el desarrollo matemático que realiza el algoritmo retropropagación, no se asegura en ningún momento que el error mínimo que se encuentre sea el global, una vez que la red asiente en un mínimo local o global cesa el aprendizaje, aunque el error siga siendo alto.

Metodologia de desarrollo de la red neuronal

Una aplicación de redes neuronales artificiales, comprende varias fases o etapas, para el desarrollo y validación de la estructura se tienen las siguientes fases:

  • Definición de la red neuronal.- Se determina el número de neuronas de las capas de entrada, oculta y salida, así como también las diferentes funciones de activación que se utilizarán en las neuronas de la capa oculta y salida.

  • Entrenamiento de la red neuronal.- En esta etapa se define el tipo de entrenamiento que se realizará, si es aprendizaje supervisado o no supervisado, también se determinan los algoritmos de entrenamiento.

  • Utilización de la red neuronal.- La fase de utilización es propiamente la ejecución de la estructura de la red, se inicia cuando se presenta una entrada a la red y termina generando una salida en función a las entradas proporcionadas.

  • Mantenimiento de la red neuronal.- Sobre el mantenimiento se puede decir que la mayoría de las redes se entrenan para solucionar problemas dinámicos, por lo tanto es necesaria e indispensable una validación continua para garantizar una buena utilización. A medida que transcurra el tiempo podrán surgir nuevos conjuntos de datos reales aún desconocidos por la red, y de esta forma, será necesario un nuevo aprendizaje o, dependiendo del caso realizar una nueva definición.

En la Fig. N° 8 se muestra las fases del desarrollo de una estructura de red neuronal, ciclo de vida de la red neuronal.

Una red neuronal, consta de dos momentos de explicación de su procesamiento; el momento de aprendizaje y el momento de utilización o aplicación de la estructura de la red.

edu.red

Fig. N° 8: Ciclo de vida de una red neuronal

  • a) Definición de la red neuronal

Esta fase comprende la elección del modelo de red, y obtención del conjunto de variables significativas para la resolución del problema.

La definición de la red neuronal, también es entendida como una selección del paradigma neuronal, en la cual se debe tener en consideración los siguientes aspectos:

  • Tamaño de la red. Selección del tamaño de la red.

  • Tipo de problema a resolver. La salida de la red puede ser interpretada de diversas formas: optimización o clasificación.

  • Tipo de asociación. Está dividida en dos tipos: la memoria auto-asociativa (aprendizaje no supervisado) y la memoria hetero-asociativa (aprendizaje supervisado).

Las funciones de transferencia pueden tener muchas formas y métodos, siendo estas simples o complejas. A la función de transferencia también se le conoce como umbral (threshold). Estas funciones definen y envían fuera de las neuronas los valores calculados. Existen diferentes tipos de funciones, las más utilizadas en la transferencia de las neuronas de la capa oculta y salida se visualizan en la Fig. N° 9.

Para la activación o la inactivación de la salida de la red, se tiene que determinar las funciones de activación de las neuronas de la capa oculta y de la capa de salida, y definir los algoritmos de entrenamiento con propagación hacia atrás.

Las redes neuronales de varias capas presentan una serie de restricciones que se deben tener en cuenta a la hora de determinar la estructura óptima de la red. Entre otros aspectos, se encuentra la imposibilidad de conexión con capas anteriores y de conexión entre neuronas de una misma capa, como la existencia de una sola capa de entrada y otra de salida.

Otro problema que se plantea es la selección del número de capas ocultas de la red y del número de neuronas por capa. En este sentido, un número excesivo de capas puede generar ruido, pero se consigue una mayor tolerancia a fallas.

edu.red

Fig. N° 9: Funciones (a) escalón, (b) rampa, (c y d) funciones sigmoides

En cuanto al número de neuronas por capa, cabe indicar que no existen reglas para su determinación. El número de neuronas ocultas interviene en la eficacia del aprendizaje y generalización de la red. Si se consideran pocas neuronas ocultas puede suceder que la red no distinga bien las características del problema, provocando que en la fase de entrenamiento no se alcancen los límites especificados. Sin embargo, la definición de demasiadas neuronas ocultas, aunque no conduzcan a resultados erróneos, genera procesos tediosos de entrenamiento, además de producir la pérdida de capacidad de generalización de la red, debido a problemas de sobreparametrización. El siguiente aspecto es la división de la muestra al azar en dos grupos:

  • El primero de ellos toma como patrón ejemplo para entrenar la red.

  • El segundo se utiliza para comprobar la eficiencia de la misma.

La selección correcta de la muestra constituye uno de los principales factores que determinan el grado de eficiencia de la red. Con este fin, se procede a seleccionar aleatoriamente o en forma secuencial el conjunto de variables que determinan el conjunto de patrones de aprendizaje, utilizando los restantes para la validación de la red. Este proceso se repite utilizando diversas submuestras de entrenamiento.

  • b) Entrenamiento de la red neuronal

La fase de entrenamiento comprende inicialmente, la definición de uno de los tipos conocidos como métodos de entrenamiento, este proceso se efectúa mediante un algoritmo de aprendizaje.

El aprendizaje es un proceso de ajuste de los pesos entre las conexiones de las capas. La red posee la propiedad de modificarse en función de la necesidad de aprender la información que se le presentó con anterioridad.

Procesamiento de aprendizaje

Las neuronas de la capa de entrada, no ejecutan procesamiento alguno. En la capa oculta, cada neurona recibe las señales emitidas por la capa de entrada (patrón de entrada) y ejecuta las siguientes operaciones:

edu.red

La Fig. N° 10 ilustra el procesamiento ejecutado por una neurona, que recibe el valor de la suma de los productos (pesos por sus correspondientes entradas), este valor posteriormente es enviado por una función de transferencia hacia el exterior de la neurona.

edu.red

Fig. N° 10: Procesamiento de una neurona artificial

Aunque se ha probado que es posible determinar funciones de activación lineales, tangenciales (tangente hiperbólica), gaussiana, la función logística es la que proporciona mejores resultados, por tal razón es recomendable utilizar esta última función.

  • c) Utilización de la red neuronal

El proceso de utilización es la manera por la cual la red responde a un estímulo de entrada. La principal diferencia entre la utilización y el aprendizaje es que la utilización no realiza el ajuste de los pesos y de la misma forma, no hay un cálculo para la cantidad de errores ocurridos, estos procedimientos se realizan solamente durante el aprendizaje.

  • d) Mantenimiento de la red neuronal

Esta es la última fase del ciclo de vida de la red neuronal, se puede decir que muchas de las redes se entrenan para solucionar problemas de tipo dinámicos. Se requiere de validaciones continuas a medida que pasa el tiempo, por lo tanto es necesario e indispensable validar la arquitectura para garantizar una buena utilización. Durante el tiempo, surgirán nuevos conjuntos de datos reales o desconocidos por la red y de esa forma, será necesario efectuar un nuevo aprendizaje.

Aplicaciones de redes neuronales

(Santín, D., 2000), las redes neuronales se utilizan para solucionar empíricamente tres problemas habituales en el campo de la economía de la educación: detección de alumnos con alto riesgo de fracaso escolar, evaluación de la eficiencia relativa de centros educativos y evaluación de la eficiencia relativa de diferentes planes de estudio. Se realizó una introducción a los modelos neuronales, con especial atención a los modelos con conexiones hacia delante (feedforward) con algoritmo de aprendizaje supervisado backpropagation. Se aplican las redes neuronales para la resolución de los diferentes problemas expuestos en datos individuales de 745 alumnos de enseñanzas medias de octubre de 1984 – 1985 en 25 Centros Públicos y Privados

(Condori, N., 2001), para realizar una evaluación de la calidad del software, se utilizó un sistema neurodifuso que evaluó el producto software dentro del ámbito de la auditoría de sistemas, se consideraron los aspectos: funcionalidad, eficiencia, confiabilidad y usabilidad del software. La red neuronal recibió parámetros difusos en la capa de entrada y éstas se propagaron a través de la red utilizando una estructura de red multicapa, el algoritmo de entrenamiento fue el backpropagation, la capa de salida de la red clasificó el nivel de calidad del software evaluado en diferentes valores.

(Sellés, M., 2001), a partir de las características de la señal de habla se determinó si una voz es normal o presenta alguna patología mediante el uso de redes neuronales. El proyecto consistió en determinar el conjunto de reglas que expliquen cómo la red neuronal clasifica perfectamente una voz como normal o patológica. Los datos recogidos se obtuvieron de una aplicación real de un examen compuesto de 15 subpruebas que evaluaron diversos componentes de competencia lingüística en personas examinadas de un mismo país que pretendían obtener una certificación oficial de su nivel en una lengua. Para la extracción de dichas reglas se utilizaron métodos propuestos sobre redes neuronales, el aprendizaje de la red se realizó mediante el algoritmo backpropagation.

(Palmer, L., 1998), el comportamiento de una arquitectura neuronal del tipo perceptrón multicapa (con una capa de entrada, una capa oculta y una capa de salida) entrenada mediante la regla de aprendizaje backpropagation error e incorpora como novedad diversos métodos – denominado análisis de sensibilidad – encaminados al estudio del efecto de cada variable de entrada sobre la salida de la red. Una vez obtenido el modelo final, se obtiene un informe en donde se recoge la salida o predicción de la red para un conjunto de patrones dados diversos índices globales de rendimiento, las matrices de pesos de la red obtenida y el resultado de la aplicación de los análisis de sensibilidad.

Conclusiones

Las Redes Neuronales Artificiales basadas en los sistemas nerviosos biológicos reproducen al menos el funcionamiento del cerebro humano, sea en hardware o software, El aprendizaje de sistemas neuronales directas tiene un proceso mediante el empleo del algoritmo de retropropagación (backpropagation), realizando el ajuste de pesos entre las capas de la red. La construcción de las redes neuronales artificiales hace uso de metodologías de desarrollo de software. Las redes neuronales artificiales tienen un amplio campo de aplicaciones donde se requiera la solución a problemas, desde actividades de investigación hasta aplicaciones comerciales e industriales.

Referencias bibliográficas

CONDORI, F., (2001). Sistema Híbrido Neurodifuso para la Evaluación de la Calidad del Software en un Proceso de Auditoría Informática. Revista de la Sociedad Peruana de Ciencias de la Computación.

FAUCET, L., (1994). Fundamental of Neural Networks: Architectures, Algorithms and Aplications. Prentice Hall International Inc, New Jersey. 296p.

LAUDON, K., y LAUDON, J., (2000). Management Information Systems, Organization and Technology. Cuarta Edición, Editorial Prentice Hall Hispanoamericana..

PANDYA, A., y MACY, R., (1996). Pattern Recognition with Neural Networks in C++. CRC Press, Boca Raton, Florida. USA.

RUMELHART, D., et al., (1986). Learning Internal Representations by Error Propagation. The MIT Press, Cambridge, Masachusetts. USA.

SANTÍN, G., (2000). Detección de Alumnos de Riesgo y Medición de la Eficiencia de Centros Escolares Mediante Redes Neuronales. Universidad Complutense de Madrid. España. 40p.

SELLÉS, M., (2001). Optimización de una Batería de Pruebas Mediante una Red Neuronal Artificial. Editorial Omega. 289p.

STEINER, M., CARNIERI, C., y ROHERIG, C. (1993a). Diagnóstico Médico Via Programação Linear. Uberlandia, M.G, brasil

STEINER, M., (1994). Reconhecimento de Padrão na Indústria de Papel. XXVI SBPO, Florianópolis.

REFERENCIAS DE INTERNET – WWW

 

 

Autor:

Nelson Ubaldo Quispe Mamani