Посмотрев на пример 'solver.prototxt', размещенный на BVLC/caffe git, есть мета-параметр тренировки
weight_decay: 0.04
Что означает этот мета-параметр? И какое значение мне следует назначить?
Ответ 1
Мета-параметр weight_decay управляет членом регуляризации нейронной сети.
Во время обучения в потери сети добавляется термин регуляризации для вычисления градиента backprop. Значение weight_decay определяет, насколько доминирующим будет этот член регуляризации в градиентном вычислении.
Как правило, чем больше примеров обучения у вас, тем слабее этот термин. Чем больше параметров у вас (т.е. Более глубокие сетевые, более крупные фильтры, более крупные уровни InnerProduct и т.д.), Тем выше этот термин.
Caffe также позволяет выбирать между L2 регуляризацией (по умолчанию) и регуляцией L1, установив
regularization_type: "L1"
Однако, поскольку в большинстве случаев веса являются малыми числами (т.е. -1<w<1), норма веса L2 весов значительно меньше их нормы L1. Таким образом, если вы решите использовать regularization_type: "L1", вам может потребоваться настроить weight_decay на значительно меньшее значение.
В то время как скорость обучения может (и обычно) меняться во время обучения, вес регуляризации фиксируется повсюду.
Ответ 2
Распад веса - это термин регуляризации, который наказывает большие веса.
Когда коэффициент распада веса большой, штраф за большие веса также большой, когда он малый вес может свободно расти.