Reconocimiento de caracteres atravez de redes neuronales

15
APLICACIÓN PARA RECONOCIMIENTO DE CARACTERES A TRAVÉS DE REDES NEURONALES Luis Feijoo Teléfono: 2571753 Loja - Av. Paltas y Estados Unidos. Mail: [email protected], [email protected]

description

Paper IA

Transcript of Reconocimiento de caracteres atravez de redes neuronales

Page 1: Reconocimiento de caracteres atravez de redes neuronales

APLICACIÓN PARA RECONOCIMIENTO DE CARACTERES A TRAVÉS DE REDES NEURONALES

Luis FeijooTeléfono: 2571753

Loja - Av. Paltas y Estados Unidos.Mail: [email protected], [email protected]

Page 2: Reconocimiento de caracteres atravez de redes neuronales

1. AbstractEl presente trabajo describe como implementar redes neuronales para el reconocimiento de caracteres. Lo que pretendo demostrar es la eficiencia en cuanto a dos algoritmos: Backpropagation y Hopfield, con eficiencia me refiero a que implementaré estos dos algoritmos para reconocer caracteres alfabéticos, como las letras del abecedario, a través de la fase de entrenamiento de dichos algoritmos sabré cual es el más optimo y el que menor tiempo se demora a la hora de reconocer un carácter que ingresare por teclado en una interfaz. Al final obtendré un cuadro comparativo acerca de estos dos algoritmos y esto a su vez me permitirá concluir sobre la eficiencia de los algoritmos nombrados anteriormente.

2. Introducción

Muchas personas, empresas o instituciones disponen de gran cantidad de información de forma impresa y desean procesar esta información utilizando un computador, lo pueden realizar de dos maneras: la primera opción es que toda la información deben digitarla a través de teclado, lo cual es un trabajo largo, y si la información es abundante quizá el periodo de tiempo para digitar esta información sea demasiado largo. La segunda opción es hacer automáticamente este proceso a través de reconocimiento de caracteres, lo cual sin duda alguna facilita las cosas y el tiempo. El reconocimiento de caracteres engloba un conjunto de métodos y algoritmos que los describiré más adelante, los cuales permiten realizar una fase de entrenamiento que a la final permitirán reconocer de forma automática caracteres. Cabe recalcar que el reconocimiento de caracteres no solo se utiliza para reconocimiento de textos escritos sino tiene muchas aplicaciones como lo veremos en el presente documento.

3. Objetivos

Implementación de una red neuronal que usa el algoritmo de backpropagation para realizar el proceso de aprendizaje y reconocimiento de caracteres comprendidos entre la A hasta la Z.

Implementación de una red neuronal que usa el algoritmo de Hopfield para realizar el proceso de aprendizaje y reconocimiento de caracteres comprendidos entre la A hasta la Z.

Comparación en el funcionamiento y resultados finales obtenidos durante la fase de entrenamiento de los dos algoritmos nombrados anteriormente.

Utilización de la técnica de aprendizaje supervisado y no supervisado, a fin de obtener resultados y hacer comparaciones

en eficiencia más precisos y reducir el error al máximo.

4. Descripción del Problema:

En la actualidad vivimos en un mundo totalmente digitalizado en el cual necesitamos como usuarios y empresarios tener márgenes de seguridad en los negocios y transacciones que realizamos para lo cual nosotros mediante la implementación de un agente para reconocimiento de caracteres que van a ir desde la letra A hasta la F, no elegimos demás letras porque se va a generar una red neuronal sumamente grande que luego se va a encontrar inconveniente en su generación, voy a utilizar los algoritmos backpropagation y hopfield para crear este agente reconocedor de caracteres, el cual va a pasar por una fase de entrenamiento y reconocimiento a fin de obtener el resultado optimo. Esto se realiza con el fin de mostrar el proceso para lograr el objetivo que es reconocer el carácter que ingresemos, y además mostrar cual de los dos algoritmos lo hace al proceso más eficiente y en menos tiempo. Por tal razón me he propuesto realizar la construcción, y funcionamiento de un agente capaz de reconocer caracteres.

5. Justificación

El reconocimiento de caracteres y dígitos es una de las áreas de aplicación más efectiva de las redes neuronales, al punto de que ya es común el diseño eficiente, manufactura, y comercio de sistemas de reconocimiento de caracteres basados en redes neuronales.

La mayoría del trabajo reciente de reconocimiento de caracteres se ha enfocado en aproximaciones estadísticas, sintéticas y estructurales. El método de entrenamiento para redes neuronales multicapa backpropagation ha alcanzado una gran popularidad y es el nuevo paradigma para el diseño de los sistemas de reconocimiento que dominan el campo.

En mi caso utilizaré los algoritmos Backpropagation y Hopfield ya que el primer algoritmo posee una técnica de aprendizaje automático la cual nos va a permitir obtener resultados óptimos minimizando el error cuadrático y así obteniendo la letra más parecida a la cual nosotros estamos simulando mediante la fase de entrenamiento.

El segundo algoritmo a utilizar es el de Hopfield, el cual utiliza aprendizaje no supervisado ya que no realiza ningún proceso de balanceo de carga en los nodos, ni verificación del error cuadrático medio entre los nodos de la red neuronal, por lo cual al momento de entrenar la red neuronal, tardara un poco más en mostrar los resultados.

La necesidad de tener sistemas de reconocimiento automático o semiautomático de

Page 3: Reconocimiento de caracteres atravez de redes neuronales

caracteres ha sido reconocida por décadas, lo que ha requerido el desarrollo e integración de diversas áreas como la visión, representación y entendimiento del conocimiento, inteligencia artificial y teoría de control.

6. Fundamentos Teóricos

6.1. Redes Neuronales – Inspiración Biológica.

Las neuronas reciben señales (inputs) de otras neuronas vía conexiones sinápticas que pueden ser excitantes o inhibidoras. En función de las señales recibidas, una neurona envía a su vez una señal a otras neuronas por medio del axón. [1] (José Manuel Gutiérrez (Universidad de Cantabria))

Figura # 1.- Estructura de una red neuronal humana

6.2. Definición de Redes Neuronales

Una red neuronal artificial (RNA) es un sistema compuesto de muchos elementos procesadores simples, neuronas, conectados en paralelo, cuya función es determinada por la estructura de la red, la fuerza en las conexiones y el procesamiento realizado por los elementos en los nodos. [2] (Jang et al. 1997).6.3. Estructura de una Red Neuronal ArtificialEn este apartado abordaré la estructura más común de las redes neuronales artificiales en base a dos perspectivas:

1.-Niveles de neuronas.- La distribución de las neuronas en una red neuronal se realiza formando capas o niveles, y cada capa tiene un número determinado de neuronas cada una, se pueden presentar tres tipos de capas diferentes: De entrada: estas capas reciben la información desde el exterior.De Salida: estas envían la información hacia el exteriorOcultas: son capas que solo sirven para procesar información y comunicar otras Capas.

Figura # 2 Estructura de Red Neuronal Según algunos autores, las capas de entrada y de salida no son validas para producir procesamiento, y son usadas solo como sensores. Tras plantearlo de diferentes modos nuestro marco de trabajo se ha diseñado de manera que puede usarse de las dos maneras, podemos usar las capas de entrada y salida para procesar o simplemente como sensores.2.- Formas de conexión de las capas.- Las neuronas se conectar unas a las otras usando sinapsis, pueden conectarse de tres formas diferentes:Unión Todos con Todos: Este tipo de unión es muy común lo utilizan algoritmos como Hopfield, backpropagation, perceptron.Unión Lineal: Consiste en unir cada neurona con otra neurona de la otra capaPredeterminado: Este tipo de conexionado aparece en redes que tienen la propiedad de agregar o eliminar neuronas de sus capas y de eliminar también conexiones.

6.4. Características Generales de las redes Neuronales Pesos: Estos pesos ayudan a ajustar el

valor de la fuerza de conexión entre las neuronas.

Aprendizaje: Puede ser aprendizaje supervisado y no supervisado, estos conceptos los trataremos más adelante.

Fase de operación: Aquí nos referimos a la fase de entrenamiento la cual consiste en proporcionar estímulos de entrada y salida para que una red se ajuste a los pesos de conexión con las demás neuronas y así se logre minimizar el error.

Necesitan un patrón: Las redes neuronales no son capaces de reconocer nada que no tenga algún tipo de patrón.

6.5. AprendizajeAprendizaje Supervisado: En este tipo de aprendizaje se muestran cierto tipo de patrones a la red y una salida deseada para estos patrones asi se logra minimizar al máximo el error aplicando una formula matemática, la cual ajusta los pesos para dar la salida real lo más parecida posible a la salida deseada. Las aplicaciones más importantes para este tipo de aprendizaje es Asociadores de patrones, esto es asocia dos patrones y permite recuperar la información a pesar de errores en la capa de entrada. Modeladores funcionales, las

Page 4: Reconocimiento de caracteres atravez de redes neuronales

redes neuronales permiten, gracias a su capacidad de ajustar el error dar los valores más cercanos a una función de la que solo sabemos algunos puntos por los que pasa

Aprendizaje no supervisado: Este tipo de aprendizaje no necesita que le mostremos los patrones objetivos para salida, ya que el algoritmo y la regla de modificación de las conexiones producen patrones de salida consistentes. Cuando la red procesa patrones con bastante grado de similitud, da la misma salida para ambos patrones, esto es, clasifica los patrones en categorías de patrones parecidos. Normalmente se usa el error cuadrático medio para determinar la similitud, aunque hay otras opciones. [3] Alfonso Ballesteros (Málaga, España). 6.6. El PerceptronSe lo define como aquella red neuronal constituida de dos capas (una de entrada y una de salida) con conexiones hacia delante. El primer nivel está compuesto por un número de unidades de entrada, denominadas unidades sensoriales. El segundo nivel está compuesto por un número de unidades de salida, denominadas unidades de asociación, cuyas entradas son las salidas de las unidades de entrada ponderadas por unos pesos. Las unidades de entrada tienen una sola entrada correspondiente a una de las entradas a la red, y una sola salida. Estas unidades transmiten la señal que aparece en su entrada. Para nuestro objetivo nos centraremos en los perceptrones multicapas. [4] (Gutiérrez, 2000)6.7. Perceptron MulticapaIdentifica a las redes con múltiples capas que funcionan hacia delante. Esta red se encuentra compuesta por un conjunto de nodos de entrada que componen la capa de entrada, un conjunto de una o más capas ocultas de neuronas y una capa de neuronas de salida. La señal de entrada se propaga hacia adelante desde la capa de entrada por la oculta hasta lasalida; este tipo de configuración se conoce como MLP o “MultiLayer Perceptrons”. [5](Aldabas Rubira, 2003)

6.8. Tipos de Redes Neuronales a utilizar en este proyecto:

Backpropagation.- El algoritmo backpropagation se usa en el proceso de aprendizaje de las redes neuronales multicapa. Su potencia reside en su capacidad de entrenar capas ocultas y de este modo supera las posibilidades restringidas de las redes de una única capa, las mismas que únicamente dan solución a problemas linealmente separables, en el mundo real, la mayoría de problemas no son linealmente separables. [6] (Basogain Olabe, 2008)

Descripción del proceso

Según [7] (Bernacki & Wlodarczyk, 2004), se muestra una red neuronal con una capa de neuronas de entrada, una capa intermedia u oculta y una capa de salida. Todas las neuronas de cada capa deben estar conectadas a todas las neuronas de la siguiente capa.

Figura#4 Red neuronal de tres capas con dos neuronas en la entrada y una en la salida

Cada neurona o nodo tiene dos componentes. El primero suma los productos entre el valor de los pesos de las conexiones entrantes wi y las señales de entrada xi. Esta sumatoria será representada con la letra e. Luego, el segundo componente ejecuta la función de activación de la neurona, que es una función no lineal representada como y = f(e). y es el valor de salida de la neurona actual, y el valor de entrada para las de las capas subsiguientes. Los dos componentes se muestran en la figura

Figura#5. En la parte superior se indica la asignación de los pesos de entrada a la función,

en la grafica de la parte inferior se muestra la función no lineal.

Las señales de entrada se propagan por la capa oculta y por la capa de salida, de acuerdo a los pesos

Figura #6. Propagación de las señales por la capa de salida.

Al llegar a la capa de salida de la red, se calcula el error d de la capa de salida de la red neuronal, restando el valor de salida final del valor de salida deseado.

Page 5: Reconocimiento de caracteres atravez de redes neuronales

Ahora se aplica una propagación hacia atrás (backpropagation) del error, para poder calcular los errores de cada neurona en las capas anteriores a la capa de salida. Esta propagación hacia la capa oculta se muestra en la figura #8.

Figura#7. Propagación de la señal de error hacia la capa de atrás.

La técnica de propagación hacia atrás se usa para todas las capas

Una vez que se han calculado los errores para cada neurona, comienza el proceso de modificación de los valores de los pesos de las entradas.

Algoritmo de Hopfield

Son redes de adaptación probabilística y recurrente. Aprenden a reconstruir los patrones de entrada que memorizan durante el entrenamiento.

Son modo capa con interconexión total y en la que el valor de salida de cada unidad es binario (0 y 1) y siguen una regla de aprendizaje no supervisado.

El aprendizaje no supervisado no realiza ningún balanceo de carga entre los pesos de la neurona, lo cual hace que al momento de entrenar la red nos dé un resultado no muy optimo pese a que toca entrenar varias veces a la red lo cual causa demoras para obtener un resultado. [8] (S. Haykin (1999))

En el aprendizaje no supervisado a la red se le proporcionan únicamente estímulos, y la red ajusta los pesos de sus interconexiones utilizando solamente los estímulos y la salida calculada por la red

Están formadas por N neuronas interconectadas que actualizan sus valores de activación en forma independiente.

Es buena para resolver problemas de optimización.

Llega a un estado estable, cuando todas las neuronas son estables.

En la siguiente figura se muestra la arquitectura del modelo Hopfield

Figura#8: Arquitectura del modelo Hopfield

Una característica importante de este modelo es que, una neurona nunca se realimentaría a sí misma (figura#14). [9] (B. Widrow, R. Winter (2001))

Este algoritmo es utilizado para reconocimiento de caracteres, imágenes, reconocimiento de huellas dactilares. [10] (K.I. Funahaski (2006)

7. Trabajos relacionados

Trabajo #1Uso de una red neuronal multicapa para el reconocimiento de caracteres griegos.

En este trabajo realizado en el 2008 se propone la creación de una red multicapa con aprendizaje supervisado. La arquitectura de esta red es como se detalla a continuación:

Alfabeto de 24 caracteres.

Imágenes de 16 x 16 pixeles

Capa de entrada 256 x pixel

Capa de salida 24 neuronas, 1 x letra.

2 Capas ocultas

Todas las neuronas están conectadas con la capa superior.

Preprocesamiento

Primero se carga las imágenes

Se procesa la imagen y se la ubica en una matriz dando 2 valores posibles 1 y -1

PostProcesamiento

Para conocer la respuesta de la red basta con tomar el carácter correspondiente a la neurona de salida con valor máximo.

Algoritmo utilizado: backpropagation con mejoras. Estas mejoras se muestran a continuación:

Page 6: Reconocimiento de caracteres atravez de redes neuronales

Adaptative Learning RateAdapta el parámetro _ según la evolución del error en el aprendizaje. Si el error disminuye consistentemente, se le suma a. Cuando el error aumenta, se le resta b.MomentumLa actualización de pesos toma en cuenta el valor del cambio producido en la época anterior. [11] P. García H. Rajchert I. Scena..(4 de junio del 2008).

Figura # 9 Reconocimiento de caracteres griegos.

Trabajo #2

Procesado de encuestas

Otro trabajo similar es el reconocimiento de caracteres y marcas orientado al procesado de encuestas, detallado en [12] (De Armas Domínguez &Bautista Rodríguez, 2005), donde también se utiliza redes neuronales para el propósito ya mencionado. Se describe que para la clasificación de descriptores dentro del módulo de reconocimiento de caracteres se ha realizado una selección de redes neuronales para cada tipo de caracteres: alfabéticos, numéricos y alfanuméricos; todas las redes tienen 42 neuronas en la capa de entrada, se entrenaron con 19 tipos de caracteres y luego se validaron con otros 11 tipos. La arquitectura de cada una de las redes neuronales queda como sigue:

a) caracteres alfabéticos, 100 neuronas en la capa 1, 50 en la capa 2 y 26 en la capa de salida.

b) caracteres numéricos, 85 neuronas en la capa 1, 45 en la capa 2 y 13 en la capa de salida.

c) caracteres alfanuméricos, 160 neuronas en la capa1, 140 en la capa 2 y 39 en la capa de salida. Además se hace mención que el reconocimiento de caracteres generó el 10,08% de errores probando con 15 hojas de encuesta y generó una precisión del 100% con otras pruebas realizadas con 50 hojas de encuesta.

Trabajo # 3

Reconocimiento de Imágenes con algoritmo Hoplfiel en Salta – Argentina.

Se planteó el aprendizaje de tres patrones de 10 *10 ingresados por diferentes métodos, para luego determinar el reconocimiento de un patrón de entrada ingresado con niveles de corrupción o falencia de datos variables, para así poder determinar el comportamiento de la Red Neuronal ante distintas contigencias y su porcentaje de reconocimiento de patrones.

Este trabajo está compuesto por cuatro aspectos básicos:

Topología: Es una red monocapa con conexiones laterales no recurrentes, esto quiere decir que solo se tiene una capa de neuronas que se encuentran conectadas entre sí pero no con ellas mismasAprendizaje : No supervisadoTipo de Asociación entre la información de entrada y la salida: La función de activación de cada neurona (i) de la red (f(x)) es de tipo escalón. Trabaja con los valores binarios –1 y +1Representación de la Información: Previamente codificada y representada en forma de vector como una configuración binaria “red discreta”. [13] ( Bien Guillermo, Krein Diego, Rambo Alice)

Figura # 10 Aprendizaje con redes Hopfield

Trabajo #4Lectura automática de chequesEn (Palacios & Gupta, 2003) se muestra el desarrollo de un sistema de reconocimiento de caracteres para la lectura automática de cheques, en el cual se describela utilización de técnicas basadas en redes neuronales para la lectura del valor del cheque. El módulo de reconocimiento de dígitos utiliza una serie de algoritmos de normalización y un clasificador. El clasificador que se utiliza está basado en redes neuronales, por su rapidez y porque ofrece buenos resultados en el reconocimiento de caracteres. La red neuronal artificial utilizada es un Perceptrón Multicapa (MLP), la estructura es multiconectada y tiene 117

Page 7: Reconocimiento de caracteres atravez de redes neuronales

entradas, una capa oculta con 50 neuronas y 10 salidas, estas salidas corresponden a los 10 posibles dígitos. El nivel de precisión que se obtiene con este tipo de red es muy alto (92,2% de aciertos, con solo 7,8% de fallos) cuando se entrena con un conjunto de ejemplos grande, tal como la base de datos de caracteres manuscritos de National Institute of Standars and Techonology [14] Palacios, R., & Gupta, A. (Mayo-Junio de 2003)

8. Herramienta a utilizar y descripción de la solución

8.1. Herramienta (IDE de desarrollo)

Lenguajes Empleados Y La Solución Del Mismo

El lenguaje utilizado para el desarrollo del presente proyecto será la herramienta de Visual Studio.NET 2005 C# algunas razones por las que escogí este leguaje las expongo a continuación.

Compila a código intermedio (CIL) independiente del lenguaje en que haya sido escrita la aplicación e independiente de la máquina donde vaya a ejecutarse

Capacidades de reflexión

No hay que preocuparse por archivos de cabecera ".h"

No importa el orden en que hayan sido definidas las clases ni las funciones

No hay necesidad de declarar funciones y clases antes de definirlas

Soporta definición de clases dentro de otras

No existen funciones, ni variables globales, todo pertenece a una clase

Todos los valores son inicializados antes de ser usados (automáticamente por defecto, o manualmente desde constructores estáticos)

No se pueden utilizar valores no booleanos (enteros, coma flotante...) para condicionales.

Es menos propenso a errores

9. Análisis de Aplicación

Los resultados que obtuvimos se realizaron en base al estudio, del algoritmo de Backpropagation. El funcionamiento se detalla a continuación:

9.1. Funcionamiento del Software Backpropagation

Este software permite especificar: la cantidad de capas de la red, la cantidad de neuronas de cada capa, la tasa de aprendizaje el tipo de función de activación y el uso o no de neuronas de tendencia.

Además permite parar el aprendizaje luego de una cierta cantidad de iteraciones, o cuando se haya llegado a un error global o por patrón predefinido.

Se muestra en tiempo real el error por patrón, lo que permite tener conocimiento sobre cómo evoluciona la red.

También es posible cargar un conjunto de patrones de prueba y observar la salida de la red junto con la salida deseada para cada uno de ellos, como así también la cantidad de aciertos y errores. Asimismo se identifican los patrones que fueron clasificados en forma errónea.

Selección de los conjuntos de entrenamiento y prueba

El archivo contiene un conjunto de 36 elementos entre los cuales tenemos letras (A hasta la Z) y números (0 hasta 9)

Estos ejemplos se dividieron en dos conjuntos mutuamente excluyentes: un conjunto de aprendizaje y otro conjunto de prueba.

En diferentes pruebas, se hizo variar el tamaño del conjunto de aprendizaje entre un 83% y un 99% del total de ejemplos disponibles, dejando los ejemplos restantes para el conjunto de prueba.

Se entrenaba a la red con el conjunto de aprendizaje y se realizaban pruebas con los ejemplos restantes.

Luego de diversas pruebas con distintas configuraciones de la red y tamaños de conjuntos de aprendizaje, se notó que existían ciertos patrones del conjunto de prueba que eran clasificados erróneamente por la red en forma recurrente

(Caso de la letra B y Q).

En algunos casos

Page 8: Reconocimiento de caracteres atravez de redes neuronales

como la A, he elegido patrones de distintos tipo me refiero a distintos tipos con distintas formas de representar esta letra. Así también con otras letras, con esto se podrá probar que tan eficiente es la red al momento de reconocer diferentes patrones que representen una sola letra. A continuación muestro una imagen de los distintos tipos de A que pueden reconocer la aplicación:

Como se convierte la imagen:

Para convertir la imagen a matriz se debe hacer cálculos, dividiendo su alto para 11, lo que nos dará el número de filas, y su ancho para 12 lo que nos dará el número de columnas. Además para colocar la imagen en el recuadro grande se agrande el ancho y altura de la imagen haciendo multiplicaciones. Esto podemos ver a continuación:

Como se calcula la Taza de Error:

ep2: Error medio cuadrático para cada patrón de salida

= Error en cada neurona de la capa d salida

En la aplicación podemos ver que se está calculando el error medio cuadrático para cada salida.

Descripción de Clases

BP1Capa.- En esta capa se realiza todo el proceso de recalculo de pesos, la implementación en si del algoritmo Backpropagatión de una capa, también aquí se realiza el cálculo del error medio cuadrático, se realiza la propagación hacia adelante y hacia atrás, y se hace el reconocimiento de caracteres.

BPBase.- Aquí se encuentran las variables a utilizar en el proyecto.

IBackPropagation.- En esta clase se declarar algunos métodos necesarios para la aplicación.

Red Neuronal.- En esta clase se realiza el proceso de entrenamiento a la red neuronal.

Interfaz.cs.- Contiene toda la interfaz de la aplicación, esta clase tiene métodos que permite presentar las imágenes, inicializar los componentes de la aplicación, hacer llamadas a otros métodos, y mostrar los resultados.

Procesar.- Esta clase es muy importante ya que convierte la imagen a matriz como se lo explico anteriormente, además esta clase posee un método para que una vez que la red reconozca el carácter pueda convertir esto a imagen y presentar en los resultados.

10. -. Evaluación:

La corresponde al uso del algoritmo backpropagation el cual contiene un conjunto de patrones que van a ser importados, para posteriormente entrenarlos y ver el resultado de cada uno.Vamos a crear una tabla que contenga todos los números y caracteres para comparar variables

Page 9: Reconocimiento de caracteres atravez de redes neuronales

como: error, iteración, tiempo y mejor resultado o (mayor probabilidad) Una vez tomados los datos de todas las variables de los caracteres y números, vamos a comparar cual de todos ellos posee niveles más altos de probabilidad en el resultado final obtenido rango (83 - 99) %Analizar finalmente que caracteres o números tienen problemas, es decir niveles bajos en la probabilidad de resultado obtenido (Menor al 60 %)

Tabla de datos de entrenamiento y prueba utilizando Algoritmo Backpropagation.

Letra/Núm. Error Iteración Tiempo Mejor Prob.

0 1.064 96 0.7 92%

1 1.073 95 0.6 96%

2 1.063 92 0.7 89%

3 1.058 118 0.6 85%

4 1.065 94 0.7 96%

5 1.062 112 0.6 95%

6 1.065 98 0.8 98%

7 1.062 95 0.6 93%

8 1.065 110 0.6 83%

9 1.064 88 0.8 92%

A 1.083 104 0.6 94%

B 1.069 123 0.7 30%

C 1.086 93 0.7 96%

D 1.07 102 0.9 99%

E 1.074 112 0.8 92%

F 1.084 117 0.7 94%

G 1.06 100 0.7 91%

H 1.073 92 0.6 91%

I 1.06 78 0.8 91%

J 1.09 89 0.8 93%

K 1.057 76 0.9 99%

L 1.096 93 0.8 95%

M 1.04 114 0.7 97%

N 1.063 90 0.7 94%

O 1.034 94 0.7 95%

P 1.054 78 0.9 93%

Q 1.01 69 0.8 56%

R 1.038 94 0.8 92%

S 1.05 86 0.9 96%

T 1.065 79 0.7 92%

U 1.056 107 0.7 99%

V 1.089 103 0.6 97%

W 1.099 98 0.6 98%

X 1.04 95 0.6 94%

Y 1.01 89 0.6 96%

Z 1.043 76 0.7 95%

Los datos que estamos presentando en la tabla de análisis de prueba corresponden a 36 datos en total, entre ellos números (0 hasta 9) y caracteres (A hasta la Z). Como podemos darnos cuenta en nuestro software se está analizando cuatro variables que son: error, iteración, tiempo y mejor resultado obtenido o (mayor probabilidad) para cada letra y numero ingresado por el usuario para su respectivo análisis.

10.1. Conclusiones sobre el análisis de datos:

Observación #1:

En el análisis obtenido de todos los números y letras, pudimos darnos cuenta de que existe un problema con la letra B, ya que al momento de entrenar esa letra se obtuvo un resultado de un 30% el cual es bajo y representa un problema de incompatibilidad de caracteres, porque en el panel de resultados existe conflicto con el número 3.

El problema existente se debe a que la estructura de la letra B con el número 3 es similar, lo cual presenta problemas al momento de realizar la fase de entrenamiento de la red, porque existe confusión de caracteres y por ende el resultado de probabilidad es bajo lo cual representa un resultado ambiguo.

Un resultado es óptimo y sus resultados son precisos, cuando están en el rango de aceptación comprendido entre (83 - 99) %.

Observación #2:

Otro de los resultados que se analizo es el de la letra Q que al igual que el caso anterior, esta presenta conflicto con la letra O ya que su estructura es similar.

Al momento de realizar la fase de entrenamiento se obtuvo un resultado de un 56% que es un resultado bajo igual al caso anterior.

Pese a que la letra O difiere de la Q, su estructura es similar y el resultado va a dar lugar a ambigüedades.

Observacion#3:

Todos los demás caracteres y números analizados al momento de pasar por la fase de entrenamiento y mostrar sus resultados finales la probabilidad del resultado final comprenden un rango de nivel de aceptación comprendido entre (83 - 99) % lo cual

Page 10: Reconocimiento de caracteres atravez de redes neuronales

representa un resultado óptimo de la imagen del carácter que estamos analizando.

11. Análisis comparativo entre los algoritmos Backpropagation y Hopfield

Para realizar este análisis comparativo hemos analizado dos algoritmos que son: Backpropagation y Hopfield como se puede apreciar en el siguiente cuadro:

Aspectos Hopfield Backpropagation

Complejidad en la implantación

Simple: Esto es debido al tipo de entrenamiento, una vez hecha la estructura de datos correspondiente solo resta por encontrar una buena configuración de patrones de entrenamiento.

Compleja: Ya que se requiere un tiempo considerable debido a la metodología prueba y error para la determinación de la cantidad de capas ocultas, números de neuronas en las mismas y valor de los factores de aprendizaje y momento.

Recursos computacionales

Mínimos: Todo el procesamiento en Hopfield se resume a cálculos matriciales.

Altos: Esto es respecto a la fase de entrenamiento, la cual requiere n iteraciones hasta que la red converja. Una vez entrenada la red, el funcionamiento <(reconocimiento) puede ejecutarse con recursos.

Rendimiento Según los experimentos realizados, Hopfield cuenta con un rendimiento favorable de tan solo el 50%.

Ante los mismos patrones de pruebas la BPN presento un rendimiento favorable del 100%.

12. Conclusiones

Si se realiza un aprendizaje con patrones de validación sin ruido los resultados nos muestran que el error en el aprendizaje disminuye de manera más rápida.

Si se realiza un aprendizaje con patrones de validación con ruido, el error en el aprendizaje disminuye más lentamente.

A mayor de cantidad de ciclos de aprendizaje, el error del mismo es mínimo.

La utilización de modelos de redes neuronales para dar soporte a la toma de decisiones es posible.

Recomendamos que la utilizada sea una red BPN, no una red Hopfield debido a las mejores prestaciones de la primera.

El algoritmo Backpropagation es más eficiente, pese a que calcula el error cuadrático medio y realiza un proceso de balanceo de carga entre los nodos de la red neuronal, lo que nos da un resultado en un menor tiempo que Hopfield.

Una aplicación de este tipo debe ser considerada como una herramienta más para ser utilizada por la persona encargada de tomar decisiones, no es posible delegar la toma de decisiones completamente a la aplicación, ya que existen factores subjetivos e implícitos.

Dado el tiempo relativamente corto que emplea la red para aprender, es recomendable reentrenarla periódicamente.

13. Referencias Bibliográficas:

[1] José Manuel Gutiérrez (Universidad de Cantabria), Introducción a las redes Neuronales.

http://personales.unican.es/gutierjm/docs/tut_RedesNeuro.pdf

[2] Jang J.-S.R., Sun C. –T., & Mizutani E. (1997). Neuro-Fuzzy and soft computing. A computational approach to learning and machine intelligence.

http://www.tesisenxarxa.net/TESIS_UPC/AVAILABLE/TDX-1102106-110455//13Mct13de15.pdf

[3] Alfonso Ballesteros (Malaga, España). Neural Network Famework. Computering Ingenieer by the University of Malaga.

http://www.redes-neuronales.netfirms.com/tutorial-redes-neuronales/tutorial-redes.htm[4] Gutiérrez, J. M. (9 de Marzo de 2000). Introducción a las Redes Neuronales. Retrieved 10 de Mayo de 2009 from José Manuel Gutiérrez Home Page:http://personales.unican.es/gutierjm/docs/tut_RedesNeuro.pdf[5] Aldabas Rubira, E. (n.d.). Introducción al Reconocimiento de Patrones mediante Redes Neuronales. Retrieved 02 de Mayo de 2009 from Universidad de Terrassa Barcelona:

Page 11: Reconocimiento de caracteres atravez de redes neuronales

http://www.jcee.upc.es/JCEE2002/Aldabas.pdf

[6] Basogain Olabe, X. (Diciembre de 2008). Redes Neuronales Artificiales y sus Aplicaciones. Retrieved 3 de Mayo de 2009 from Enseñanzas Técnicas:

http://ocw.ehu.es/ensenanzas-tecnicas/redes-neuronalesartificiales- y-sus aplicaciones/Course_listing

[7] Bernacki, M., & Wlodarczyk, P. (6 de Septiembre de 2004). Principles of training multi-layer neural network using backpropagation. From Academia Górniczo-Hutnicza:

http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html

[8] . Haykin (1999). Neural Networks. A Comprehensive Foundation, Prentice-hall.

[9] B. Widrow, R. Winter (2001). Neural nets for adaptive ltering and adaptive patterns recognition. IEEE Computer, Hopfield Architecture.

[10] K.I. Funahaski (2006). Description Hopfield . Neural networks.

http://gaia.fdi.ucm.es/people/pedro/aad/ivan_martinez.pdf

[11] P. García H. Rajchert I. Scena. Uso de una red neuronal multicapa para el reconocimiento de caracteres griegos.(4 de junio del 2008).http://svn.assembla.com/svn/iatp2/informe/informe.pdf.

[12] De Armas Domínguez, R. C., & Bautista Rodríguez, L. S. (3 de Noviembre de 2005). Reconocimiento automático de caracteres manuscritos y marcas, orientado al procesado de encuestas. Retrieved 7 de Mayo de 2009 from DiaMatlab UDES:

www.compelect.com.co/otros/diamatlab/2005/Ponencia16.pdf

[13] Bien Guillermo, Krein Diego, Rambo Alice. Analista de Sistemas de Computación Instituto Gastón Dacharhttp://www.sappiens.com/pdf/comunidades/informatica/InformeRedesNeuronales.pdf

[14] Palacios, R., & Gupta, A. (Mayo-Junio de 2003). Sistema de Reconocimiento de Caracteres para la lectura automática de cheques. Retrieved 7 de Mayo de 2009 from Asociación / Colegio Nacional de Ingenieros del ICAI:

https://www.icai.es/contenidos/publicaciones/anales_get.php?id=536

Recursos Adicionales

http://www.heatonresearch.com/articles/61/page1.html

http://www.ibrtses.com/delphi/neuralnets.html