Redes Neuronales

1,032 views
942 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,032
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Redes Neuronales

  1. 1. INTELIGENCIA ARTIFICIAL Trabajo Práctico nº 5 Redes Neuronales Reconocedor Óptico de Caracteres Profesores: Ing. Mario Figueroa Ing. Pablo Rovarini Alumnos: José Daniel MuccelaComisión: 5 k 2Año 2008 Facultad Regional Tucumán Universidad Tecnológica Nacional
  2. 2. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel TP Nº 5 – Redes NeuronalesProblema: Reconocedor Óptico de Caracteres Desarrollo Una de las aplicaciones que más se usa de las Redes Neuronales es elReconocimiento Óptico de caracteres. Esto es posible por la naturaleza de lasRedes Neuronales. Al hablar de naturaleza de las redes neuronales nos referimos a que esunos de las ramas de la Inteligencia Artificial capaz de aprender patrones y deacuerdo a una entrada de datos puede predecir los resultados. Esto es, la redaprende un conjunto de patrones y luego de acuerdo a las entradas posterioresla 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 neuronasnaturales, y son un campo que está dando grandes resultados en los últimosaños; son especialmente buenas cuando se trata de reconocer patrones con uncierto "ruido" de fondo. Por ejemplo, una palabra nunca se pronunciaexactamente igual dos veces, siempre hay pequeñas variaciones. Otro ejemplo es una letra escaneada de un papel (incluso letra deimprenta), que debido a suciedad en el papel, errores en su impresión, eincluso al propio proceso de escaneado nunca es exactamente igual. Sinembargo una persona generalmente no encuentra dificultades a la hora deentender una palabra que le digan o una letra impresa, salvo que sean muyconfusas; pues esta ventaja es la que aportan las redes neuronales,posibilitando programas como los OCR. Para entrar más en detalle veamos como está compuesta una neuronaartificial y luego la forma en que trabaja. Donde: • “X1…Xn” indican un bit que corresponden al carácter que estoy tratando de reconocer y son las entradas de la red. • “W1…Wn” son los pesos de las entradas de la red. Cada X tiene su peso. El valor para W varía entre 0 y 1. • “Y” es la salida de la red y está en función de las entradas y sus respectivos pesos. 1 UTN FRT
  3. 3. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel En el contexto de las redes neuronales lo que está dentro de la elipse esel proceso interno de la red y es donde se encuentra lo que se conoce como el“Umbral”. Este es un escalón unitario y determina si se dispara o no una celularneuronal. X1 W1 X2 W 2 Y a Wn Xn umbral 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 0 1 ∑ >a Ahora que ya hablamos de las neuronas, pasemos a las redesneuronales propiamente dicha, la cual está constituida por un conjunto deneuronas interconectadas. 2 UTN FRT
  4. 4. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel Como se puede apreciar en el gráfico la capa de entrada corresponde alo que viene del ambiente (como por ejemplo el nervio óptico). En esta capa seencuentran los patrones de enseñanza. Las neuronas de la capa intermedia propagan su efecto a través de lasdiferentes 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 semodifican. En el reconocimiento de patrones hay un número fijo de categorías enlas cuales las muestras de entrada deben clasificarse. Para ello primero serequiere una fase de entrenamiento en la que se presenta a la red los patronesque debe aprender y la categoría en cual clasificarlo. Entonces se le presenta ala red un patrón nuevo y desconocido pero que pertenece a alguna de lascategorías aprendidas y esta debe decidir a que categoría se parece más. Para el desarrollo de la aplicación OCR usamos la Red Neuronal deKohonen. Esta es un tipo de red No Supervisada. Lo más importante en estetipo de redes es que el resultado no lo conozco. Funcionamiento de la red: Si ocupamos un vector para definir las neuronas, por ejemplo de 30elementos, tendremos: x = X [1..30] A esta matriz la ocuparemos para determinar un carácter. Cada cuadrode la matriz puede tener un valor 0 ó 1. Si es igual a 0 no tiene nada, casocontrario el cuadro está lleno. Vamos a ocupar además un círculo unitario donde estaránrepresentados todos los vectores, uno por cada neurona. Vector Ángulo 1 En este círculo habrá 30 vectores. Los vectores pueden tener cualquier dirección. Al hacer que todos losvectores tengan módulo 1, sólo nos preocupamos por calcular el ángulo con laabcisa. 3 UTN FRT
  5. 5. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel El uso del círculo y los ángulos de los vectores sirve paranormalizarlos (que tengan módulo 1) y para determinar el ángulo. Este ángulodeterminará cuán cerca está una neurona (vector) u otra del patrón de entradaque se quiere reconocer. Supongamos que el patrón de entrada a la red es la letra “A”. Se puede apreciar que hay cuadros llenos (1) y cuadros vacíos (0).Este patrón ingresa a la red neuronal para que esta lo aprenda. Este procesose conoce como el entrenamiento de la red. Luego de aprender viene un segundo paso que consiste en elreconocimiento del caracter. Se supone que con el entrenamiento la red escapaz de reconocer un carácter igual o similar que ingrese nuevamente a ella.Siempre habrá un margen de error. Supongamos que ingresamos un documento escaneado y le pedimosal sistema que reconozca los caracteres impresos en él. Nos centremos en laletra “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 más próximo(gracias al ángulo) para obtener el resultado deseado. En otras palabras la redbuscará entre los vectores lo que más se aproximen para completar el caracterque queremos. De aquí surge que hay neuronas ganadoras y neuronasperdedoras. Las ganadoras son las que se activan y se disparan para obtenerel resultado deseado. Si entre las neuronas no hay proximidad con el caracterque se pretende reconocer no hay un resultado posible por lo que no hayneuronas ganadoras, es decir no hay vectores próximos. Respecto de la aplicación, se desarrolló en Builder C++ Versión 6.0. Tiene dos funciones principales que consisten en los pasosmencionados: 1. Aprender 2. Reconocer 4 UTN FRT
  6. 6. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel Fig. 1 Al abrir el programa (fig.1) nos encontramos con tres botones a laizquierda las cuales contienen las 2 funciones principales antes mencionadas yuna tercera función consistente en reiniciar o volver a enseñar a la red lo quequeremos que aprenda. Para comenzar presionamos el botón Enseñar. Inmediatamente seactiva el sector de dibujo a la derecha para que por medio del Mousedibujemos/escribamos lo que deseamos “enseñarle” a la Red. Una vez quedibujamos (por ejemplo la letra o patrón “A”) elegimos del combo elnúmero/letra/símbolo que pertenece al dibujo realizado (Buscamos la letra “A”en el combo). Esta acción constituye el patrón de enseñanza nombrado alcomienzo. Luego de seleccionar un carácter del combo a la derecha semostrará gráficamente como la Red representa al patrón ingresado (Fig. 2). Fig. 2 Esto completa el proceso de enseñanza. Ahora queremos que la red reconozca un caracter ingresadonuevamente a partir del sector de dibujo/escritura. Para ello presionamos el botón Reconocer que se encuentra a laizquierda. Se borra el dibujo anterior y se activa nuevamente el sector de dibujo 5 UTN FRT
  7. 7. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Danielpara que ingresemos nuevamente la representación del patrón. Supongamosque dibujamos algo parecido a la letra “A”. Una vez dibujada presionamos el botón Reconocer en el medio de lapantalla. Si la Red reconoce el dibujo que acabamos de ingresar nos mostraráa la derecha el patrón que le enseñamos al comienzo (en el proceso deenseñanza). Caso contrario nos avisa que no reconoce el dibujo que acabamosde ingresar. También observamos que nos muestra un número al lado de laetiqueta Patrón. Este número corresponde con el caracter ASCII. Esto esporque en el código del programa consideramos como “caracteres” a losposibles patrones de entrada al sistema. El número al lado de la etiquetaNeurona Elegida corresponde al número de la neurona dentro de toda la RedNeuronal. Esto significa que la neurona 86 es la ganadora y por lo tanto la quese activo. Esta neurona es la que más cerca estuvo del patrón quepretendíamos reconocer. Ahora supongamos que ingresamos una letra “A” pero con muchoruido (ó suciedad). Para ello presionamos el botón Borrar y queda limpio elsector de dibujo. 6 UTN FRT
  8. 8. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel Este dibujo contiene partes incompletas de la letra “A”. De todasmaneras la Red tratará de reconocer este dibujo. Presionamos el botónReconocer y como vemos la Red interpretó y reconoció el dibujo. Por lo tantonos muestra el resultado a la derecha junto con el número de patrón que ellaaprendió y la neurona que estuvo más cerca de reconocer el patrón. Intentamos nuevamente ingresar un dibujo incompleto o con ruido dela letra “A”. Esta vez la letra está más borrosa. Cuando presionamos el botónReconocer vemos que la Red no interpreta el dibujo y por lo tanto no reconoceel caracter. Para enseñar nuevamente a la Red un nuevo Patrón presionamos elbotón Volver a Educar a la izquierda de la pantalla. Esta acción provocará quese descarte la Red que está funcionando hasta ese momento. 7 UTN FRT
  9. 9. Inteligencia Artificial 2008 - TPNº5 - R. Neuronales - Muccela José Daniel Muchas veces la Red cae en la memorización de los Patrones. Enestos casos la solución puede venir dada por: 1. Aumentar el número de Neuronas, ó 2. Agregar capas intermedias. 8 UTN FRT

×