Reconocimiento de Dígitos Manuscritos usando la Dase de Datos MNIST
1. 1
Resumen—En este reporte se han entrenado y probado un
conjunto de clasificadores para dar solución al problema del
reconocimiento de dígitos manuscritos. Se han utilizado vectores
verticales y horizontales para la reducción de dimensionalidad y
se han entrenado modelos con las características obtenidas
usando SVM, KNN, Perceptron Multicapa y Random Forest. La
menor tasa de error obtenida fue de 3.6% usando RandonForest
con una configuración de 120 árboles y 68 características
evaluadas.
Index Terms— Reconocimiento de dígitos, MNIST, Perceptron
Multicapa, Bayes, Random Forest.
I. INTRODUCCIÓN
l reconocimiento de dígitos manuscritos es un sub
problema del reconocimiento de caracteres, en donde se
necesita determinar para una imagen de un manuscrito que
numero del 0 al 9 le corresponde como categoría.
Al ser uno de los problemas fundamentales en el diseño de
sistemas de reconocimiento prácticos, el reconocimiento de
dígitos es un campo activo de investigación. Las aplicaciones
inmediatas de las técnicas de reconocimiento de dígitos
incluyen ordenamiento de correo automático, lectura
automática de direcciones, control de transacciones bancarias,
etc.
Existen muchos enfoques de extracción de características
que intentan mejorar la habilidad de predicción [1]. En [2] se
presentan distintos desafíos presentes en el reconocimiento de
dígitos como el hecho de que algunos de estos se pueden
confundir fácilmente debido a la similitud de sus
características primitivas y su estructura. La complejidad
puede venir también del hecho de que las imágenes de los
dígitos tengan algún tipo de ruido, deformación o mala
segmentación del carácter.
En este reporte se han entrenado y probado un conjunto de
clasificadores para dar solución al problema del
reconocimiento de dígitos manuscritos. Se han utilizado
vectores verticales y horizontales para la reducción de
dimensionalidad y se han entrenado modelos con las
características obtenidas usando Perceptron Multicapa,
BayesNet, KNN y Random Forest. Finalmente, se presentan
los resultados comparativos en base a tiempo y precisión.
El proceso realizado se describe en el siguiente gráfico, que
discrimina tres fases para el entrenamiento y para la
clasificación:
Figura 1: Etapas en la elaboración del modelo de aprendizaje.
Preprocesamiento: El preprocesamiento implica etapas de
normalización y limpieza de los datos que serán utilizados
como entrada para la siguiente etapa.
Extracción, selección y medición de características: En el
entrenamiento, la extracción y selección de características
permitirá entrenar el modelo con el conjunto de datos de
entrenamiento. La selección realizada se basa en la
experimentación con varias configuraciones hasta encontrar
el menor error posible.
Aprendizaje y clasificación: Durante el entrenamiento, las
características seleccionadas serán utilizadas para que el
sistema aprenda e infiera un modelo que luego, durante la
prueba, servirá para predecir a que clase (clasificar)
pertenece cada elemento que se esté evaluando.
II. DESCRIPCIÓN Y PREPROCESAMIENTO DE LOS
DATOS
La base de datos MNIST contiene 60,000 dígitos del cero al
nueve para entrenar el sistema de reconocimiento y además
otros 10,000 dígitos para ser usados como datos de prueba.
Reconocimiento de Dígitos Manuscritos usando
la Dase de Datos MNIST
Alvaro Tolentino – Emilio García – Gregory Valderrama – Javier Crisostomo – Miguel Koo
Pontificia Universidad Católica del Perú, Lima - Perú
E
2. 2
Cada digito esta normalizado y centrado en una imagen en
escala de grises de 28 x 28 pixeles. Se muestran algunos
ejemplos a continuación:
Figura 2: Imágenes de ejemplo de la base de datos MNIST.
Dada la normalización de los datos indicada anteriormente,
no se realizaron mayores cambios con respecto al
posicionamiento de las imágenes.
Sin embargo se aplicaron dos técnicas para binarizar y
comprimir las imágenes, debido a que algunos de los pixeles
en los bordes eran grises claros y además la imagen a tamaño
normal representaba aun una cantidad alta de dimensiones:
Binarización mediante Otsu: El método de Otsu trata de
encontrar un límite óptimo para que el objeto del clúster
segmentado, así como el clúster de background sean lo
más ajustado posible, es decir, trata de minimizar la
varianza combinada dentro de la clase. Por el contrario, el
límite trata de maximizar la varianza entre clases [3].
Supongamos que la imagen está representada por niveles
de gris L, [0, L1]. Cualquier límite T divide los píxeles en
la imagen en dos grupos, digamos C(t) y C(t) que consiste
en los niveles de gris de los intervalos [0,t1] y [t,L1]).[10]
Supongamos que N representa el número total de píxeles
de la imagen y N(t) denota el número total de píxeles en
la agrupación i.
El método de Otsu encuentra el límite T usando la
siguiente ecuación: [3]:
Dónde:
Representan los niveles de grises de
respectivamente y
Transformación de Weblet Haar:
El wavelet de Haar es una secuencia de funciones
propuesta por Alfred Haar [9]. Haar usó estas funciones
para dar un ejemplo de un sistema ortonormal contable
para el espacio de las funciones de cuadrado integrable en
la recta real. [10,11]
Para poder realizar una transformada 2dimensional de
Haar de una imagen NxN el número de adiciones
requeridas es de sin multiplicaciones
requeridas. La transformada de Haar puede ser generada
usando la función [13] descrita como:
y su función escalar puede ser descrita como:
La matriz de Haar de 2 x 2 que está asociada con el
wavelet de Haar es:
Usando la transformada wavelet discreta, cualquier
secuencia de cualquier longitud
puede ser transformada en una secuencia de dos
componentes vectoriales: . Si
cada vector es multiplicado por la derecha con la matriz
H2, se obtiene el resultado de una
etapa de la transformada rápida de wavelet de Haar.
Usualmente se separan las secuencias s y d, y continúa
transformando la secuencia s.
Si tenemos una secuencia de longitud múltiplo de cuatro,
se pueden construir bloques de 4 elementos y
transformarlos de forma sencilla con la matriz de Haar de
4x4
La cual combina dos etapas de la transformada rápida del
wavelet de Haar.
Luego de aplicar ambos algoritmos, la imagen resultante
tenía una dimensión reducida de 28x28 a 16x16 y los valores
de cada entrada se habían normalizado entre 0 y 1, un ejemplo
se muestra a continuación:
Figura 3: Imagen del numero manuscrito usada como entrada (a la
izquierda) e imagen de salida (a la derecha, en negro), luego de aplicar
binarización mediante Otsu y compresión de Weblet Haar.
3. 3
III. EXTRACCIÓN DE CARACTERISTICAS
Debido a que el número original de dimensiones es bastante
alto (un total de 784) la reducción de dimensionalidad fue
necesaria. Primero se extrajeron los componentes
principales de toda la data.
Principal Component Analysis: PCA es una técnica
de transformación que tiene como objetivo identificar
los principales factores que explican las diferencias
en los datos. La identificación de estos factores
conduce a una descripción más comprimida de
correlaciones en los datos y, así, para una mejor
comprensión de las características subyacentes. Por
lo tanto, es un enfoque poderoso para extraer
tendencias generales en un conjunto de datos.
Además, dado que la PCA proporciona componentes
principales ordenados por su significado, también
ofrece una excelente base para la reducción de la
dimensión de datos en caso de datos
multidimensionales. Esto se puede lograr por la
omisión de las tendencias menos relevantes en el
conjunto de datos y la concentración en los
principales componentes.
Es un método sencillo que realiza una transformación
lineal de los patrones, en donde los componentes del
vector de características transformado son
estadísticamente independientes; las componentes
principales están ordenadas según su importancia,
desde la componente asociada a la mayor varianza
hasta la asociada a la menor variabilidad de los datos.
De esta forma uno podría eliminar las ultimas k
componentes sin perder demasiada información y
utilizando menos variables. El valor de k se
determina empíricamente según cada aplicación.
Como se muestra en la figura 4, los 50 primeros
componentes principales pueden representar
aproximadamente el 97% del total de la información
(en términos de la varianza total retenida), lo que se
considera suficiente para ser representativo e
informativo. De esta forma, escogimos los primeros
50 componentes principales.
Figura 4: Varianza de los componente principales.
Vectores de distancia: Al intentar reducir aún más la
cantidad de presentes en el conjunto de datos, los
elementos de distancia y “sombra” del tazo hacia
cada uno de los bordes permitió alcanzar tasas de
error menores a 15% con tan solo 25 características y
un tiempo de entrenamiento y clasificación que no
superaba los 79 segundos.
Figura 5: Vectores de Distancia desde y hacia los bordes usado en
la fase experimental cuyos resultados fueron prometedores al ser
empleados con ciertos clasificadores.
Área del trazo binarizado: Otra de las
características evaluadas fue el total del área del
trazo, que representaba sólo una característica más a
evaluar y tiene una distribución por clase en la que
pueden apreciarse grupos de manera clara:
Figura 6: Distribución del área del trazo por clase (Weka)
.
IV. DESCRIPCIÓN DE LOS CLASIFICADORES
Los clasificadores utilizados incluyen: SVM, KNN,
Perceptron Multicapa y Randon Forest.
Support Vector Machines:
Las máquinas de Soporte Vectorial o Support Vector
Machines (SVM) fueron propuestas por Vapnik como un
sistema de aprendizaje automático basado en la teoría del
aprendizaje estadístico [12], Este método ha captado la
atención de los investigadores debido principalmente a
su excelente rendimiento en diferentes áreas como el
reconocimiento de rostros, categorización textual,
predicciones, recuperación de imágenes y
reconocimiento de escritura manuscrita.
Diseñadas originalmente como clasificadores binarios, la
idea base reside en construir un hiperplano de separación
4. 4
entre las clases maximizando la distancia (el margen)
entre las mismas. Las SVM utilizan una función núcleo o
kernel para representar el producto interno entre dos
patrones, en un espacio de características no lineal y
expandido.
Muchos proveedores comerciales usan SVM como IBM
SPSS Statistics, SAS Enterprise Miner, Oracle Data
Mining(ODM) entre otros.
Para resolver problemas de clasificación con más de dos
clases (multiclase), se han planteado estrategias para
combinar las SVM binarias. Entre las más difundidas
podemos mencionar uno-contra-todos y uno-contra-uno.
La estrategia uno-contra-uno ha demostrado funcionar
mejor cuando se utilizan funciones kernel lineales
mientras que para otros tipos de kernel la estrategia uno-
contra-todos funciona eficientemente [13].
A continuación la fórmula de SVM con soporte a una
funcion de kernel y las fórmulas de las funciones
comúnmente soportadas. [14][15]
KNN (K Nearest Neighbors):
KNN según [16] es un método de clasificación no
paramétrico, esta técnica usa todos los patrones de
entrenamiento como prototipo. Es decir todas las
predicciones se realizan directamente desde los datos.
Para cada punto a clasificar se calcula la distancia (por
ejemplo euclidiana) para cada punto a clasificar. La
predicción se realiza sobre los k elementos más cercanos.
Figura 7: Ejemplo de clasificador KNN para K=3
Redes Neuronales Artificiales:
De acuerdo a Goyal [17], las redes neuronales artificiales
son redes de nodos, las cuales son modelos matemáticos
de neuronas biológicas como se muestra en la siguiente
figura:
Figura 8: Modelo conceptual de una Red Neuronal Artificial con Xn
neuronas, función base, función de activación y salida.
Generalmente, hay 3 o más capas de las mencionadas
neuronas: capa de entrada, capas medias (u ocultas) y la
capa de salida. El número de nodos en la capa de salida
es igual al número de clases objetivo de la clasificación.
El número de neuronas en la capa de entrada depende del
número de atributos que definen una instancia de un
objeto. El número de neuronas en las capas intermedias
no es fijo. Tampoco lo es el número de capas intermedias
en sí mismo. Estos últimos se definen mediante un
estudio del problema.
Perceptrón Multicapa: El perceptrón multicapa
consiste en un sistema de neuronas simples
interconectadas, o nodos que forman un modelo que
representa una relación no-lineal entre un vector de
entrada un vector de salidas. Los nodos están conectados
por pesos y señales de salida que son funciones que
suman las entradas al nodo modificado por una función
de transferencia no-lineal simple (o función de
activación). La superposición de varias funciones de
transferencia no lineales simples es lo que permite que el
perceptrón multicapa se aproxime a funciones
extremadamente no lineales. Si la función de
transferencia fuera lineal, entonces el perceptrón
multicapa solo sería capaz de modelar funciones lineales.
Una de las funciones de transferencia más empleadas es
la función logística debido a que su derivada es fácil de
calcular, computacionalmente hablando. La salida de un
nodo es escalada por el peso correspondiente y sirve
como entrada para los nodos de la siguiente capa de la
red neuronal. [18]
Random Forest:
Es un método de aprendizaje en conjunto usado para
clasificación y regresión que funciona mediante la
construcción de una gran cantidad de árboles de decisión
durante la etapa de entrenamiento y la salida de la clase
es el modo de la salida de clases de cada árbol. El
algoritmo para la inducción de Random Forest fue
5. 5
desarrollado por Leo Breiman y Alede Cutler. Al usar
una selección aleatoria de características para dividir
cada nodo el rendimiento alcanza tasas de error
comparables a AdaBoost [19].
El algoritmo de entrenamiento de Random Forest aplica
la técnica general de agregación por bootstrap o bagging,
a los clasificadores de árbol. Dado un conjunto de
entrenamiento X = x1, …, xn con respuestas Y = y1 hasta
yn, el bagging repetidamente selecciona una muestra
bootstrap del conjunto de entrenamiento y ajusta árboles
a esas muestras:
Luego del entrenamiento, la predicción para data nueva x'
se realiza promediando las predicciones de los árboles de
regresión individual en x':
o teniendo en cuenta la mayoría de votos.
En el algoritmo de arriba, B es un parámetro libre.
Típicamente unos cientos de miles de árboles se usan,
dependiendo del tamaño y la naturaleza del conjunto de
entrenamiento. Aumentar el número de árboles tiende a
reducir la varianza del modelo, sin reducir la tendencia.
Como resultado, el error en entrenamiento y prueba
tiende a nivelarse luego de que se ha alcanzado cierto
número de árboles.
Este procedimiento describe el algoritmo original de
bagging para árboles. Random Forest es distinto sólo en
la forma del siguiente esquema: usa un algoritmo de
aprendizaje modificado que selecciona, en cada corte del
proceso de aprendizaje, un subconjunto aleatorio de
características. La razón para hacer esto es la correlación
de árboles en una muestra ordinaria de bootstrap. Si una
o algunas características influyen fuertemente en la
predicción, esas características serán seleccionadas en
muchos árboles, y como consecuencia estarán
relacionadas.
V. EXPERIMENTACIÓN
Recogiendo los resultados y el actual estado del arte sobre
las experimentaciones en reconocimiento de dígitos y dado
que en este campo se vienen desarrollando propuestas décadas
atrás, presentamos a continuación algunos resultados
obtenidos por la comunidad [20] sobre el problema planteado,
para luego realizar una comparativa sobre nuestras
experimentaciones propias.
Error Método
0.21 Regularization of Neural Networks using DropConnect
0.23 Multi-column Deep Neural Networks for Image Classification
0.35 Deep Big Simple Neural Nets Excel on Handwritten Digit
Recognition
0.39 Efficient Learning of Sparse Representations with an Energy-
Based Model
0.40 Best Practices for Convolutional Neural Networks Applied to
Visual Document Analysis
Tabla 1: Resultados obtenidos por en otros experimentos.
De la lista anterior, nuestras experimentaciones tomaron
como base comparativa el clasificador de Redes Neuronales
Convolucionales (Convolutional Neural Networks Applied to
Visual Document Analysis), realizando un entrenamiento con
7 épocas sobre el dataset de training alcanzamos una tasa de
error de 0.026%. Esta es la base de nuestra comparativa sobre
nuestras experimentaciones.
Nuestros experimentos empezaron con la totalidad de la
muestra y la aplicación del clasificador Super Vector Machine
este clasificador presentó un resultado prometedor para
trabajar con una alta dimensionalidad. De nuestros
experimentos hemos podido notar que el tipo de función
kernel así como los parámetros de entrenamiento influyen en
el tiempo de entrenamiento y la acertividad de la operación.
Decidimos también probar el comportamiento de otro
algoritmo estadístico como es KNN para la clasificación,
buscamos el valor de K óptimo que proporcione la menor tasa
de error. Para esto hemos probado con diferentes valores para
K(K=1,2,3,4,5,6,7,8,14). Como se puede observar en el
siguiente gráfico la menor tasa de error se obtiene para k=3.
K 1°
Experimento
2°
Experimento
%
Error
Tiempo
(min.)
1 92.54 92.1 7.68 13.96
2 92.36 92.1 7.77 25.11
3 92.88 93.48 6.82 38.58
4 92.42 92.35 7.62 51.13
5 92.74 92.58 7.34 61.31
6 92.35 92.15 7.75 73.52
7 92.25 92.1 7.83 90.36
8 92.36 92.1 7.77 105.77
14 91.88 91.88 8.12 164.69
Tabla 2: Determinando el valor de K óptimo.
Figura 10: Comportamiento del porcentaje de error para K = 1 hasta
K =14.
6. 6
Usando el valor K=3 obtenido, experimentamos con
diferentes volúmenes de datos hasta abarcar el total del
dataset. Como primera aproximación trabajamos con la data
sin preprocesamiento.
Para mejorar el resultado se intentó binarizar la solución
[21] pero el tiempo de estabilización del clasificador SVM
mostró ser excesivo. Con el fin de mejorar la respuesta se pasó
de un enfoque estadístico a un enfoque basado en Redes
Neuronales Artificiales como es perceptrón multicapa, para
poder trabajar con esta red neural necesitamos reducir la
dimensionalidad, utilizamos el algoritmo de Otsu para mejorar
la calidad de la imagen y la transformación de wavelet HAAR
para reducir la dimensionalidad de 28 a 16 dimensiones lo que
nos da total de 256 características lo cual es un número
todavía excesivo para una red neural, por lo que recurrimos al
algoritmo Principal Component Analysis para reducir la
dimensionalidad a 15 dimensiones obteniendo un resultado
similar a SVM pero con un enfoque de red neuronal artificial.
Con el fin de mejorar la extracción de características elegimos
manualmente los vectores modelo para la extracción de
características técnica utilizada para el reconocimiento de
rostros con lo que pudimos obtener un resultado de mejor
exactitud con una red perceptrón multicapa alcanzando el 92%
de aciertos.
Sobre la base antes desarrollada alcanzamos el mejor
rendimiento utilizando binarización unido a vectores de
distancia y la información obtenida del área de los trazos en
un clasificador Random Forest como técnicas de extracción de
características y clasificador respectivamente. Mostrando el
siguiente desempeño:
Figura 9: Resumen del entrenamiento y evaluación utilizando 68
características y el clasificador Random Forest.
El rendimiento por clase obtenido fue menor al momento de
clasificar las muestras de prueba para 9,3 y 8; alcanzando su
mayor precisión con 1, 5 y 6 tal como se muestra a
continuación:
Figura 10: Rendimiento por clase.
La matriz de confusión para la prueba con 68 características
fue la siguiente:
Figura 11: Matriz de Confusión para la prueba con 68 características y
Random Forest como clasificador.
Finalmente intentamos reducir más la tasa de error, sin
embargo luego de superar las 68 características un incremento
en el número de dimensiones no influía en el rendimiento, por
lo que no se agregaron más características ya que el tiempo de
extracción, entrenamiento y evaluación continuaba
incrementándose.
A continuación se muestra la evolución en tiempos y tasa de
error de las pruebas más significativas realizadas en base a la
combinación anterior, variando el número de características
incluidas:
Características Tiempo (seg.) Error (%)
27 62.47 7.2
56 71.68 4.32
68 90.31 3.6
152 107.94 3.29
Tabla 3: Evolución del Porcentaje de Error con respecto a cantidad de
características usadas para el entrenamiento del modelo.
7. 7
Figura 12: Ejemplo de imagen a la que se agregaron líneas verticales y
horizontales para encontrar la distancia desde el borde del trazo hasta cada
marco (superior, inferior, izquierdo y derecho).
VI. RESULTADOS OBTENIDOS
Presentamos a continuación el resultado de nuestros
experimentos sobre 60,000 imágenes de entrenamiento y
10,000 de prueba:
Extraccion de
Caracteristicas
Num.
Attr.
Clasificador Tiempo
(seg)
Tasa de
Error
(%)
No 784 SVM- Polinomial 1779.00 15.18
No 784 SVM- Gausiana 7300.00 11.14
No 784 SVM-Linear 305.00 14.33
No 784 KNN 12600.00 4.76
Otsu,Haar
PCA
15 Perceptron
Multicapa
(500 ciclos)
755.04 11.35
Otsu, CDF,
PCA
15 Perceptron
Multicapa
(500 ciclos)
232.00 32.00
Otsu,Haar,
PCA Manual
50 Perceptron
Multicapa
(500 ciclos)
1181.00 7.23
Otsu, Wave,
Haar, PCA
15 Naive Bayes 4.80 17.95
Otsu, Wave,
CFD 9/7, PCA
15 Naive Bayes 1.00 35.00
Otsu Haarm
Vectores de
distancia
56 Random Forest 90.31 3.6
Convolucional
(Referencia)
784 Red Neuronal
Backpropagation
2200
s/epoca
0.026%
7ep.
Tabla 4: Comparación de todos los resultados obtenidos.
Figura 13: Tasa de Error por Clasificador
VII. CONCLUSIONES Y RECOMENDACIONES
En el presente trabajo gracias a la experimentación y
desarrollo de los modelos hemos podido llegar a las
siguientes conclusiones y recomendaciones.
El desarrollo de un modelo para el reconocimiento de
patrones presenta en la alta dimensionalidad uno de sus
mayores retos.
Para lidiar con estos factores será necesario identificar
técnicas que nos permitan extraer de manera adecuada
las características más relevantes para un dominio
particular de problema. Es pues así que la viabilidad de
un modelo tendrá que considerar de manera más
relevante el dominio de problema y la forma en la cual
jerarquiza la información obtenida.
El algoritmo de Otsu para la binarización de las
imágenes en nuestros experimentos a sido útil para este
propósito.
La utilización de la transformación de wavelet es una
técnica útil para reducir la dimensionalidad hecho
relevante para obtener un resultado en un tiempo
apropiado para los clasificadores basados en redes
neuronales artificiales.
El algoritmo PCA para la extracción de las características
más relevantes de nuestra muestra es un modelo genérico
que ha probado un buen desempeño para la reducción de
la dimensionalidad.
El clasificador SVM presenta una complejidad
importante en la definición de los parámetros apropiados
para su aprendizaje, tanto en los parámetros de la función
kernel como en los parámetros propios de la función.
Después de realizada la extracción de características y
reducción de la dimensionalidad los algoritmos basados
en redes neuronales artificiales presentan resultados
importantes en tiempos de entrenamiento también
apropiados.
La definición de vectores específicos a un contexto de
problema puede incrementar la acertividad del modelo
PCA transformando las entradas a una representación
más apropiada para el dominio de problema.
El uso del clasificador KNN proporciona una forma fácil
y rápida de clasificación de los dígitos manuscritos pero
con una alta tasa de error (4.76%).
El rendimiento del clasificador KNN se ve mejorado al
aumentar la cantidad de datos de entrenamiento.
En nuestros experimentos las redes neuronales
artificiales mostraron buen comportamiento al integrarse
8. 8
con Wavelet y PCA no siendo así los algoritmos
estadísticos que parecen necesitar un modelamiento
matemático más elaborado al momento de aplicar
técnicas de reducción de la dimensionalidad.
En nuestros experimentos las técnicas para la extracción
de características específicas al dominio del problema
demostraron ser el factor más gravitante al momento de
obtener un mejor resultado.
REFERENCIAS
[1] Cheng-Lin Liu; Nakashima, K.; Sako, H.; Fujisawa, H., "Handwritten
digit recognition using state-of-the-art techniques," Frontiers in
Handwriting Recognition, 2002. Proceedings. Eighth International
Workshop on , vol., no., pp.320,325, 2002.
[2] C. Suen and J.Tan, “Analysis of errors of handwritten digits made by a
multitude of classifiers.” Pattern Recognition Letters, vol 40, pp,
18161824,2007.
[3] Otsu, N. 1979. A threshold selection method from gray level histogram.
IEEE Trans. Systems Man Cybern. 9 (1), 62–66.
[4] Chih-Chung Chang, Chih-Jen Lin. LIBSVM: a library for support vector
machines, 2001. Software available at
http://www.csie.ntu.edu.tw/~cjlin/libsvm.
[5] Wang qinghui; Yang Aiping; Dai Wenzhan, "An improved feature
extraction method for individual offline handwritten digit recognition,"
Intelligent Control and Automation (WCICA), 2010 8th World Congress
on, vol., no., pp.6327,6330, 7-9 July 2010.
[6] Akhtar, M.S.; Qureshi, H.A, "Handwritten digit recognition through
wavelet decomposition and wavelet packet decomposition," Digital
Information Management (ICDIM), 2013 Eighth International
Conference on , vol., no., pp.143,148, 10-12 Sept. 2013.
[7] Kulkarni, V.Y.; Sinha, P.K., "Pruning of Random Forest classifiers: A
survey and future directions," Data Science & Engineering (ICDSE),
2012 International Conference on , vol., no., pp.64,68, 18-20 July 2012.
[8] Serre, T.; Wolf, L.; Poggio, T., "Object recognition with features
inspired by visual cortex," Computer Vision and Pattern Recognition,
2005. CVPR 2005. IEEE Computer Society Conference on , vol.2, no.,
pp.994,1000 vol. 2, 20-25 June 2005.
[9] Haar A. Zur Theorie der orthogonalen Funktionensysteme,
Mathematische Annalen, 69, pp 331–371, 1910.
[10] Minh N. Do, Martin Vetterli, “WaveletBased Texture Retrieval Using
Generalized Gaussian Density and KullbackLeibler Distance”, IEEE
Transactions On Image Processing, Volume 11, Number 2, pp.146158,
February 2002.
[11] Charles K. Chui, “An Introduction to Wavelets”, Academic Press, 1992,
San Diego, ISBN 0585470901
[12] C. Suen, C. Nadal, R. Legault, T. Mai, and L. Lam, “Computer
recognition of unconstrained hand-written numerals” Procs IEEE, vol
80, no 7 , pp. 1162-1180, 1992.
[13] C. Liu and H. Fujisawa, “Classification and learning methods for
character recognition: Advances and remaining problems” in Machine
Learning in Document Analysis and Recognition (H. F. S. Marinai, ed.),
pp 139-161, Springer, 2008.
[14] F. Lauer, C. Suen, and G. Bloch, “A trainable feature extractor for
handwritten digit recognition” . vol 40, pp 1816-1824, 2007.
[15] V. Vapnik, The nature of Statistical Learning Theory. Springer Verlag.
New York, 1995.
[16] Peter Harrington, “Machine Learning in Action”. 2012. Manning
Publications Co. Capitulo 2, pp 18-21
[17] Goyal, R.D., “Knowledge Based Neural Network for Text
Classification.”, 2007, IEEE International Conference on Granular
Computing.
[18] M. W. Gardner and S. R. Dorling. 1998. Artificial Neural Networks
(The Multilayer Perceptron)- A review of applications in the
atmospheric sciences. Atmospheric Enviroment. Vol 32. pp. 2627-2636.
[19] L. Breiman, “Random Forest”, Machine Learning, Kluwer Academic
Publishers, Vol 45, no 1, pp 5-32
[20] Classification datasets results.
http://rodrigob.github.io/are_we_there_yet/build/classification_datasets
_results.html#4d4e495354
[21] L. Maria Seijas, “Reconocimiento de patrones utilizando técnicas
estadísticas y conexionistas aplicadas a la clasificación de dígitos
manuscritos. Universidad de Buenos Aires.