risposta

39

Il parametro meta weight_decay determina il termine di regolarizzazione della rete neurale.

Durante l'allenamento viene aggiunto un termine di regolarizzazione alla perdita della rete per calcolare il gradiente di backprop. Il valore weight_decay determina in che modo dominante questo termine di regolarizzazione sarà nel calcolo del gradiente.

Come regola generale, più esempi di formazione hai, più debole dovrebbe essere questo termine. Più parametri hai (vale a dire, filtri più profondi, filtri più grandi, strati InnerProduct più grandi, ecc.) Più questo termine dovrebbe essere più alto.

Caffe permette anche di scegliere tra L2 regolarizzazione (default) e L1 regolarizzazione, impostando

regularization_type: "L1" 

Tuttavia, dal momento che nella maggior parte dei casi i pesi sono numeri piccoli (cioè, -1<w<1), il L2 norma del i pesi sono significativamente più piccoli della loro norma L1. Pertanto, se si sceglie di utilizzare regularization_type: "L1", potrebbe essere necessario regolare weight_decay su un valore significativamente inferiore.

Mentre la velocità di apprendimento può (e di solito avviene) cambiare durante l'allenamento, il peso di regolarizzazione è fisso in tutto.

+0

Forse potresti spiegare i motivi della tua regola generale? Hai una fonte per questo? – Janosch

+10

@Janosch di solito si deve usare la regolarizzazione quando ci sono più parametri dei vincoli su un problema numerico. Nell'apprendimento, gli esempi di formazione rappresentano "vincoli". Quindi, se hai (molto) più esempi di allenamento rispetto ai parametri gratuiti, devi preoccuparti meno dell'allocazione e puoi ridurre il termine di regolarizzazione. Tuttavia, se hai pochissimi esempi di allenamento (rispetto al numero di parametri), il tuo modello è soggetto a sovradattamento e hai bisogno di forti termini di regolarizzazione per evitare che ciò accada. – Shai

+0

Devi impostare 'param {lr_mult: 1 decay_mult: 1 } 'nel livello' convolution' o il tipo di regolarizzazione è globale? @Shai – thigi

13

Il decadimento del peso è un termine di regolarizzazione che penalizza i grandi pesi. Quando il coefficiente di decadimento del peso è elevato, anche la penalità per i pesi grandi è grande, quando i pesi piccoli possono crescere liberamente.

Guarda questa risposta (non specifica per il caffè) per una spiegazione migliore: Difference between neural net "weight decay" and "learning rate".

Problemi correlati