tutorial net machine-learning neural-network deep-learning caffe gradient-descent

machine-learning - tutorial - net forward



¿Qué es el metaparámetro `weight_decay` en Caffe? (2)

Mirando un ejemplo ''solver.prototxt'' , publicado en BVLC / caffe git, hay un meta parámetro de entrenamiento

weight_decay: 0.04

¿Qué significa este metaparámetro? ¿Y qué valor debo asignarle?


El weight_decay rige el término de regularización de la red neuronal.

Durante el entrenamiento, se agrega un término de regularización a la pérdida de la red para calcular el gradiente de backprop. El valor de weight_decay determina cuán dominante será este término de regularización en el cálculo del gradiente.

Como regla general, cuantos más ejemplos de entrenamiento tenga, más débil será este término. Cuantos más parámetros tenga (es decir, una red más profunda, filtros más grandes, capas de producto interno más grandes, etc.), mayor será este término.

Caffe también le permite elegir entre la regularización L2 (predeterminada) y la regularización L1 , configurando

regularization_type: "L1"

Sin embargo, dado que en la mayoría de los casos los pesos son números pequeños (es decir, -1<w<1 ), la norma L2 de los pesos es significativamente menor que su norma L1 . Por lo tanto, si elige usar regularization_type: "L1" es posible que deba ajustar weight_decay a un valor significativamente menor.

Si bien la tasa de aprendizaje puede (y generalmente cambia) durante el entrenamiento, el peso de la regularización se fija en todo momento.


La pérdida de peso es un término de regularización que penaliza los grandes pesos. Cuando el coeficiente de caída de peso es grande, la penalización por los pesos grandes también es grande, cuando es pequeño, los pesos pueden crecer libremente.

Mire esta respuesta (no específica para caffe) para una mejor explicación: Diferencia entre la "pérdida de peso" neta neta y la "tasa de aprendizaje" .