Répondre

39

Le méta-paramètre weight_decay régit le terme de régularisation du réseau neuronal.

Lors de la formation, un terme de régularisation est ajouté à la perte du réseau pour calculer le gradient backprop. La valeur weight_decay 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 d'entraînement, plus ce terme devrait être faible. Plus vous avez de paramètres (c'est-à-dire, des réseaux plus profonds, des filtres plus grands, des couches InnerProduct plus grandes, etc.), plus ce terme devrait être élevé.

Caffe vous permet également de choisir entre L2 régularisation (par défaut) et L1 régularisation, en mettant

regularization_type: "L1" 

Cependant, étant donné que dans la plupart des cas les poids sont de petits nombres (c.-à--1<w<1), la norme L2 du poids est significativement plus petit que leur norme L1. Ainsi, si vous choisissez d'utiliser regularization_type: "L1", vous devrez peut-être régler weight_decay sur une valeur nettement inférieure.

Alors que le taux d'apprentissage peut changer (et change habituellement) au cours de l'entraînement, le poids de régularisation est réparti partout.

+0

Peut-être pourriez-vous expliquer les raisons de votre règle empirique? Avez-vous une source pour ça? – Janosch

+10

@Janosch habituellement on doit utiliser la régularisation quand il y a plus de paramètres que de contraintes sur un problème numérique. En apprentissage, les exemples d'apprentissage représentent des «contraintes». Donc, si vous avez (beaucoup) plus d'exemples d'entraînement que de paramètres gratuits, vous devez vous soucier moins de surapprentissage et vous pouvez réduire le délai de régularisation. Cependant, si vous avez très peu d'exemples d'entraînement (par rapport au nombre de paramètres), alors votre modèle est sujet à surapprentissage et vous avez besoin d'un terme de régularisation fort pour éviter cela – Shai

+0

Vous devez paramétrer 'param {lr_mult: 1 decay_mult: 1 } 'dans la couche' convolution' ou est le type de régularisation global? @Shai – thigi

13

La désintégration de poids est un terme de régularisation qui pénalise les poids importants. Lorsque le coefficient de perte de poids est important, la pénalité pour les gros poids est également importante, quand il s'agit de petits poids qui peuvent croître librement. Regardez cette réponse (pas spécifique au café) pour une meilleure explication: Difference between neural net "weight decay" and "learning rate".