martes, 10 de mayo de 2011

REDES NEURONALES

BASE DE CONOCIMIENTO

ALUMNAS: TATIANA PAREDES ZAPATA
                    MIRIAN ZAMBRANO PILAY
                    CYNDI FLORES MARTINEZ


QUE ES UNA RED NEURONAL

INTRODUCCIÓN:

 Las redes neuronales son un elemento importante de las denominadas tecnologías de Inteligencia Artificial (IA).

La IA es "la disciplina científica y técnica que se ocupa del estudio de las ideas que permiten ser inteligentes a los ordenadores" (definición de H. Winston).

Otra posible definición de la IA sería: rama de la computación que se encarga, entre otras cosas, de los problemas de percepción, razonamiento y aprendizaje en relación con sistemas artificiales, y que tiene como áreas de investigación a los sistemas expertos y de conocimiento, la robótica, los lenguajes naturales y las redes neuronales.

Y a pesar de que el objetivo final de la IA, dotar de autentica inteligencia a las máquinas, queda todavía muy lejos (e incluso hay autores que defienden que esto nunca será posible), la ciencia de la Inteligencia Artificial ha generado numerosas herramientas prácticas, entre las que se encuentran las redes neuronales.

 Las redes neuronales, también llamadas "redes de neuronas artificiales", son modelos bastante simplificados de las redes de neuronas que forman el cerebro. Y, al igual que este, intentan "aprender" a partir de los datos que se le suministran.

Así, las principales características que diferencian a las redes neuronales de otras tecnologías de IA son:

  • Su capacidad de aprendizaje a partir de la experiencia (entrenamiento). Normalmente, para la elaboración de un programa informático es necesario un estudio detallado de la tarea a realizar para después codificarla en un lenguaje de programación. Pero, las redes neuronales pueden ser entrenadas para realizar una determinada tarea sin necesidad de un estudiar esta a fondo ni programarla usando un lenguaje de programación. Además; las redes neuronales pueden volver a entrenarse para ajustarse a nuevas necesidades de la tarea que realizan, sin tenerse que reescribir o revisar el código (cosa frecuente en programas tradicionales).
  • Su velocidad de respuesta una vez concluido el entrenamiento. Se comportan también en este caso de manera similar a como lo hace el cerebro: los seres humanos no necesitamos pensar mucho para identificar un objeto, una palabra,... una vez hemos aprendido a hacerlo.
  • Su robustez, en el sentido de que el conocimiento adquirido se encuentra repartido por toda la red, de forma que si se lesiona una parte se continúan generando cierto número de respuestas correctas (en este caso también hay cierta analogía con los cerebros parcialmente dañados).





NEURONAS BIOLÓGICA



Las diferentes configuraciones y algoritmos que se diseñan para las redes neuronales artificiales están inspiradas en la organización del complejo sistema neuronal del cerebro humano. No obstante conviene aclarar que esta inspiración no supone que las ANN lleguen a emular al cerebro como algunos optimistas lo desean ya que entre otras limitaciones el conocimiento sobre el modo de funcionamiento y comportamiento del cerebro es bastante simple y reducido. De hecho los diseñadores de redes artificiales van más lejos del conocimiento biológico actual y prueban nuevas estructuras que presentan un comportamiento adecuado y útil.

El sistema nervioso humano constituido por células llamadas neuronas presenta una estructura muy compleja. El número estimado de neuronas es de 1011 y las interconexiones entre ellas son del orden de 1015 .

Cada neurona comparte muchas características con otras células del cuerpo humano pero tiene propiedades particulares y especiales para recibir, procesar y transmitir señales electroquímicas a través de todas las interconexiones del sistema de comunicación del cerebro.





LA NEURONA ARTIFICIAL

La neurona artificial fue diseñada para "emular" las características del funcionamiento básico de la neurona biológica. En esencia, se aplica un conjunto de entradas a la neurona, cada una de las cuales representa una salida de otra neurona. Cada entrada se multiplica por su "peso" o ponderación correspondiente análogo al grado de conexión de la sinapsis. Todas las entradas ponderadas se suman y se determina el nivel de excitación o activación de la neurona. Una representación vectorial del funcionamiento básico de una neurona artificial se indica según la siguiente expresión de la ecuación


CARACTERÍSTICAS DE LAS REDES NEURONALES

ARTIFICIALES

Las Redes Neuronales Artificiales, ANN (Artificial Neural Networks) están inspiradas en las redes neuronales biológicas del cerebro humano. Están constituidas por elementos que se comportan de forma similar a la neurona biológica en sus funciones más comunes. Estos elementos están organizados de una forma parecida a la que presenta el cerebro humano.



Las ANN al margen de "parecerse" al cerebro presentan una serie de características propias del cerebro. Por ejemplo las ANN aprenden de la experiencia, generalizan de ejemplos previos a ejemplos nuevos y abstraen las características principales de una serie de datos.



Aprender: adquirir el conocimiento de una cosa por medio del estudio, ejercicio o experiencia. Las ANN pueden cambiar su comportamiento en función del entorno. Se les muestra un conjunto de entradas y ellas mismas se ajustan para producir unas salidas consistentes.



Generalizar: extender o ampliar una cosa. Las ANN generalizan automáticamente debido a su propia estructura y naturaleza. Estas redes pueden ofrecer, dentro de un margen, respuestas correctas a entradas que presentan pequeñas variaciones debido a los efectos de ruido o distorsión.



Abstraer: aislar mentalmente o considerar por separado las cualidades de un objeto. Algunas ANN son capaces de abstraer la esencia de un conjunto de entradas que aparentemente no presentan aspectos comunes o relativos.



ESTRUCTURA BÁSICA DE UNA RED NEURONAL

Analogía con el cerebro.-

La neurona es la unidad fundamental del sistema nervioso y en particular del cerebro.

Cada neurona es una simple unidad procesadora que recibe y combina señales desde y hacia otras neuronas. Si la combinación de entradas es suficientemente fuerte la salida de la neurona se activa. La Figura (1.1) muestra las partes que constituyen una neurona.




El cerebro consiste en uno o varios billones de neuronas densamente interconectadas.

El axón (salida) de la neurona se ramifica y está conectada a las dendritas (entradas) de otras neuronas a través de uniones llamadas sinapsis. La eficacia de la sinpasis es modificable durante el proceso de aprendizaje de la red.

Redes Neuronales Artificiales.-

En las Redes Neuronales Artificiales, ANN, la unidad análoga a la neurona biológica es el elemento procesador,PE (process element). Un elemento procesador tiene varias entradas y las combina, normalmente con una suma básica. La suma de las entradas es modificada por una función de transferencia y el valor de la salida de esta función de transferencia se pasa directamente a la salida del elemento procesador.

La salida del PE se puede conectar a las entradas de otras neuronas artificiales (PE) mediante conexiones ponderadas correspondientes a la eficacia de la sinapsis de las conexiones neuronales.




COMPUTACIÓN TRADICIONAL Y COMPUTACIÓN

NEURONAL

Programación/Entrenamiento.-

Las técnicas tradicionales de programación utilizadas para la solución de un problema requieren la creación de un algoritmo. Un algoritmo consiste en una secuencia de instrucciones que indica el modo en el que debe proceder el sistema basado en un ordenador para lograr el fin perseguido que es la resolución del problema.

El diseño de una secuencia de instrucciones para resolver un problema de contabilidad es relativamente sencillo, mientras que existen muchos problemas del mundo real en los que resulta difícil realizar un algoritmo que resuelva dichos problemas. Por ejemplo imaginemos desarrollar un programa para cualquiera de los problemas de reconocimiento de imágenes como el rostro de una persona. Hay muchas variaciones de la imagen de una persona, como que presente un rostro serio o un rostro alegre, variaciones en general que deben tenerse en cuenta a la hora de diseñar el algoritmo.

Arquitectura.-

Las ANN presentan una arquitectura totalmente diferente de los ordenadores tradicionales de un único procesador. Las máquinas tradicionales basadas en el modelo de Von Neuman tienen un único elemento procesador, la CPU (Control Process Unit) que realiza todos los cálculos ejecutando todas las instrucciones de la secuencia programada en el algoritmo. Cualquier CPU realiza más de cien comandos básicos, incluyendo sumas, restas, y desplazamientos entre otros.

Sistemas Expertos.-

Los sistemas expertos difieren de la programación tradicional en que la base del conocimiento está separada del motor de inferencia (el método del procesado del conocimiento). Esta característica permite que todo el conocimiento adicional pueda ser añadido al sistema sin necesidad de tener que ser reprogramado todo el sistema. Esta técnica requiere que exista una persona experta en un área y que se puedan crear reglas que codifiquen el conocimiento.



HISTORIA DE LA COMPUTACIÓN NEURONAL

La era moderna de las redes neuronales se cree que comenzó en 1943 gracias a McCullough y Pitts, quienes describieron el cálculo lógico de las redes neuronales y perfilaron el primer módulo formal de una neurona elemental.

En la década de los cincuenta, Minsky comienza a construir la primera neurocomputadora (basada en modelos de redes neuronales que imitan al cerebro).

En 1962, Frank Rosenblatt presenta los resultados de una máquina a la que denominó "Perceptrón", la cual reproducía una estructura neuronal muy simplificada, capaz de aprender a reconocer y clasificar determinadas figuras.

En la misma década, Minsky y Pappert (autoridades de la IA clásica) publicaron un libro en el que se ponían de manifiesto las limitaciones de los perceptrones de una capa. Esto hará que se pierda interés en el campo de las redes neuronales hasta la década de los 80, en que el estudio de nuevas arquitecturas de redes y la mayor potencia de los ordenadores permiten el diseño de redes muy eficientes en tareas en las que otros procedimientos de tipo simbólico encuentran dificultades.

Así, en 1982 J. Hopfield describe las "redes de Hopfield" en las que se utilizan funciones de energía para entender las redes dinámicas. Cohen y Grossberg desarrollan en el 83 el principio de la memoria direccional. En 1986 Rumulhart, Hunton y Williams redescubren el algorismo de "back-propagation" (desarrollado en 1974 por Paul Werbor) para el aprendizaje de redes neuronales. Por estas fechas, y gracias a las nuevas tecnologías de fabricación de microchips, comienzan a construirse redes neuronales implementadas en silicio (mucho más rápidas que las de software).

Actualmente, el uso de redes neuronales se ha extendido bastante en el mercado de software doméstico, dejando de estar restringidas a los entornos de investigación y a las grandes empresas. De esta forma, se pueden encontrar modelos de redes neuronales en programas de reconocimiento de voz, en juegos de ordenador, programas de contabilidad, tutores, y muchos otros.

APLICACIONES DE LAS REDES NEURONALES:

Las características de las redes neuronales hacen que sus posibles aplicaciones sean muy amplias.

Algunas de las aplicaciones más destacadas son:

  • Reconocimiento de patrones de clasificación:
    • Reconocimiento de voz, de caracteres manuscritos,...
    • Análisis y reconocimiento de imágenes, formas,...
    • Diagnostico clínico.
    • ...
  • Análisis de series temporales y predicción:
    • Modelos meteorológicos.
    • Predicción del comportamiento.
    • Predicción de series temporales.
    • ...
  • Robótica

 Se ven así las amplias posibilidades que permite esta tecnología, ya al alcance de cualquier programador.

IMPLEMENTACIÓN Y TECNOLOGÍAS EMERGENTES

A la hora de implementar una red neuronal como parte de un programa o sistema informático, se pueden distinguir 3 fases básicas:

  • Diseño: en esta fase se elige el tipo de red neuronal a usar (la arquitectura o topología), el número de neuronas que la compondrán,...
  • Entrenamiento: en esta fase se le presentan a la red neuronal una serie de datos de entrada y datos de salida (resultados), para que a partir de ellos pueda aprender.
  • Uso: se le suministran las entradas pertinentes a la red, y esta genera las salidas en función de lo que ha aprendido en la fase de entrenamiento.



REDES NEURONALES DE UNA CAPA

La capacidad de cálculo y potencia de la computación neuronal proviene de las múltiples conexiones de las neuronas artificiales que constituyen las redes ANN.

La red más simple es un grupo de neuronas ordenadas en una capa   Los nodos circulares sólo son distribuidores de las entradas y no se consideran constituyentes de una capa.








REDES NEURONALES MULTICAPA



Las redes multicapa se forman con un grupo de capas simples en cascada. La salida de una capa es la entrada de la siguiente capa. Se ha demostrado que las redes multicapa presentan cualidades y aspectos por encima de las redes de una capa simple.




ENTRENAMIENTO DE LAS REDES NEURONALES

ARTIFICIALES

Una de las principales características de las ANN es su capacidad de aprendizaje. El entrenamiento de las ANN muestra algunos paralelismos con el desarrollo intelectual de los seres humanos. No obstante aun cuando parece que se ha conseguido entender el proceso de aprendizaje conviene ser moderado porque el aprendizaje de las ANN está limitado.

El objetivo del entrenamiento de una ANN es conseguir que una aplicación determinada, para un conjunto de entradas produzca el conjunto de salidas deseadas o mínimamente consistentes. El proceso de entrenamiento consiste en la aplicación secuencial de diferentes conjuntos o vectores de entrada para que se ajusten los pesos de las interconexiones según un procedimiento predeterminado. Durante la sesión de entrenamiento los pesos convergen gradualmente hacia los valores que hacen que cada entrada produzca el vector de salida deseado.



Entrenamiento Supervisado: estos algoritmos requieren el emparejamiento de cada vector de entrada con su correspondiente vector de salida. El entrenamiento consiste en presentar un vector de entrada a la red, calcular la salida de la red, compararla con la salida deseada, y el error o diferencia resultante se utiliza para realimentar la red y cambiar los pesos de acuerdo con un algoritmo que tiende a minimizar el error.

Las parejas de vectores del conjunto de entrenamiento se aplican secuencialmente y de forma cíclica. Se calcula el error y el ajuste de los pesos por cada pareja hasta que el error para el conjunto de entrenamiento entero sea un valor pequeño y aceptable.



Entrenamiento No Supervisado: los sistemas neuronales con entrenamiento supervisado han tenido éxito en muchas aplicaciones y sin embargo tienen muchas críticas debido a que desde el punto de vista biológico no son muy lógicos. Resulta difícil creer que existe un mecanismo en el cerebro que compare las salidas deseadas con las salidas reales. En el caso de que exista, ¿de dónde provienen las salidas deseadas?

Los sistemas no supervisados son modelos de aprendizaje más lógicos en los sistemas biológicos. Desarrollados por Kohonen (1984) y otros investigadores, estos sistemas de aprendizaje no supervisado no requieren de un vector de salidas deseadas y por tanto no se realizan comparaciones entre las salidas reales y salidas esperadas.



LA CLASIFICACIÓN DE LAS REDES NEURONALES

La clasificación de las redes neuronales artificiales que se presenta en este capítulo es una simple descripción de las diferentes ANN más comunes y frecuentes en la mayoría de los simuladores software de sistemas de computación neuronal. La selección de una red se realiza en función de las características del problema a resolver. La mayoría de éstos se pueden clasificar en aplicaciones de Predicción, Clasificación, Asociación, Conceptualización, Filtrado y Optimización. Los tres primeros tipos de aplicaciones requieren un entrenamiento supervisado.





No hay comentarios:

Publicar un comentario