Está en la página 1de 17

Funciones de Costo

y Optimizadores
Funciones de costo
Que es:
En un algoritmo de aprendizaje de máquina la función de costo o
perdida es fundamental, por que esta nos define que tan bien hace la
estimación, predicción o clasificación nuestro algoritmo.

Tomado de: https://developers.google.com/machine-learning/crash-course/descending-into-ml/training-and-loss


Funciones de costo
La funciones de costo mas conocidas calculan la distancia entre dos
conjuntos de valores:
Error cuadrático medio (Mean Squared Error) Error absoluto medio (Mean Absolute Error)

Error L1 Error L2

Donde n es el numero de muestras o ejemplos, y las etiquetas y ŷ las


predicciones
Funciones de costo
Existen también funciones de costo que definen la divergencia entre
dos distribuciones de probabilidad
Estas funciones tienen la característica de que tiene una alta velocidad
de convergencia aun con funciones de activación tipo sigmoide o
softmax, con las cuales las funciones mencionadas arriba son mucho
mas lentas
Entropía cruzada(Cross Entropy)

Donde C son las clases o numero de neuronas de salida


Funciones de costo
• Entropía cruzada Binaria: Es una capa de activación Sigmoidal +
Entropía cruzada. Este costo solo depende de la distancia a la etiqueta
verdadera.
• Entropía cruzada categórica: Es una capa de activación softmax +
entropía cruzada. Se usa solo para clasificación multi-clase
• Entropía cruzada categórica dispersa: Es una función especifica para
Deep learning que nos permite comparar una salida multi-clase con
una etiqueta numérica ([0.14,0.16,0.7] == 2).
Uso de Optimizadores
Un optimizador es un algoritmo que permite maximizar o minimizar
una función objetivo (o función de costo) que depende de unos
parámetros que pueden ser cambiados progresivamente.

Tomado de: http://parallel-welten.info/live/suggestions/nesterov-gradient-descent/


Optimizadores de primer orden
Estos se basan en el gradiente de la función de costo para la
minimización de esta.
 
El gradiente nos permite saber hacia donde
crese o decrece una función y este se calcula
en un instante dado mediante las derivadas
parciales y en el que se obtiene el Jacobiano
(matriz de ).
El algoritmo de optimización de primer orden
mas conocido es el de gradiente descendente
Optimizadores de segundo orden
Estos se basan en derivadas de segundo orden de la función de costo
para la minimización de esta. En estos optimizadores se utiliza el
Hessiano, que es la matriz de derivadas parciales de segundo orden.
El Hessiano nos dice en que sentido
crecen o decrecen las primeras
derivadas.
Debido al alto costo computacional,
estos optimzadores no son usados
normalmente en deep learing.

Tomado de: https://ipvs.informatik.uni-stuttgart.de/mlr/marc/teaching/13-


Optimization/04-secondOrderOpt.pdf
Optimizadores
Gradiente Descendiente
 El
gradiente descendiente es el Ventajas:
optimizador más conocido • Bajo costo computacional
Su función de actualización se define • Fácil de implementar
así:
• Fácil de entender
Desventajas:
• Se puede atascar en un mínimo local
Donde es la taza de aprendizaje, es el • Muy lento para dataset grandes
gradiente de la función de costo y • Requiere mucha memoria en
representa cada parámetro dataset grandes.
Optimizadores
Gradiente Descendiente Estocástico
•   optimizador actualiza los parámetros
Este Ventajas:
para cada muestra de entreno. • Converge en menos tiempo
• Puede obtener un nuevo mínimo
• No guarda valores de error anteriores
Desventajas:
• Varía mucho los pesos
Tomada de: https://towardsdatascience.com
• Puede salirse del mínimo global
• Requiere disminución gradual de la
taza de aprendizaje para converger
Donde representan cada muestra de
entreno.
Optimizadores
Momentum
 Las altas oscilaciones en el GDE (SGD), hacen Ventajas:
difícil su convergencia. Momentum prioriza la • Reduce las oscilaciones
dirección relevante suavizando las oscilaciones del GDE
en direcciones irrelevantes. • Converge mas rápido
que el GD
Desventajas:
En este algoritmo, se agrega una fracción del • Maneja un parámetro
factor de aprendizaje en el momento anterior adicional que debe ser
( Dando mas relevancia con un valor de o definido manualmente
similar y un valor de
Optimizadores
Gradiente Acelerado de Nesterov
 
Yurii Nesterov modifica Momentum para que Ventajas:
al empezar a salir del mínimo no continúe con • Reduce las oscilaciones
el momento. Para esto hace calcula el del GDE
momentum con error obtenido con el valor • Converge mas rápido
futuro de los parámetros. que el GD
Desventajas:
• Maneja un parámetro
adicional que debe ser
definido manualmente
Optimizadores Adaptativos
AdaGrad (Gradiente Descendiente Adaptativo)
•Simplemente
  permite que la taza de Ventajas:
aprendizaje se adapte basada en el • El learning rate cambia para
cada parámetro
gradiente de los parámetros anteriores.
• Su convergencia es mas
rápida que GD
Desventajas:
En esta ecuación la tasa de aprendizaje • La taza de aprendizaje
es modificada por el gradiente del siempre desciende. Deja de
aprender después de un
momento anterior , del valor que evita numero determinado de
la división por cero iteraciones
Optimizadores Adaptativos
AdaDelta
 Evita el decaimiento continuo en la taza de Ventajas:
aprendizaje. Esto lo hace mediante la • La taza de aprendizaje no
acumulación de gradientes anteriores con la decae, el entrenamiento no
siguiente regla de aprendizaje: para
Desventajas:
• Costoso
computacionalmente
Optimizadores Adaptativos
RMSprop
 
Este Optimizador incluye el uso de gradientes Ventajas:
cuadrados y la adaptación de la regla de • Reduce las oscilaciones del
aprendizaje con el tiempo GDE
• Converge mas rápido que el
GD
Desventajas:
siguen teniendo la misma relación que en • Maneja un parámetro
Momentum. Se adicionan una taza de adicional que debe ser
definido manualmente
aprendizaje y el valor para evitar división por
• Puede salir del mínimo global
cero
Optimizadores Adaptativos
Adam (Adaptive Momentum Estimation)
 Aligual que Momentum, mejora el desempeño Ventajas:
del GDE (SDG) esta vez usando los elementos de • Es muy rápido y converge
AdaGrad. En Adam se utilizan dos momentos
para la regla de aprendizaje: • Rectifica tasa de
aprendizaje muy baja y
varianzas en los pesos muy
altas
Desventajas:
Quedando la regla :
• Costoso
Los valores sugeridos son: =0,9, =0,999, = computacionalmente
Comparación Optimizadores
• Adam es de los mejores
optimizadores para entrenar una
red neuronal rápidamente
• Si se entrena con una base de
datos dispersa es mejor utilizar
métodos con tasa de aprendizaje
adaptativa.
• Si se quiere usar el gradiente
descendiente, usar una variación
que actualice pesos en mini-batchs
y no en toda la base de datos

También podría gustarte