Читать книгу Innovando la educación en la tecnología - Группа авторов - Страница 35
2.3 Algoritmo de optimización
ОглавлениеPara incrementar la eficiencia de la red neuronal propuesta, se ha decidido implementar un algoritmo llamado Adam, el cual sirve para escoger el mejor learning rate para que el entrenamiento de la red neuronal sea el más rápido y efectivo posible (Kingma et al., 2014).
Adam es un algoritmo de learning rate adaptativo, lo que significa que calcula learning rates individuales para diferentes parámetros. Su nombre se deriva de la estimación del momento adaptativo, y la razón por la que se llama así es porque Adam usa estimaciones del primer y segundo momento del gradiente para adaptar la velocidad de aprendizaje para cada weight de la red neuronal.
Adam utiliza los gradientes elevados al cuadrado para escalar la velocidad de aprendizaje como el algoritmo RMSprop (Tieleman y Hinton, 2012) y aprovecha el impulso al usar la media móvil de los gradientes en lugar de solo la gradiente como el algoritmo stochastic gradient descent.
Para estimar los momentos, Adam utiliza promedios móviles exponenciales, calculados en el gradiente evaluado en un minilote actual:
Donde mt y vt son los promedios móviles, g es la gradiente del minilote actual y los β son los hiperparámetros del algoritmo. Ambos tienen un valor default de 0,9 y 0,999, respectivamente
La fórmula para obtener el promedio móvil mt también puede ser representada por la siguiente ecuación:
Después de esto se necesita realizar un paso llamado “bias correction”, esto quiere decir que se necesita corregir el valor inicial de mt y vt, para ello se realizan las siguientes transformaciones:
Para finalizar, se utilizan estos promedios móviles y para escalar la learning rate individualmente para cada parámetro. La forma en que se hace en Adam es simple, para realizar una actualización de weights hacemos lo siguiente:
Donde Wt es una matriz weights y la η es el tamaño del step (Zhang, Ma, Li y Wu, 2017).