Este documento describe la implementación de redes neuronales para el reconocimiento de caracteres a través de los algoritmos backpropagation y Hopfield. El autor implementará estas redes neuronales para reconocer letras del alfabeto latino durante las fases de entrenamiento y reconocimiento, y comparará los resultados de ambos algoritmos para determinar cuál es más eficiente y rápido. El objetivo final es demostrar la efectividad de estas técnicas para el reconocimiento automático de caracteres.
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Reconocimiento de caracteres con redes neuronales
1. APLICACIÓN PARA RECONOCIMIENTO DE CARACTERES A TRAVÉS DE
REDES NEURONALES
Luis Feijoo
Teléfono: 2571753
Loja - Av. Paltas y Estados Unidos.
Mail: lafeijoo@utpl.edu.ec, luisfe101@hotmail.com
1. Abstract realizar el proceso de aprendizaje y
El presente trabajo describe como implementar reconocimiento de caracteres
redes neuronales para el reconocimiento de comprendidos entre la A hasta la Z.
caracteres. Lo que pretendo demostrar es la
• Implementación de una red neuronal que
eficiencia en cuanto a dos algoritmos:
usa el algoritmo de Hopfield para realizar el
Backpropagation y Hopfield, con eficiencia me
proceso de aprendizaje y reconocimiento de
refiero a que implementaré estos dos algoritmos
caracteres comprendidos entre la A hasta la
para reconocer caracteres alfabéticos, como las
Z.
letras del abecedario, a través de la fase de
entrenamiento de dichos algoritmos sabré cual • Comparación en el funcionamiento y
es el más optimo y el que menor tiempo se resultados finales obtenidos durante la fase
demora a la hora de reconocer un carácter que de entrenamiento de los dos algoritmos
ingresare por teclado en una interfaz. Al final nombrados anteriormente.
obtendré un cuadro comparativo acerca de
• Utilización de la técnica de aprendizaje
estos dos algoritmos y esto a su vez me
supervisado y no supervisado, a fin de
permitirá concluir sobre la eficiencia de los
obtener resultados y hacer comparaciones
algoritmos nombrados anteriormente.
en eficiencia más precisos y reducir el error
2. Introducción al máximo.
Muchas personas, empresas o instituciones 4. Descripción del Problema:
disponen de gran cantidad de información de
En la actualidad vivimos en un mundo
forma impresa y desean procesar esta
totalmente digitalizado en el cual necesitamos
información utilizando un computador, lo
como usuarios y empresarios tener márgenes
pueden realizar de dos maneras: la primera
de seguridad en los negocios y transacciones
opción es que toda la información deben
que realizamos para lo cual nosotros mediante
digitarla a través de teclado, lo cual es un
la implementación de un agente para
trabajo largo, y si la información es abundante
reconocimiento de caracteres que van a ir
quizá el periodo de tiempo para digitar esta
desde la letra A hasta la F, no elegimos demás
información sea demasiado largo. La segunda
letras porque se va a generar una red neuronal
opción es hacer automáticamente este proceso
sumamente grande que luego se va a encontrar
a través de reconocimiento de caracteres, lo
inconveniente en su generación, voy a utilizar
cual sin duda alguna facilita las cosas y el
los algoritmos backpropagation y hopfield para
tiempo. El reconocimiento de caracteres
crear este agente reconocedor de caracteres, el
engloba un conjunto de métodos y algoritmos
cual va a pasar por una fase de entrenamiento y
que los describiré más adelante, los cuales
reconocimiento a fin de obtener el resultado
permiten realizar una fase de entrenamiento
optimo. Esto se realiza con el fin de mostrar el
que a la final permitirán reconocer de forma
proceso para lograr el objetivo que es reconocer
automática caracteres. Cabe recalcar que el
el carácter que ingresemos, y además mostrar
reconocimiento de caracteres no solo se utiliza
cual de los dos algoritmos lo hace al proceso
para reconocimiento de textos escritos sino
más eficiente y en menos tiempo. Por tal razón
tiene muchas aplicaciones como lo veremos en
me he propuesto realizar la construcción, y
el presente documento.
funcionamiento de un agente capaz de
3. Objetivos reconocer caracteres.
• Implementación de una red neuronal que 5. Justificación
usa el algoritmo de backpropagation para
2. 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 Figura # 1.- Estructura de una red neuronal humana
redes neuronales multicapa backpropagation ha
6.2. Definición de Redes Neuronales
alcanzado una gran popularidad y es el nuevo
paradigma para el diseño de los sistemas de Una red neuronal artificial (RNA) es un sistema
reconocimiento que dominan el campo. compuesto de muchos elementos procesadores
simples, neuronas, conectados en paralelo, cuya
En mi caso utilizaré los algoritmos
función es determinada por la estructura de la red,
Backpropagation y Hopfield ya que el primer
la fuerza en las conexiones y el procesamiento
algoritmo posee una técnica de aprendizaje
realizado por los elementos en los nodos. [2] (Jang
automático la cual nos va a permitir obtener
et al. 1997).
resultados óptimos minimizando el error
6.3. Estructura de una Red Neuronal Artificial
cuadrático y así obteniendo la letra más
En este apartado abordaré la estructura más
parecida a la cual nosotros estamos simulando
común de las redes neuronales artificiales en base
mediante la fase de entrenamiento.
a dos perspectivas:
El segundo algoritmo a utilizar es el de Hopfield, 1.-Niveles de neuronas.- La distribución de las
el cual utiliza aprendizaje no supervisado ya que neuronas en una red neuronal se realiza formando
no realiza ningún proceso de balanceo de carga capas o niveles, y cada capa tiene un número
en los nodos, ni verificación del error cuadrático determinado de neuronas cada una, se pueden
medio entre los nodos de la red neuronal, por lo presentar tres tipos de capas diferentes:
cual al momento de entrenar la red neuronal, De entrada: estas capas reciben la información
tardara un poco más en mostrar los resultados. desde el exterior.
La necesidad de tener sistemas de De Salida: estas envían la información hacia el
reconocimiento automático o semiautomático de exterior
caracteres ha sido reconocida por décadas, lo Ocultas: son capas que solo sirven para procesar
que ha requerido el desarrollo e integración de información y comunicar otras Capas.
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 Figura # 2 Estructura de Red Neuronal
una señal a otras neuronas por medio del axón. Según algunos autores, las capas de entrada y de
[1] (Jos é Manuel Guti érrez (Universidad de salida no son validas para producir procesamiento,
Cantabria)) 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
3. sinapsis, pueden conectarse de tres formas patrones parecidos. Normalmente se usa el error
diferentes: cuadrático medio para determinar la similitud,
Unión Todos con Todos: Este tipo de unión es muy aunque hay otras opciones. [3] Alfonso
común lo utilizan algoritmos como Hopfield, Ballesteros (Málaga, España).
backpropagation, perceptron. 6.6. El Perceptron
Unión Lineal: Consiste en unir cada neurona con Se lo define como aquella red neuronal constituida
otra neurona de la otra capa de dos capas (una de entrada y una de salida) con
Predeterminado: Este tipo de conexionado aparece conexiones hacia delante. El primer nivel está
en redes que tienen la propiedad de agregar o compuesto por un número de unidades de entrada,
eliminar neuronas de sus capas y de eliminar denominadas unidades sensoriales. El segundo
también conexiones. nivel está compuesto por un número de unidades
de salida, denominadas unidades de asociación,
6.4. Características Generales de las redes cuyas entradas son las salidas de las unidades de
Neuronales entrada ponderadas por unos pesos. Las unidades
• Pesos: Estos pesos ayudan a ajustar el de entrada tienen una sola entrada correspondiente
valor de la fuerza de conexión entre las a una de las entradas a la red, y una sola salida.
neuronas. Estas unidades transmiten la señal que aparece en
• Aprendizaje: Puede ser aprendizaje su entrada. Para nuestro objetivo nos centraremos
supervisado y no supervisado, estos en los perceptrones multicapas. [4] (Gutiérrez,
conceptos los trataremos más adelante. 2000)
• Fase de operación: Aquí nos referimos a la 6.7. Perceptron Multicapa
fase de entrenamiento la cual consiste en Identifica a las redes con múltiples capas que
proporcionar estímulos de entrada y salida funcionan hacia delante. Esta red se encuentra
para que una red se ajuste a los pesos de compuesta por un conjunto de nodos de entrada
conexión con las demás neuronas y así se que componen la capa de entrada, un conjunto de
logre minimizar el error. una o más capas ocultas de neuronas y una capa
de neuronas de salida. La señal de entrada se
• Necesitan un patrón: Las redes neuronales
propaga hacia adelante desde la capa de entrada
no son capaces de reconocer nada que no
por la oculta hasta la
tenga algún tipo de patrón.
salida; este tipo de configuración se conoce como
6.5. Aprendizaje
MLP o “MultiLayer Perceptrons”. [5](Aldabas
Aprendizaje Supervisado: En este tipo de
Rubira, 2003)
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 6.8. Tipos de Redes Neuronales a utilizar en este
formula matemática, la cual ajusta los pesos para proyecto:
dar la salida real lo más parecida posible a la salida Backpropagation.- El algoritmo
deseada. Las aplicaciones más importantes para backpropagation se usa en el proceso de
este tipo de aprendizaje es Asociadores de aprendizaje de las redes neuronales multicapa.
patrones, esto es asocia dos patrones y permite Su potencia reside en su capacidad de entrenar
recuperar la información a pesar de errores en la capas ocultas y de este modo supera las
capa de entrada. Modeladores funcionales, las posibilidades restringidas de las redes de una
redes neuronales permiten, gracias a su capacidad única capa, las mismas que únicamente dan
de ajustar el error dar los valores más cercanos a solución a problemas linealmente separables,
una función de la que solo sabemos algunos puntos en el mundo real, la mayoría de problemas no
por los que pasa son linealmente separables. [6] (Basogain
Olabe, 2008)
Aprendizaje no supervisado: Este tipo de
Descripción del proceso
aprendizaje no necesita que le mostremos los
patrones objetivos para salida, ya que el algoritmo y Según [7] (Bernacki & Wlodarczyk, 2004), se
la regla de modificación de las conexiones muestra una red neuronal con una capa de
producen patrones de salida consistentes. Cuando neuronas de entrada, una capa intermedia u
la red procesa patrones con bastante grado de oculta y una capa de salida. Todas las neuronas
similitud, da la misma salida para ambos patrones, de cada capa deben estar conectadas a todas
esto es, clasifica los patrones en categorías de las neuronas de la siguiente capa.
4. neuronal, restando el valor de salida final del
valor de salida deseado.
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
Figura#4 Red neuronal de tres capas con dos hacia la capa oculta se muestra en la figura #8.
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 Figura#7. Propagación de la señal de error
salida de la neurona actual, y el valor de hacia la capa de atrás.
entrada para las de las capas subsiguientes.
Los dos componentes se muestran en la figura 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
Figura#5. En la parte superior se indica la
entrenamiento.
asignación de los pesos de entrada a la función,
en la grafica de la parte inferior se muestra la Son modo capa con interconexión total y en la
función no lineal. que el valor de salida de cada unidad es binario
(0 y 1) y siguen una regla de aprendizaje no
Las señales de entrada se propagan por la capa
supervisado.
oculta y por la capa de salida, de acuerdo a los
pesos 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
Figura #6. Propagación de las señales por la ajusta los pesos de sus interconexiones
capa de salida. utilizando solamente los estímulos y la salida
calculada por la red
Al llegar a la capa de salida de la red, se calcula
el error d de la capa de salida de la red Están formadas por N neuronas interconectadas
que actualizan sus valores de activación en
forma independiente.
5. Es buena para resolver problemas de Preprocesamiento
optimización.
• Primero se carga las imágenes
Llega a un estado estable, cuando todas las
neuronas son estables. • Se procesa la imagen y se la ubica en
una matriz dando 2 valores posibles 1 y
En la siguiente figura se muestra la arquitectura -1
del modelo Hopfield
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:
Adaptative Learning Rate
Adapta 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.
Momentum
La actualización de pesos toma en cuenta el
valor del cambio producido en la época
Figura#8: Arquitectura del modelo Hopfield anterior. [11] P. García H. Rajchert I.
Una característica importante de este modelo es Scena..(4 de junio del 2008).
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 #1 Figura # 9 Reconocimiento de caracteres
Uso de una red neuronal multicapa para el griegos.
reconocimiento de caracteres griegos. Trabajo #2
En este trabajo realizado en el 2008 se propone Procesado de encuestas
la creación de una red multicapa con
aprendizaje supervisado. La arquitectura de Otro trabajo similar es el reconocimiento de
esta red es como se detalla a continuación: caracteres y marcas orientado al procesado de
encuestas, detallado en [12] (De Armas
• Alfabeto de 24 caracteres. Domínguez &Bautista Rodríguez, 2005), donde
• Imágenes de 16 x 16 pixeles también se utiliza redes neuronales para el
propósito ya mencionado. Se describe que para la
• Capa de entrada 256 x pixel clasificación de descriptores dentro del módulo de
reconocimiento de caracteres se ha realizado una
• Capa de salida 24 neuronas, 1 x letra.
selección de redes neuronales para cada tipo de
• 2 Capas ocultas caracteres: alfabéticos, numéricos y alfanuméricos;
todas las redes tienen 42 neuronas en la capa de
• Todas las neuronas están conectadas
entrada, se entrenaron con 19 tipos de caracteres y
con la capa superior. luego se validaron con otros 11 tipos. La
6. 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.
Figura # 10 Aprendizaje con redes Hopfield
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
Trabajo #4
reconocimiento de caracteres generó el 10,08% Lectura automática de cheques
de errores probando con 15 hojas de encuesta En (Palacios & Gupta, 2003) se muestra el
y generó una precisión del 100% con otras desarrollo de un sistema de reconocimiento de
pruebas realizadas con 50 hojas de encuesta. caracteres para la lectura automática de cheques,
en el cual se describe
Trabajo # 3 la utilización de técnicas basadas en redes
Reconocimiento de Imágenes con algoritmo neuronales para la lectura del valor del cheque. El
Hoplfiel en Salta – Argentina. módulo de reconocimiento de dígitos utiliza una
serie de algoritmos de normalización y un
Se planteó el aprendizaje de tres patrones de 10 clasificador. El clasificador que se utiliza está
*10 ingresados por diferentes métodos, para luego basado en redes neuronales, por su rapidez y
determinar el reconocimiento de un patrón de porque ofrece buenos resultados en el
entrada ingresado con niveles de corrupción o reconocimiento de caracteres. La red neuronal
falencia de datos variables, para así poder artificial utilizada es un Perceptrón Multicapa (MLP),
determinar el comportamiento de la Red Neuronal la estructura es multiconectada y tiene 117
ante distintas contigencias y su porcentaje de entradas, una capa oculta con 50 neuronas y 10
reconocimiento de patrones. salidas, estas salidas corresponden a los 10
Este trabajo está compuesto por cuatro aspectos posibles dígitos. El nivel de precisión que se obtiene
básicos: con este tipo de red es muy alto (92,2% de aciertos,
con solo 7,8% de fallos) cuando se entrena con un
Topología: Es una red monocapa con conexiones conjunto de ejemplos grande, tal como la base de
laterales no recurrentes, esto quiere decir que solo datos de caracteres manuscritos de National
se tiene una capa de neuronas que se encuentran Institute of Standars and Techonology [14] Palacios,
conectadas entre sí pero no con ellas mismas R., & Gupta, A. (Mayo-Junio de 2003)
Aprendizaje : No supervisado
Tipo de Asociación entre la información de 8. Herramienta a utilizar y descripción de la
entrada y la salida: La función de activación de solución
cada neurona (i) de la red (f(x)) es de tipo escalón. 8.1. Herramienta (IDE de desarrollo)
Trabaja con los valores binarios –1 y +1
Representación de la Información: Previamente Lenguajes Empleados Y La Solución Del
codificada y representada en forma de vector como Mismo
una configuración binaria “red discreta”. [13] ( Bien El lenguaje utilizado para el desarrollo del
Guillermo, Krein Diego, Rambo Alice) 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
7. • No hay que preocuparse por archivos de El archivo contiene un conjunto de 36 elementos
cabecera ".h" entre los cuales tenemos letras (A hasta la Z) y
• No importa el orden en que hayan sido números (0 hasta 9)
definidas las clases ni las funciones
Estos ejemplos se dividieron en dos conjuntos
• No hay necesidad de declarar funciones y mutuamente excluyentes: un conjunto de
clases antes de definirlas
aprendizaje y otro conjunto de prueba.
• Soporta definición de clases dentro de otras
En diferentes pruebas, se hizo variar el tamaño del
• No existen funciones, ni variables globales,
todo pertenece a una clase conjunto de aprendizaje entre un 83% y un 99% del
total de ejemplos disponibles, dejando los ejemplos
• Todos los valores son inicializados antes de
restantes para el conjunto de prueba.
ser usados (automáticamente por defecto, o
manualmente desde constructores estáticos)
Se entrenaba a la red con el conjunto de
• No se pueden utilizar valores no booleanos aprendizaje y se realizaban pruebas con los
(enteros, coma flotante...) para ejemplos restantes.
condicionales.
• Es menos propenso a errores Luego de diversas pruebas con distintas
configuraciones de la red y tamaños de conjuntos
9. Análisis de Aplicación
de aprendizaje, se notó que existían ciertos
Los resultados que obtuvimos se realizaron en base patrones del conjunto de prueba que eran
al estudio, del algoritmo de Backpropagation. El clasificados erróneamente por la red en forma
funcionamiento se detalla a continuación: recurrente (Caso de la letra B y Q).
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
En algunos casos como la A, he elegido patrones
llegado a un error global o por patrón predefinido.
de
Se muestra en tiempo real el error por patrón, lo distintos
que permite tener conocimiento sobre cómo tipo me
evoluciona la red. refiero a
distintos
También es posible cargar un conjunto de patrones tipos con
de prueba y observar la salida de la red junto con la distintas
salida deseada para cada uno de ellos, como así formas de
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
8. representar esta letra. Así también con otras letras,
con esto se podrá probar que tan eficiente es la red = Error en cada neurona de la capa d salida
al momento de reconocer diferentes patrones que
En la aplicación podemos ver que se está
representen una sola letra. A continuación muestro
calculando el error medio cuadrático para cada
una imagen de los distintos tipos de A que pueden
salida.
reconocer la aplicación:
Descripción de Clases
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:
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
ep2: Error medio cuadrático para cada patrón de presentar las imágenes, inicializar los componentes
salida de la aplicación, hacer llamadas a otros métodos, y
mostrar los resultados.
9. Procesar.- Esta clase es muy importante ya que F 1.084 117 0.7 94%
convierte la imagen a matriz como se lo explico G 1.06 100 0.7 91%
anteriormente, además esta clase posee un método H 1.073 92 0.6 91%
para que una vez que la red reconozca el carácter I 1.06 78 0.8 91%
pueda convertir esto a imagen y presentar en los J 1.09 89 0.8 93%
resultados. K 1.057 76 0.9 99%
L 1.096 93 0.8 95%
10. -. Evaluación:
M 1.04 114 0.7 97%
La corresponde al uso del algoritmo N 1.063 90 0.7 94%
backpropagation el cual contiene un conjunto de O 1.034 94 0.7 95%
patrones que van a ser importados, para P 1.054 78 0.9 93%
posteriormente entrenarlos y ver el resultado de Q 1.01 69 0.8 56%
cada uno. R 1.038 94 0.8 92%
S 1.05 86 0.9 96%
Vamos a crear una tabla que contenga todos los
T 1.065 79 0.7 92%
números y caracteres para comparar variables
U 1.056 107 0.7 99%
como: error, iteración, tiempo y mejor resultado o
V 1.089 103 0.6 97%
(mayor probabilidad)
W 1.099 98 0.6 98%
Una vez tomados los datos de todas las variables X 1.04 95 0.6 94%
de los caracteres y números, vamos a comparar Y 1.01 89 0.6 96%
cual de todos ellos posee niveles más altos de Z 1.043 76 0.7 95%
probabilidad en el resultado final obtenido rango (83
- 99) %
Los datos que estamos presentando en la tabla de
Analizar finalmente que caracteres o números análisis de prueba corresponden a 36 datos en
tienen problemas, es decir niveles bajos en la total, entre ellos números (0 hasta 9) y caracteres
probabilidad de resultado obtenido (Menor al 60 %) (A hasta la Z). Como podemos darnos cuenta en
nuestro software se está analizando cuatro
Tabla de datos de entrenamiento y prueba variables que son: error, iteración, tiempo y mejor
utilizando Algoritmo Backpropagation. resultado obtenido o (mayor probabilidad) para
cada letra y numero ingresado por el usuario para
Letra/Núm. Error Iteración Tiempo Mejor Prob.
su respectivo análisis.
0 1.064 96 0.7 92%
1 1.073 95 0.6 96% 10.1.Conclusiones sobre el análisis de datos:
2 1.063 92 0.7 89%
3 1.058 118 0.6 85%
Observación #1:
4 1.065 94 0.7 96%
En el análisis obtenido de todos los números y
5 1.062 112 0.6 95% letras, pudimos darnos cuenta de que existe un
6 1.065 98 0.8 98% problema con la letra B, ya que al momento de
7 1.062 95 0.6 93% entrenar esa letra se obtuvo un resultado de un
8 1.065 110 0.6 83% 30% el cual es bajo y representa un problema de
9 1.064 88 0.8 92% incompatibilidad de caracteres, porque en el panel
A 1.083 104 0.6 94% de resultados existe conflicto con el número 3.
B 1.069 123 0.7 30%
C 1.086 93 0.7 96% El problema existente se debe a que la estructura
D 1.07 102 0.9 99%
de la letra B con el número 3 es similar, lo cual
E 1.074 112 0.8 92%
presenta problemas al momento de realizar la fase
de entrenamiento de la red, porque existe confusión
10. de caracteres y por ende el resultado de momento.
probabilidad es bajo lo cual representa un resultado
ambiguo. Recursos Mínimos: Todo el Altos: Esto es
computacion procesamiento en respecto a la fase de
Un resultado es óptimo y sus resultados son ales Hopfield se resume a entrenamiento, la cual
cálculos matriciales.
precisos, cuando están en el rango de aceptación requiere n iteraciones
hasta que la red
comprendido entre (83 - 99) %.
converja.
Observación #2: Una vez entrenada la
red, el funcionamiento
Otro de los resultados que se analizo es el de la <(reconocimiento)
letra Q que al igual que el caso anterior, esta puede ejecutarse con
recursos.
presenta conflicto con la letra O ya que su
estructura es similar. Rendimiento Según los Ante los mismos
experimentos patrones de pruebas
realizados, Hopfield la BPN presento un
Al momento de realizar la fase de entrenamiento se cuenta con un rendimiento favorable
obtuvo un resultado de un 56% que es un resultado rendimiento favorable del 100%.
bajo igual al caso anterior. de tan solo el 50%.
Pese a que la letra O difiere de la Q, su estructura
es similar y el resultado va a dar lugar a 12. Conclusiones
ambigüedades. Si se realiza un aprendizaje con patrones de
validación sin ruido los resultados nos muestran
Observacion#3:
que el error en el aprendizaje disminuye de manera
Todos los demás caracteres y números analizados más rápida.
al momento de pasar por la fase de entrenamiento y
mostrar sus resultados finales la probabilidad del Si se realiza un aprendizaje con patrones de
resultado final comprenden un rango de nivel de validación con ruido, el error en el aprendizaje
aceptación comprendido entre (83 - 99) % lo cual disminuye más lentamente.
representa un resultado óptimo de la imagen del
carácter que estamos analizando. A mayor de cantidad de ciclos de aprendizaje, el
error del mismo es mínimo.
11. Análisis comparativo entre los algoritmos
Backpropagation y Hopfield La utilización de modelos de redes neuronales para
dar soporte a la toma de decisiones es posible.
Para realizar este análisis comparativo hemos
analizado dos algoritmos que son:
Recomendamos que la utilizada sea una red BPN,
Backpropagation y Hopfield como se puede
no una red Hopfield debido a las mejores
apreciar en el siguiente cuadro:
prestaciones de la primera.
Aspectos Hopfield Backpropagation
El algoritmo Backpropagation es más eficiente,
Complejidad Simple: Esto es debido Compleja: Ya que se
en la al tipo de requiere un tiempo pese a que calcula el error cuadrático medio y
implantación entrenamiento, una vez considerable debido a realiza un proceso de balanceo de carga entre los
la metodología
hecha la estructura de nodos de la red neuronal, lo que nos da un
prueba y error para la
datos correspondiente determinación de la resultado en un menor tiempo que Hopfield.
solo resta por encontrar cantidad de capas
una buena ocultas, números de
configuración de neuronas en las Una aplicación de este tipo debe ser considerada
patrones de mismas y valor de los como una herramienta más para ser utilizada por la
factores de
entrenamiento. persona encargada de tomar decisiones, no es
aprendizaje y
11. posible delegar la toma de decisiones network using backpropagation. From Academia
completamente a la aplicación, ya que existen Górniczo-Hutnicza:
factores subjetivos e implícitos. http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backpro
p.html
Dado el tiempo relativamente corto que emplea la [8] . Haykin (1999). Neural Networks. A
red para aprender, es recomendable reentrenarla Comprehensive Foundation, Prentice-hall.
periódicamente.
[9] B. Widrow, R. Winter (2001). Neural nets for
adaptive ltering and adaptive patterns recognition.
IEEE Computer, Hopfield Architecture.
13. Referencias Bibliográficas:
[10] K.I. Funahaski (2006). Description Hopfield .
[1] José Manuel Gutiérrez (Universidad de Neural networks.
Cantabria), Introducción a las redes Neuronales.
http://gaia.fdi.ucm.es/people/pedro/aad/ivan_martin
http://personales.unican.es/gutierjm/docs/tut_Redes ez.pdf
Neuro.pdf
[2] Jang J.-S.R., Sun C. –T., & Mizutani E. (1997).
Neuro-Fuzzy and soft computing. A computational [11] P. García H. Rajchert I. Scena. Uso de una red
approach to learning and machine intelligence. neuronal multicapa para el reconocimiento de
caracteres griegos.(4 de junio del 2008).
http://www.tesisenxarxa.net/TESIS_UPC/AVAILABL http://svn.assembla.com/svn/iatp2/informe/informe.p
E/TDX-1102106-110455//13Mct13de15.pdf df.
[3] Alfonso Ballesteros (Malaga, España). Neural
Network Famework. Computering Ingenieer by the [12] De Armas Domínguez, R. C., & Bautista
University of Malaga. Rodríguez, L. S. (3 de Noviembre de 2005).
Reconocimiento automático de caracteres
manuscritos y marcas, orientado al procesado de
http://www.redes-
encuestas. Retrieved 7 de Mayo de 2009 from Dia
neuronales.netfirms.com/tutorial-redes- Matlab UDES:
neuronales/tutorial-redes.htm
[4] Gutiérrez, J. M. (9 de Marzo de 2000). Introducción a www.compelect.com.co/otros/diamatlab/2005/Ponencia1
las Redes Neuronales. Retrieved 10 de Mayo de 2009 6.pdf
from José Manuel Gutiérrez Home Page:
http://personales.unican.es/gutierjm/docs/tut_RedesNeuro [13] Bien Guillermo, Krein Diego, Rambo Alice.
.pdf Analista de Sistemas de Computación Instituto
[5] Aldabas Rubira, E. (n.d.). Introducción al Gastón Dachar
Reconocimiento de Patrones mediante Redes Neuronales. http://www.sappiens.com/pdf/comunidades/informatica/I
Retrieved 02 de Mayo de 2009 from Universidad de nformeRedesNeuronales.pdf
Terrassa Barcelona:
http://www.jcee.upc.es/JCEE2002/Aldabas.pdf
[14] Palacios, R., & Gupta, A. (Mayo-Junio de 2003).
[6] Basogain Olabe, X. (Diciembre de 2008). Redes Sistema de Reconocimiento de Caracteres para la lectura
Neuronales Artificiales y sus Aplicaciones. automática de cheques. Retrieved 7 de Mayo de 2009
Retrieved 3 de Mayo de 2009 from Enseñanzas from Asociación / Colegio Nacional de Ingenieros del
Técnicas: ICAI:
http://ocw.ehu.es/ensenanzas-tecnicas/redes-
neuronalesartificiales- y-sus https://www.icai.es/contenidos/publicaciones/anales_get.
aplicaciones/Course_listing php?id=536
[7] Bernacki, M., & Wlodarczyk, P. (6 de Septiembre
de 2004). Principles of training multi-layer neural
Recursos Adicionales