Está en la página 1de 9

INTELIGENCIA ARTIFICIAL

Trabajo Prctico n 5 Redes Neuronales Reconocedor ptico de Caracteres

Profesores: Ing. Mario Figueroa Ing. Pablo Rovarini Alumnos: Jos Daniel Muccela Comisin: 5 k 2 Ao 2008

Facultad Regional Tucumn Universidad Tecnolgica Nacional

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

Problema:

TP N 5 Redes Neuronales Reconocedor ptico de Caracteres Desarrollo

Una de las aplicaciones que ms se usa de las Redes Neuronales es el Reconocimiento ptico de caracteres. Esto es posible por la naturaleza de las Redes Neuronales. Al hablar de naturaleza de las redes neuronales nos referimos a que es unos de las ramas de la Inteligencia Artificial capaz de aprender patrones y de acuerdo a una entrada de datos puede predecir los resultados. Esto es, la red aprende un conjunto de patrones y luego de acuerdo a las entradas posteriores la red puede deducir la salida gracias al aprendizaje que hizo de esos patrones. Una Red Neuronal trata de simular a un cerebro humano. Estas redes imitan en cierto modo el funcionamiento de las neuronas naturales, y son un campo que est dando grandes resultados en los ltimos aos; son especialmente buenas cuando se trata de reconocer patrones con un cierto "ruido" de fondo. Por ejemplo, una palabra nunca se pronuncia exactamente igual dos veces, siempre hay pequeas variaciones. Otro ejemplo es una letra escaneada de un papel (incluso letra de imprenta), que debido a suciedad en el papel, errores en su impresin, e incluso al propio proceso de escaneado nunca es exactamente igual. Sin embargo una persona generalmente no encuentra dificultades a la hora de entender una palabra que le digan o una letra impresa, salvo que sean muy confusas; pues esta ventaja es la que aportan las redes neuronales, posibilitando programas como los OCR. Para entrar ms en detalle veamos como est compuesta una neurona artificial y luego la forma en que trabaja.

Donde: X1Xn indican un bit que corresponden al carcter que estoy tratando de reconocer y son las entradas de la red. W1Wn son los pesos de las entradas de la red. Cada X tiene su peso. El valor para W vara entre 0 y 1. Y es la salida de la red y est en funcin de las entradas y sus respectivos pesos.
UTN FRT
1

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

En el contexto de las redes neuronales lo que est dentro de la elipse es el proceso interno de la red y es donde se encuentra lo que se conoce como el Umbral. Este es un escaln unitario y determina si se dispara o no una celular neuronal.
X1 W1 a umbral Y

X2 W 2 Xn Wn

0 >= Wi <= 1 n Xi * W i > a

Cuando la sumatoria es mayor que a cambia de estado; es decir, atraviesa o no el umbral.


>a

>a

Ahora que ya hablamos de las neuronas, pasemos a las redes neuronales propiamente dicha, la cual est constituida por un conjunto de neuronas interconectadas.

UTN

FRT

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

Como se puede apreciar en el grfico la capa de entrada corresponde a lo que viene del ambiente (como por ejemplo el nervio ptico). En esta capa se encuentran los patrones de enseanza. Las neuronas de la capa intermedia propagan su efecto a travs de las diferentes capas sucesivas y como consecuencia produce un vector de salida. Durante este proceso, los pesos de las entradas de la red son fijos y no se modifican. En el reconocimiento de patrones hay un nmero fijo de categoras en las cuales las muestras de entrada deben clasificarse. Para ello primero se requiere una fase de entrenamiento en la que se presenta a la red los patrones que debe aprender y la categora en cual clasificarlo. Entonces se le presenta a la red un patrn nuevo y desconocido pero que pertenece a alguna de las categoras aprendidas y esta debe decidir a que categora se parece ms. Para el desarrollo de la aplicacin OCR usamos la Red Neuronal de Kohonen. Esta es un tipo de red No Supervisada. Lo ms importante en este tipo de redes es que el resultado no lo conozco. Funcionamiento de la red: Si ocupamos un vector para definir las neuronas, por ejemplo de 30 elementos, tendremos: x = X [1..30]

A esta matriz la ocuparemos para determinar un carcter. Cada cuadro de la matriz puede tener un valor 0 1. Si es igual a 0 no tiene nada, caso contrario el cuadro est lleno. Vamos a ocupar adems un crculo unitario donde estarn representados todos los vectores, uno por cada neurona.
Vector ngulo

En este crculo habr 30 vectores. Los vectores pueden tener cualquier direccin. Al hacer que todos los vectores tengan mdulo 1, slo nos preocupamos por calcular el ngulo con la abcisa.
UTN FRT
3

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

El uso del crculo y los ngulos de los vectores sirve para normalizarlos (que tengan mdulo 1) y para determinar el ngulo. Este ngulo determinar cun cerca est una neurona (vector) u otra del patrn de entrada que se quiere reconocer. Supongamos que el patrn de entrada a la red es la letra A.

Se puede apreciar que hay cuadros llenos (1) y cuadros vacos (0). Este patrn ingresa a la red neuronal para que esta lo aprenda. Este proceso se conoce como el entrenamiento de la red. Luego de aprender viene un segundo paso que consiste en el reconocimiento del caracter. Se supone que con el entrenamiento la red es capaz de reconocer un carcter igual o similar que ingrese nuevamente a ella. Siempre habr un margen de error. Supongamos que ingresamos un documento escaneado y le pedimos al sistema que reconozca los caracteres impresos en l. Nos centremos en la letra A. Supongamos que hay cierto ruido o suciedad en la hoja y la letra A aparece en el documento como muestra la siguiente figura:

En ella vemos que falta parte de la letra. Lo que har la red en este caso es buscar el vector ms prximo (gracias al ngulo) para obtener el resultado deseado. En otras palabras la red buscar entre los vectores lo que ms se aproximen para completar el caracter que queremos. De aqu surge que hay neuronas ganadoras y neuronas perdedoras. Las ganadoras son las que se activan y se disparan para obtener el resultado deseado. Si entre las neuronas no hay proximidad con el caracter que se pretende reconocer no hay un resultado posible por lo que no hay neuronas ganadoras, es decir no hay vectores prximos. Respecto de la aplicacin, se desarroll en Builder C++ Versin 6.0. Tiene dos funciones principales que consisten en los pasos mencionados: 1. Aprender 2. Reconocer

UTN

FRT

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

Fig. 1

Al abrir el programa (fig.1) nos encontramos con tres botones a la izquierda las cuales contienen las 2 funciones principales antes mencionadas y una tercera funcin consistente en reiniciar o volver a ensear a la red lo que queremos que aprenda. Para comenzar presionamos el botn Ensear. Inmediatamente se activa el sector de dibujo a la derecha para que por medio del Mouse dibujemos/escribamos lo que deseamos ensearle a la Red. Una vez que dibujamos (por ejemplo la letra o patrn A) elegimos del combo el nmero/letra/smbolo que pertenece al dibujo realizado (Buscamos la letra A en el combo). Esta accin constituye el patrn de enseanza nombrado al comienzo. Luego de seleccionar un carcter del combo a la derecha se mostrar grficamente como la Red representa al patrn ingresado (Fig. 2).

Fig. 2

Esto completa el proceso de enseanza. Ahora queremos que la red reconozca un caracter ingresado nuevamente a partir del sector de dibujo/escritura. Para ello presionamos el botn Reconocer que se encuentra a la izquierda. Se borra el dibujo anterior y se activa nuevamente el sector de dibujo

UTN

FRT

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

para que ingresemos nuevamente la representacin del patrn. Supongamos que dibujamos algo parecido a la letra A.

Una vez dibujada presionamos el botn Reconocer en el medio de la pantalla. Si la Red reconoce el dibujo que acabamos de ingresar nos mostrar a la derecha el patrn que le enseamos al comienzo (en el proceso de enseanza). Caso contrario nos avisa que no reconoce el dibujo que acabamos de ingresar.

Tambin observamos que nos muestra un nmero al lado de la etiqueta Patrn. Este nmero corresponde con el caracter ASCII. Esto es porque en el cdigo del programa consideramos como caracteres a los posibles patrones de entrada al sistema. El nmero al lado de la etiqueta Neurona Elegida corresponde al nmero de la neurona dentro de toda la Red Neuronal. Esto significa que la neurona 86 es la ganadora y por lo tanto la que se activo. Esta neurona es la que ms cerca estuvo del patrn que pretendamos reconocer. Ahora supongamos que ingresamos una letra A pero con mucho ruido ( suciedad). Para ello presionamos el botn Borrar y queda limpio el sector de dibujo.
UTN FRT
6

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

Este dibujo contiene partes incompletas de la letra A. De todas maneras la Red tratar de reconocer este dibujo. Presionamos el botn Reconocer y como vemos la Red interpret y reconoci el dibujo. Por lo tanto nos muestra el resultado a la derecha junto con el nmero de patrn que ella aprendi y la neurona que estuvo ms cerca de reconocer el patrn. Intentamos nuevamente ingresar un dibujo incompleto o con ruido de la letra A. Esta vez la letra est ms borrosa. Cuando presionamos el botn Reconocer vemos que la Red no interpreta el dibujo y por lo tanto no reconoce el caracter.

Para ensear nuevamente a la Red un nuevo Patrn presionamos el botn Volver a Educar a la izquierda de la pantalla. Esta accin provocar que se descarte la Red que est funcionando hasta ese momento.

UTN

FRT

Inteligencia Artificial 2008 - TPN5 - R. Neuronales - Muccela Jos Daniel

Muchas veces la Red cae en la memorizacin de los Patrones. En estos casos la solucin puede venir dada por: 1. Aumentar el nmero de Neuronas, 2. Agregar capas intermedias.

UTN

FRT

También podría gustarte