Está en la página 1de 8

Red neuronal artificial con momentum para la

clasificación de dı́gitos usando MNIST


Juan Camilo Rojas Ortiz Juan Camilo Angel Hernandez
Ingenierı́a de sistemas Ingenierı́a de sistemas
Escuela Colombiana de Ingenierı́a Julio Garavito Escuela Colombiana de Ingenierı́a Julio Garavito
Bogotá, Colombia Bogotá, Colombia
juan.rojas-o@mail.escuelaing.edu.co juan.angel-h@mail.escuelaing.edu.co

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].

a[l] = g [l] (z [l] ) (2)


Fig. 2. Arquitectura de red neuronal Donde :
g [l] : Función de activación de la capa l
1) Red Neuronal Artificial: Una red neuronal esta com-
puesta por nodos o unidades conectados por enlaces que sirven
para propagar la activación generada por cada unidad, esto 3) Funciones de activación: Hay cuatro funciones de
ocurre cuando la combinación lineal de sus entradas superan activación populares y de uso común: sigmoide, tangente
un umbral determinado por una funcion de activacion. La hiperbólica, Relu y Softmax.A continuación se profundizará
arquitectura de una red se puede describir por medio de capas, sobre las funciones sigmoide y softmax.
el número de capas de una red se representa por L y el número
de neuronas de cada capa está dado por n[l] con l como el La función Sigmoide transforma un valor real de entrada (z)
número de la capa que se está describiendo, entre estas capas en otro valor entre 0 y 1 ,es una función no lineal, continua
se tiene una capa encargada de recibir los datos de entrada y diferenciable [7]. A continuación tenemos su formulación.
(x) y otra capa que se encarga de proporcionar la salida del
1
modelo (y), las demás capas se denominan capas ocultas [5].La g(z) = (3)
figura 2 es un ejemplo de la arquitectura de una red neuronal. 1 + e−z
Los enlaces tienen un peso numérico asociado, la matriz La función Softmax transforma un valor de entrada en un
W [l] representa la fortaleza de la conexión de las neuronas de vector de valores que sigue una distribución de probabilidad,
la capa l-1 y la capa l. Adicionalmente cada capa recibe un de tal manera que la sumatoria de todas las salidas es
valor de sesgo representado por b[l] . equivalente a 1. A continuación se puede observar su
El proceso de entrenamiento de una red neuronal se realiza formulación. [8]
con una técnica iterativa llamada backpropagation en la que se
calcula el error del modelo al comparar las salidas conseguidas [L]
con los valores reales presentes en el data set (ŷ), este error ezj
p(y = j|x) = P [L]
(4)
se propaga por todas las capas de la red y se calculan los ezn
nN
4) Descenso de gradiente: Es un algoritmo de optimización
utilizado para encontrar los pesos adecuados de una red
neuronal, el objetivo de este algoritmo es encontrar los pesos
del modelo que minimizan la funcion de error en el conjunto
de datos de entrenamiento. Para ello, realiza cambios en los
pesos del modelo, moviendolos iterativamente a lo largo de
un gradiente o pendiente hacia un valor de error mı́nimo. Esto
le da al algoritmo su nombre de ”descenso de gradiente”.
La actualización de los parámetros se realiza de la siguiente
manera. [9]

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.

Adicionalmente se cambia la forma de actualizar los


parámetros para que, en lugar de usar los gradientes, utilizar
los promedios ponderados calculados previamente. Por lo
que la actualización de los parámetros queda de la siguiente
manera:
W = W –α ∗ VdW (10) Fig. 4. Descripción de arquitectura básica

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. 5. Diseño del software utilizado

Los métodos propuestos para este componente son :


• init : Inicializa los parámetros de una red neuronal
con el tamaño de las capas especı́ficado, retorna una red
neuronal
• predict : Utiliza el modelo para la predicción de resul-
tados a partir de los datos de entrada proporcionados, Fig. 7. Gráfica función costo
retorna un vector con las probabilidades de cada clase
• train : Realiza el entrenamiento del modelo con los
En la figura 7 se puede observar la función de coste
datos de entrada y de salida esperada, utilizando los para diferentes número de neuronas a lo largo del número
hiperparámetros especificados, de iteraciones, esto en una red neuronal sin ninguna de la
• compute multiclass loss: Retorna el cálculo de la
mejoras propuestas en la metodologı́a, de esta gráfica se
función de error de entropı́a cruzada entre los datos de observa que el coste inicial es de aproximandemente 0.404 y
salida esperados y los datos predichos el final es aproximadamente de 0.2.
• accuracy metrics: Muestra la matriz de confusión, el
costo y el reporte de clasificación que tiene el modelo
actual dado un conjunto de datos de entrada y de salida
IV. R ESULTADOS
A. Redes candidatas
Se realizarón una serie de experimentos con el objetivo de
encontrar los valores de los hiperpárametros de la red que
presentan mejores resultados, dichos hiperpárametros se van Fig. 8. Número de neuronas vs exactitud
a comparar respecto a la exactitud de la red con los datos de
entrenamiento. La arquitectura con la que se va a seguir trabajando en los
siguientes experimentos será de 64 neuronas en la capa oculta
con una tasa de aprendizaje de 1 ya que es la que presenta evidencia en la figura 11.
la mayor extactitud en test, esta decisión es la mas adecuada
según el principio de navaja de ockham, la cual dice que en
igualdad de resultados la explicación más sencilla suele ser 3) Red neuronal con momentum: Posteriormente se
la más probable. [18] agregó un enfoque de momentum al descenso del gradiente,
gracias a esto se logra una convergencia mas rapida al
2) Red neuronal con descenso del gradiente con permitir el aumento de la tasa de aprendizaje sin afectar
minibatches: Luego se agregó a la red un descenso del el modelo (dicho comportamiento se puede observar en la
gradiente con minibatches donde la exactitud y el rendimiento figura 11), por lo que aumentamos la tasa de aprendizaje
deberian mejorar ya que se estarian actualizando los pesos a un valor de dos con lo que se mantuvo un 99% de exactitud.
con mas frecuencia en conjunto con una implementación
vectorizada, en este paso se compararon el tamaño de los
minibatches para obtener el tamaño ideal, estos resultados se
observan en la figura 9.

Fig. 11. Descenso del gradiente con momentum

Es clara la mejora obtenida al añadir momentum al modelo


Fig. 9. Gráfica función costo sin momentum ya que logramos una trayectoria en la función de coste mas
limpia y una mejor convergencia en esta lo que significa que
se logra un coste mas bajo al realizar actualizaciones en los
pesos de tal forma que se avance de una mejor forma en la
función de coste.

4) Inicialización de Xavier: En seguida se implementó


la inicialización de Xavier a los pesos de la red, gracias a
esto logramos conseguir una exactitud del 100% con los
datos del conjunto de entrenamiento y una exactitud del 98%
respecto a los datos del conjunto de prueba, por lo que no
Fig. 10. Tamaño mini batch vs exactitud se observa un sobre ajuste. Finalmente con una exactitud
del 98% nos posicionamos encima de los clasificadores no
En la figura 9 se puede apreciar las distintas curvas de costo lineales y una solución usando usando un enfoque simple de
que presenta nuestro modelo para distintos tamaño de batch, K-nearest-neighbors .
en base a dichas curvas el tamaño de cada mini-batch con el
que se va a trabajar es de 128 ya que con este conseguimos En la figura 12 podemos observar una mejora tanto en
el menor costo de entrenamiento y la mejor exactitud en el costo inical como en el final, donde el costo final es de
test como se puede ver en la figura 10, a pesar de tener la 0.004, siendo este un muy buen resultado comparandolo con
misma exactitud con un tamaño de batch de 128 y de 256 se la primera red sin ninguna de las mejoras.
escogió el de 128 debido al principio de la navaja de Ockham.

Por ultimo, en la gráfica de la función de costo sin B. Red seleccionada


momentum se puede evidenciar la presencia de ruido en la Ya con los hiperparametros sintonizados se procedera a
trayectoria de la función de coste, y es gracias a un enfoque mostrar la matriz de confusión.
con momentum que dicho ruido se logra suavizar como se
Fig. 14. Números clasificados incorrectamente

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.

Fig. 13. Matriz de confusión

En la matriz de confusión podemos observar un promedio


de exactitud del 98% para todas las clases. Tambien se
observa que los errores mas grandes se encuentran al tratar
de predecir una imagen que representa el número 5 ya que
nuestro modelo las clasificó como el número 3 el 1.5% de
las veces, lo mismo sucede al tratar de clasificar imagenes
Fig. 15. Grafica de exactitud (train vs test)
que representan el numero 4 dando como salida el número 9
el 1.3% de las veces, esto puede deberse a la similitud que
presentan en la forma en algunas partes especificas como la V. T RABAJO FUTURO
mitad inferior del número tres y cinco. Se proponer repetir el ejercicio pero utilizando como base
una red profunda simple. También se propone utilizar una red
Además en la matriz de confusión podemos ver que la neuronal convolucional para intentar mejorar los resultados
precisión tiene un buen resultado para cada una de las 10 obtenidos y realizar una comparación entre esta red y la
clases que tiene nuestro modelo, esto es un indicio de la utilizada durante este estudio .
robustez de nuestro modelo.

A continuacion se pueden observar unas imagenes que VI. C ONCLUSIONES


fueron clasificadas incorrectamente. Se consiguió mejorar la exactitud del modelo con cada
una de las mejoras propuestas, puesto que pasamos de
En la figura 14 se puede observar unas imagenes que una exactitud inicial de 93% en el modelo básico a 96% al
corresponde a los números cinco y cuatro respectivamente, implementar mini-batches de tamaño 128 y luego conseguimos
pero nuestro modelo las clasificó como un tres y nueve. un aumento a 97% al implementar el descenso del gradiente
Especialmente en estas imagenes se pueden evidenciar con momentumal, y finalmente una exactitud del 98% al
similitudes en algunas partes con los números correctos (tres implementar la inicializacion de Xavier sobre los pesos. Por
y nueve), por lo que es razonable este error de clasificación. lo que se concluye que las mejoras al modelo son adecuadas
y permiten que el modelo se posicione por encima de los
Finalmente en la figura 15 se puede observar la evolución clasificadores no lineales (96,5%) pero aún se encuentra por
debajo de las maquinas de soporte vectorial(98,6% - 99,2%) [17] “Relu vs sigmoid in mnist example.” https://datascience.stackexchange.
y de las redes neuronales convolucionales(98,3%-99,3%). com/questions/18667/relu-vs-sigmoid-in-mnist-example, 2017. Ac-
cessed on 2020-05-13.
[18] “Occam’s razor.” https://www.britannica.com/topic/Occams-razor. Ac-
Además se observó que el efecto previsto por la teorı́a se cessed on 2020-07-14.
aplicó correctamente al modelo en cada una de las fases,
primero el descenso del gradiente en mini-batches permitió
la convergencia a un valor de costo menor que al de la red
básica, además de esto permitió la reducción en el número
de iteraciones, por lo que es un buen mecanimo para hacer
más eficiente el descenso del gradiente, sin embargo también
se hicieron presentes las oscilaciones en la trayectoria de la
función de costo, esto fue solucionado, tal como se esperaba,
con la implementación del momentum , que no solo logró
suavizar la curva sino que también permitió que el valor para el
ritmo de aprendizaje se pudiera sintonizar a un valor más alto.
Finalmente la inicialización de Xavier permitió un pequeño
aumento en el rendimiento pero dado que el problema de
desaparecer o explotar gradientes no era tan caracteristico de
nuestro modelo al trabajar solo con 1 capa oculta la mejorı́a
no es tan notable como con los métodos anteriores.

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.

También podría gustarte