UNIVERSIDAD DON BOSCO
FACULTAD DE INGENIERÍ INGENIER ÍA
ESCUELA DE COMPUTACIÓ COMPUTACI ÓN
SISTEMAS EXPERTOS E INTELIGENCIA ARTIFICIAL
Prof. Raú Raúl Martí Martí nez nez
“Propagación Inversa (Back Propagation) en proyectos de ingenier í ía y RNAs”
Alumno Carnet Hermes Roberto Roberto Lizama Lizama Pontes Pontes LP050038
Ciudadela Don Bosco, 9 de Marzo de 2010
Introducci ó n
Una red neural (o neuronal) es un sistema de inteligencia artificial (AI por sus siglas en ingl és) que son capaces de diferenciar patrones, es útil en todo ámbito relacionado con identificaci ón, clasificación y predicción (en cierto rango) cuando un volumen de informaci ón gigantesco esta disponible. Al examinar cientos (a veces miles) de ejemplos, una red neural detecta relaciones importantes y patrones en la información copiando la estructura del cerebro humano.
Se pretende incluir el funciónamiento de una red neural para reconocer patrones de im ágenes con el propósito de “liberar memoria” al comprimir el espacio que la imagen utiliza de forma l ógica, basado en una matriz de reconocimiento donde la red neural realizar á la búsqueda a partir de una función matemática que verificará la posición de cada segmento de imagen.
Queda pues para el lector comprender los conceptos b ásicos y la terminologí a adecuada para comprender la teorí a que se plantea, ademas la mayor í a de conceptos se proveen en ingl és para facilitar su búsqueda en fuentes de informaci ón.
Resumen
Existen dos tipos de redes neurales:
+ Red Neural de auto-organizaci ón (SORN) -FeedForward Model -Hidden Layer Model + Red Neural de Propagación en reversa (Back-Propagation)
SORNs
En las primeras, la RNA (Red Neural) encuentra patrones y relaciones en vastos volumenes de datos por si misma, creando su propia representaci ón de la información en su interior. El modelo de alimentación hacia adelante (FeedForward) provee o “alimenta” a la siguiente “iteraci ón” de la red con la información de la anterior, donde incluso la misma neurona puede alimentar de nuevo en sí misma, pues se produce una retroalimentaci ón por recursividad. El modelo de capa oculta (Hidden Layer) fue concebido como una forma de ampliar la din ámica de una red neuronal sin rediseñar el modelo. Esencialmente captar la complejidad de la masa dendr í tica, en "capas ocultas", ya que una ramificaci ón de una dendrita es matemáticamente igual a una soma, excepto para el acondicionamiento de salida, y el umbral de disparo (Para que se comprenda, una dentrita es una ramificación de una neurona, y una soma es el “cuerpo” de la neurona, ver figura No.1).
Figura No 1: Estructura Básica de la Neurona
Pero a nosotros nos interesa el segundo tipo de red neural, porque el proyecto que se propone en el documento es basado en Back-Propagation.
Back-Propagation
La “propagación en reversa” (BP) es retroalimentar a la capa anterior con los errores de la capa subsiguiente, pues se basa en Algoritmos de Aprendizaje, que permiten a la red entrenar a todos los nodos de manera sucesiva y personalizada. En redes multicapa se tend í a a “sobre-aprender”, por lo que tení a que aplicarse la back-propagation en forma supervisada.
Ahora, para el proyecto se plantea implementar el uso de C++ para crear una RNA que participe en un aprendizaje controlado acerca de patrones de imagen, pues el sobre-entrenamiento de la red provocar á que el sistema se “caiga”. Hacen uso de la librer í a “Allegro”, que es una librerí a disenada hasta donde se, para juegos y multimedia (chequear su p ágina web: http://www.talula.demon.co.uk/allegro/ ). Suponiendo que se utilizara por el acceso a paletas y sprites proporci ónados de forma directa a C++.
La matriz de la imagen se basa en el tama ño del lienzo, retomando el ejemplo del documento, un lienzo de 200x200 generarí a 200x200=40000 posiciones en las que cada una tendra un n úmero o color. La idea es encontrar la función matemática para mapear la imagen de regreso y reducir el n úmero de errores en el aprendizaje de la RNA.
Se realiza la prueba comprimiendo y descomprimiendo una imagen de 800x600, comparando tiempos, espacio y calidad de la imagen despues del proceso.
Se implementa una red de base radial, concluyendo con que el proceso paso a paso con cuatro caracterí sticas: Relativamente f ácil de entrenar Relativamente rápida de entrenar Aproximadores universales de funci ónes Estructuras de capas fijas
Los ultimos dos proveen a la funci ón de peso un sesgo (umbral, threshold, bias) y un numero de capas visibles y ocultas (ver hidden layer model) para proporcionar feedback a la capa anterior.
Utilizando campanas de Gauss se piensa determinar la ecuaci ón de la curva Cm(p), ya sea por iteraci ón o interpolación. En el entrenamiento la ecuaci ón se basa en el número de nodos, anchura y nucleos de nodos, implementando heurí stica avanzada y una validación de í ndices, no se a que se refer í an muy bien con campanas, pero al buscarlo en internet se refer í a a pedazos de ecuaciones de forma conocida, que se tiene de forma predeterminada y con lo que se “cubre” cada pedazo de la curva, para as í agilizar el algoritmo heurí stico.
Al final de todo, el entrenamiento supervisado (como les menci ónaba antes, no es grato tener sobreentrenamiento porque se puede “botar” el sistema) implementa algoritmos de aprendizaje, siendo mas especí fico, ADALINE (ADAptative Linear Neuron), que es una red neural monocapa, consistiendo en una función de suma con su respectivo peso y umbral. Su principal caracter í stica es que en la etapa de aprendizaje los pesos son ajustados de acuerdo a la suma del peso de las entradas.
Conclusiones
El concepto basico de una red neural no es tan dif í cil de entender, pero la dificultad mas grande en la aplicación de esta es establecer uno o varios algoritmos de aprendizaje. Asimismo, la arquitectura de la red juega un papel determinante en el éxito del proyecto, las herramientas y procesos internos a desarrollar son simplemente un paso m ás, pero escogidos o implementados en el momento correcto, son una ayuda invaluable al éxito de la aplicación. Se habla además, de un Sistema Experto para desarrollar los algoritmos de aprendizaje, o al menos para controlarlos, como no se menciona m ás allá de eso, no se tienen detalles de su funci ónamiento. Se espera que se haya comprendido un poco el funcionamiento de una RNA b ásica (porque la que se implementa no es tan complicada).
Saludos