En regardant un exemple 'solver.prototxt'
, publié sur BVLC/caffe git, il existe un méta-paramètre de formation
weight_decay: 0.04
Que signifie ce méta-paramètre? Et quelle valeur dois-je lui attribuer?
Le weight_decay
un méta paramètre régit le terme de régularisation du réseau neuronal.
Pendant la formation, un terme de régularisation est ajouté à la perte du réseau pour calculer le gradient de backprop. Le weight_decay
value détermine la dominance de ce terme de régularisation dans le calcul du gradient.
En règle générale, plus vous avez d'exemples de formation, plus ce terme devrait être faible. Plus vous avez de paramètres (c.-à-d. Un filet plus profond, des filtres plus grands, des couches InnerProduct plus grandes, etc.), plus ce terme doit être élevé.
Caffe vous permet également de choisir entre L2
régularisation (par défaut) et L1
régularisation, en définissant
regularization_type: "L1"
Cependant, comme dans la plupart des cas, les poids sont de petits nombres (c'est-à-dire -1<w<1
), le L2
la norme des poids est nettement inférieure à leur L1
norme. Ainsi, si vous choisissez d'utiliser regularization_type: "L1"
vous devrez peut-être régler weight_decay
à une valeur nettement inférieure.
Bien que le taux d'apprentissage puisse changer (et change généralement) pendant la formation, le poids de régularisation est fixe tout au long.
La décroissance pondérale est un terme de régularisation qui pénalise les gros poids. Lorsque le coefficient de décroissance du poids est grand, la pénalité pour les gros poids est également grande, quand il s'agit de petits poids, ils peuvent croître librement.
Regardez cette réponse (non spécifique à caffe) pour une meilleure explication: Différence entre le réseau neuronal "décroissance du poids" et "taux d'apprentissage" .