Подтвердить что ты не робот

Что такое мета-параметр `weight_decay` в Caffe?

Посмотрев на пример 'solver.prototxt', размещенный на BVLC/caffe git, есть мета-параметр тренировки

weight_decay: 0.04

Что означает этот мета-параметр? И какое значение мне следует назначить?

4b9b3361

Ответ 1

Мета-параметр weight_decay управляет членом регуляризации нейронной сети.

Во время обучения в потери сети добавляется термин регуляризации для вычисления градиента backprop. Значение weight_decay определяет, насколько доминирующим будет этот член регуляризации в градиентном вычислении.

Как правило, чем больше примеров обучения у вас, тем слабее этот термин. Чем больше параметров у вас (т.е. Более глубокие сетевые, более крупные фильтры, более крупные уровни InnerProduct и т.д.), Тем выше этот термин.

Caffe также позволяет выбирать между L2 регуляризацией (по умолчанию) и регуляцией L1, установив

regularization_type: "L1"

Однако, поскольку в большинстве случаев веса являются малыми числами (т.е. -1<w<1), норма веса L2 весов значительно меньше их нормы L1. Таким образом, если вы решите использовать regularization_type: "L1", вам может потребоваться настроить weight_decay на значительно меньшее значение.

В то время как скорость обучения может (и обычно) меняться во время обучения, вес регуляризации фиксируется повсюду.

Ответ 2

Распад веса - это термин регуляризации, который наказывает большие веса. Когда коэффициент распада веса большой, штраф за большие веса также большой, когда он малый вес может свободно расти.

Посмотрите на этот ответ (не определенный для caffe) для лучшего объяснения: Разница между нейронной сетью "распад веса" и "скорость обучения" .