Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Abstract—This paper presents a improved Neural network de KNN, de las redes neuronales simples e implementaciones
using mini-batch gradient descent with momentum and Xavier con RBF.
initialization to achieve classification of images from handwritten
digits using the MNIST database, this is a data set widely used
in both character recognition problems and research on the
theories of pattern recognition and machine learning algorithms.
This paper is an investigation into different mechanisms in
neural networks with the aim of exploring their behaviour and
seeing how these positively affect a neural network, hoping to
achieve an error of approximately 3%. Here, we use accuracy to
determine the the performance of the neural network. Finally,
our neural network achieved an accuracy of 98%, comparing
it with the results of other researches using the same MNIST
handwritten digit database (results that can be found in Yann
Lecun’s website), we managed to position ourselves above the
non-linear classifiers.
Index Terms—Neural Networks, Multiclass Classification,
MNIST, Backward-Propagation, Xavier’s initialization, mini-
batch gradient descent, momentum gradient descent
I. I NTRODUCCI ÓN
Fig. 1. Imágenes de muestra del dataset MNIST, de [3]
Durante los últimos años las redes neuronales han
mostrado que cuentan con la capacidad de aprender a
clasificar elementos en sus respectivas clases y presentar
buenos resultados [1]. El reconocimiento de dı́gitos escritos II. E STADO DEL ARTE
a mano es un problema clásico de clasificación, en el que a
partir de una imagen se espera como resultado que el número A. Dataset
sea identificado correctamente. Este problema es la base de
problemas más complicados en el área de reconocimiento MNIST (Modified National Institute of Standards and
óptico de caracteres, y puede utilizarse como caso de prueba Technology database) es considerado un dataset estandar para
para las teorı́as de reconocimiento de patrones y algoritmos probar rápidamente teorı́as y algoritmos de clasificación ya
de aprendizaje de máquinas. que las muestras ya han sido preprocesadas, las diferentes
clases están balanceadas e historicamente ha sido utilizado
En este trabajo se utilizará el data set MNIST, compuesto para probar el comportamiento de muchas implementaciones
por imágenes de dı́gitos escritos a mano [2] para realizar de clasificadores, este dataset contiene 60.000 imágenes
una investigación sobre los efectos de los mecanismos selec- para el entrenamiento de la red y 10.000 imágenes para las
cionados que representan mejoras sobre una red neuronal que pruebas de la red, ambos conjuntos extraidos de la misma
soluciona el problema, entre estos mecanismos se encuentran distribución. Todas estas imágenes en blanco y negro tienen
el descenso del gradiente por mini-batches, añadir momentum un tamaño de 28 × 28 pı́xeles donde la dimensionalidad de
al descenso del gradiente y utilizar la inicialización de Xavier cada vector de la muestra es de 28 * 28 = 784, además se
para los pesos.En la figura 1 se pueden observar algunos aplicó una normalización a todas las muestras para lograr un
ejemplares del data set MNIST, cada uno de estos ejemplares mejor rendimiento, dicha normalizacion consiste en dividir el
tiene un tamaño de 28x28 pixeles. Al terminar de implementar valor de cada pixel sobre 255, logrando de esta manera que
estas mejoras se espera obtener un error de entre 2% y 3% para dichos valores estén entre un rango de 0 y 1.
posicionar el modelo por encima de algunas implementaciones
B. Trabajos relacionados gradientes necesarios para actualizar los pesos y el sesgo de
Existen varias tablas que comparan implementaciones de cada capa con el objetivo de reducir el error del modelo en
modelos de clasificación de MNIST según la tasa de error cada iteración.
que se presenta con el dataset de prueba, donde entre menos 2) Propagación hacia adelante (forward propagation):
tasa de error se tenga, mejor es el modelo. Una de las primeras Como su nombre indica, los datos de entrada se propagan
clasificaciones fue publicada por LeCun y otros. [4] hacia adelante a través de la red neuronal. En este proceso
En esta lista, podemos observar enfoques tempranos de ma- cada capa recibe una matriz con los valores de activación de
chine learning como clasificadores lineales (cuya tasa de error la capa anterior,los procesa según su función de activación y
oscila entre el 7,6 y el 12%), enfoques de los vecinos más los propaga hacia la capa sucesiva hasta la capa de salida.
cercanos (KNN) (que van del 1,1 al 5%), clasificadores no
lineales (alrededor del 3,5%), máquinas de vectores de soporte Para cada una de las L capas de la red neuronal se deben
vectorial (SVM) (de 0,8 a 1,4%), redes neuronales (de 1,6 a realizar los siguientes pasos:
4,7%) y redes neuronales convolucionales (del 0,7 al 1,7%). a) Preactivación: Es una suma ponderada de las entradas, es
decir, la transformación lineal de las entradas dados los
C. Marco teórico pesos mas un componente de sesgo, ası́:
z [l] = W [l] ∗ a[l−1] + b[l] (1)
Donde:
a[l−1] : Valores de activación de las neuronas de la capa
l-1
W [l] : Matriz de pesos de la capa l
b[l] : Vector de sesgos de la capa l
b) Activación: Es una función que agrega no linealidad
a la red, en este paso la suma ponderada calculada
previamente se pasa a la función de activación, dando
como resultado el valor de activación de la neurona el
cual determina si el dicho valor se propagará [6].
W = W − α ∗ dW (5)
b = b − α ∗ db (6)
Donde
α : Hiperparámetro que regula el ritmo de aprendizaje
dW : Derivada de la función de costo con respecto a w Fig. 3. Comportamiento función costo con mini-batch gradient descent [11]
db : Derivada de la función de costo con respecto a b
El descenso del gradiente cuenta con algunas variaciones
de error cuadratico medio al minimizar la diferencia entre dos
dependiendo el momento en el que se calcula el error y se
distribuciones de probabilidad,la obtenida con la predicción
actualizan los parámetros del modelo, estas variaciones son :
del modelo y la real. Además, al ser este un problema de
1) Descenso del gradiente por lotes: En esta variación clasificación el limite de decisión es grande en comparación
los parámetros se actualizan solo después de evaluar con el de un problema de regresión y la funcion de error
todos los ejemplos.Como principales ventajas ofrece una cuadratico medio no castiga las clasificaciones erroneas
convergencia estable para algunos problemas y permite lo suficiente, por ultimo la función de error de entropı́a
la vectorización, como desventaja principal presenta la cruzada categórica es la función de costo natural cuando se
posibilidad a una convergencia en un mı́nimo local. [10] trabaja con una función softmax en la capa de salida y se
2) Descenso del gradiente estocástico: En este caso desea maximizar la probabilidad de ejemplos correctamente
tanto el calculo del error como la actualización de los clasificados. [12] [13]
parámetros se realiza después de evaluar cada ejemplo
del data set, una de sus ventajas es que al realizar
1 X
actualizaciones tan seguidas añade ruido al modelo lo J(Y, Ŷ ) = − (Y ∗ log(Ŷ ) (7)
m
que ayuda a evitar los mı́nimos locales, sin embargo
esto también dificulta que el algoritmo pueda seleccionar Donde
un mı́nimo de error, además realizar los cálculos por
cada ejemplo puede ser computacionalmente costoso y
Ŷ : matriz con los datos estimados de salida de los m
puede llegar a tardar demasiado en entrenar para algunos
ejemplos
problemas. [10]
Y : matriz con los datos de salida de los m ejemplos
3) Descenso del gradiente en mini batches:
Este enfoque propone dividir el conjunto de datos de
entrenamiento en pequeños lotes que se utilizan para 6) Descenso del gradiente con momentum: El momentum
calcular el error del modelo y actualizar este mismo. consiste en realizar un promedio ponderado exponencial de
Con este enfoque se logra conseguir la eficiencia de los gradientes calculados para suavizar las actualizaciones y
los calculos vectorizados del descenso por lotes y el reducir las oscilaciones por lo que la convergencia se consigue
ruido necesario para evitar mı́nimos locales del descenso mucho más rápido. Para conseguir esto el promedio ponderado
estocastico.Sin embargo es necesario sintonizar el tamaño exponencial de los gradientes se calcula de la siguiente manera
de los mini lotes y el costo no disminuye de manera [14]:
uniforme por el ruido incluido en la función tal como se VdW = βVdW + (1–β)dW (8)
ve en la figura 3. [10]
5) Función de error de entropı́a cruzada categórica:
La pérdida de entropı́a cruzada mide el costo de un modelo Vdb = βVdb + (1–β)db (9)
de clasificación cuyo resultado es un valor de probabilidad
entre 0 y 1. El valor de esta función aumenta a medida que
la probabilidad prevista se aleja de la etiqueta real. Es más
adecuada para los problemas de clasificación que la funcion Donde
VdW : Promedio ponderado exponencial de los gradientes III. M ETODOLOG ÍA
del peso
β : Hiperparámetro encargado de regular la cantidad A. Arquitectura básica
de gradientes que se toman en cuenta al calcular el
promedio
Vdb : Promedio ponderado exponencial de los gradientes
del sesgo
El hiperparámetro β varı́a entre 0 y 1 y representa que
el promedio será calculado teniendo encuenta los ultimos
1
1−β gradientes,los valores mas cercanos a 1 generan menos
oscilaciones pero tienden a adaptarse lentamente a los
cambios en los valores, por el contrario valores como 0.5
generan muchas oscilaciones. Generalmente β se establece
en 0.9, que es equivalente a calcular el promedio ponderado
exponencial de los últimos 10 gradientes.
b = b–α ∗ Vdb (11) En este trabajo se implenta una red neuronal con una capa
7) Inicialización de Xavier: La inicialización basica de los de entrada que contiene 28 * 28 = 784 neuronas, representando
pesos de una red neuronal corresponde a una serie de numeros las caracterı́sticas de cada uno de los pı́xeles de una imagen
psuedoaleatorios de una distribución uniforme, esta serie de del data set MNIST. Al ser este un problema de clasificación
numeros tienen la propiedad de tener una varianza igual a 1, múltiple la capa de salida tiene 10 neuronas, representando
donde la varianza de la suma de estos numeros es igual a la los dı́gitos de 0 a 9, las clases en las que se quiere clasificar
suma de las varianzas individuales. las imágenes, adicionalmente esta capa utiliza la función de
La propiedad anterior ocasiona que la varianza de todas las activación softmax para obtener el porcentaje de similitud
entradas de una neurona sea igual al numero de conexiones de cada clase o dı́gito.Se decidió trabajar con una única
√
entrantes, por lo que su distribución estandar será n siendo capa oculta ya que una red neuronal con esta caracteristica
n el número de conexiones entrantes y esta puede ser grande, es capaz de realizar la aproximación de cualquier función
esto puede causar problemas en el entrenamiento de la red ya [16].El número de neuronas para la capa oculta, ritmo de
que un cambio de los pesos reflejarı́a cambios minusculos en aprendizaje y el número de iteraciones se encontrará por medio
las salidas de la neurona. Usando como función de activación de la experimentación . Como función de activación se usó la
la función sigmoide el aumento de los valores de entrada función sigmoide debido a que se relizarán las predicciones
afectan mucho menos al aumento de los valores de activación en base a una probabilidad y la sigmoide se adapta mejor a
por lo que se ve obstaculizado el aprendizaje, este problema esto [17]. La figura 4 representa la arquitectura escogida para
se conoce como desvanecimiento del gradiente. la red neuronal básica.La función de costo seleccionada fue la
Una solución a este problema consiste en burcar que las función de entropı́a cruzada categórica.
salidas de cada neurona tengan una desviación estandar igual
a 1 y esto se logra reduciendo la varianza de los pesos B. Experimentación
vinculados a una neurona, de modo que la nueva varianza sea A continuación se especifican las 4 fases de experimentación
1/n, para conseguir dicho comportamiento
q se multiplican los que se realizaron para construir y mejorar el modelo, en cada
pesos generados aleatoriamente por n1 siendo n el número de fase se observan los efectos previstos por la teorı́a y el impacto
entradas desde la capa anterior. Haciendo la inicializacion de sobre la exactitud del modelo
los pesos descrita anteriormente estariamos implementando la 1) Red neuronal básica: Se seleccionará el número de
inicialización de Xavier la cual se enuncia a continuación. [15] neuronas en la capa oculta y el ritmo de aprendizaje , para
esto se probarán distintos valores para cada hiperparámetro y
r se seleccionarán aquellos que presenten el mejor rendimiento.
1 2) Red neuronal con descenso del gradiente con mini-
(12) batches: Se implementará el descenso del gradiente por mini-
n(l−1)
batches en el que tendremos que sintonizar el tamaño de
n[l−1] : representa el numero de neuronas de la capa l-1 los mini-batches, para esto se escogieron algunos tamaños
potencias de dos (64,128,256,512) , además se ajusta el 1) Red neuronal básica: Primero se compararon diferentes
número de iteraciones a 20 porque según la teorı́a de mini números de neuronas en la capa oculta en una red neuronal
batches el modelo deberı́a converger mucho más rápido. sin las mejoras descritas en la metodologı́a, estos resultados
3) Descenso del gradiente con momentum: Se añadirá se observan en la siguiente tabla.
momentum al descenso del gradiente puesto que al realizar
la implementación por mini-batches se generó ruido en el
proceso de convergencia, se espera que con la implementación
de momentum se reduzcan las oscilaciones presentes en la
gráfica costos vs iteración y que el rendimiento mejore.
4) Inicialización de Xavier: Se implementará la inicial-
ización de Xavier para analizar si esta estrategia posibilita una
mejora en el rendimiento de la red que se ha obtenido durante
todo el procedimiento, teniendo en cuenta que la inicialización Fig. 6. Número de neuronas y tasa de aprendizaje vs costo
utilizada es aleatoria con distribución normal.
C. Software En la figura 6 podemos observar que la tasa de aprendizaje
con un valor de 1 es la que menor costo presenta, esta tasa
El software que se usará para realizar los experimen-
de aprendizaje será fijada para tener una única tasa, esto con
tos mencionados fue implementado en python usando las
el propósito de ver los efectos de los demás parametros a
librerı́as numpy y matplotlib, esta implementación permite
través de las distintas mejoras propuestas.
sintonizar fácilmente los parámetros del modelo y visualizar
su rendimiento en cada etapa,el diseño de este componente se
muestra en la figura 5.
Fig. 12. Gráfica función costo con inicialización de xavier de la exactitud tanto de los datos de entrenamiento como
los de los datos de prueba a lo largo de las epocas, aqui se
observa que no hay indicios de que nuestro modelo presenta
un sobre ajuste y que se está comportando adecuadamente.
R EFERENCES
[1] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning
applied to document recognition,” Proceedings of the IEEE, vol. 86,
no. 11, pp. 2278–2324, 1998. Accessed on 2020-05-04.
[2] Y. LeCun and C. Cortes, “MNIST handwritten digit database,” 2010.
[3] “Mnist database.” https://www.wikiwand.com/en/MNIST database. Ac-
cessed on 2020-06-4.
[4] “The mnist database of handwritten digits.” http://yann.lecun.com/exdb/
mnist/, Feb 2020. Accessed on 2020-05-13.
[5] S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach,
ch. 18.7, pp. 727–734. USA: Prentice Hall Press, 3rd ed., 2009.
[6] vikashraj luhaniwal, “Forward propagation in neural networks —
simplified math and code version.” https://towardsdatascience.com/
forward-propagation-in-neural-networks-simplified-math-and-code-version-bbcfef6f9250,
MAY 2019. Accessed on 2020-07-13.
[7] “Activation functions.” https://ml-cheatsheet.readthedocs.io/en/latest/
activation functions.html#sigmoid. Accessed on 2020-06-22.
[8] “Redes neuronales de clases múltiples: Softmax.” https:
//developers.google.com/machine-learning/crash-course/
multi-class-neural-networks/softmax?hl=es, Feb 2020. Accessed
on 2020-05-04.
[9] “Gradient descent.” https://ml-cheatsheet.readthedocs.io/en/latest/
gradient descent.html. Accessed on 2020-07-13.
[10] “A gentle introduction to mini-batch gradient descent and how
to configure batch size.” https://machinelearningmastery.com/
gentle-introduction-mini-batch-gradient-descent-configure-batch-size/.
Accessed on 2020-07-07.
[11] I. Dabbura, “Gradient descent algorithm and its variants.” https://
imaddabbura.github.io/post/gradient-descent-algorithm/, DEC 2017. Ac-
cessed on 2020-05-14.
[12] “Loss functions.” https://ml-cheatsheet.readthedocs.io/en/latest/loss
functions.html. Accessed on 2020-06-09.
[13] “What is the different between mse error and cross-entropy error in nn.”
https://susanqq.github.io/tmp post/2017-09-05-crossentropyvsmes/. Ac-
cessed on 2020-07-14.
[14] A. Ng, “Gradient descent with momentum (c2w2l06).” https://www.
youtube.com/watch?v=k8fTYJPd3 I, AUG 2017. Accessed on 2020-
05-14.
[15] A. Ng, “Weight initialization in a deep network (c2w1l11).” https://www.
youtube.com/watch?v=s2coXdufOzE, AUG 2017. Accessed on 2020-
05-13.
[16] R. H. Nielsen, “Kolmogorov’s mapping neural network existence the-
orem,” in Proceedings of the IEEE First International Conference on
Neural Networks (San Diego, CA), vol. III, pp. 11–13, Piscataway, NJ:
IEEE, 1987. Accessed on 2020-05-04.