Назначение параметра распада в функции nnet в R? - PullRequest
11 голосов
/ 22 февраля 2012

Я использую функцию nnet в R для обучения моей нейронной сети. Я не получаю то, что параметр распада в nnet есть? Используется ли этот размер шага в методе градиентного спуска или параметр регуляризации для преодоления переобучения?

Ответы [ 2 ]

7 голосов
/ 06 марта 2012

Это регуляризация, чтобы избежать переоснащения.

С документация (pdf) :

decay: параметр для снижения веса. По умолчанию 0.

Дополнительная информация доступна в книге авторов, Современная прикладная статистика с S. Четвертое издание , стр. 245:

Одним из способов обеспечения гладкости f является ограничение класса оценок, например, с помощью ограниченного числа узлов сплайнов. Другой способ - регуляризация , при котором критерий соответствия изменяется на

E + λC(f)

со штрафом C на "шероховатости" f. Снижение веса, специфичное для нервного сети, использует в качестве штрафа сумму квадратов весов wij. ... Использование снижения веса, по-видимому, помогает как процессу оптимизации, так и , чтобы избежать перегрузки . (выделение добавлено)

2 голосов
/ 30 января 2016

Дополняя ответ blahdiblah , глядя на исходный код, я думаю, что параметр weights соответствует скорости обучения обратное распространение (читая руководство, я не смог ' не понимаю, что это было). Посмотрите файл nnet.c , строка 236 , внутренняя функция fpass :

TotalError += wx * E(Outputs[i], goal[i - FirstOutput]);

здесь, в очень интуитивно понятной номенклатуре, E соответствует ошибке bp , а wx - это параметр, передаваемый функции, которая в конечном итоге соответствует идентификатору Weights[i].

Также вы можете быть уверены, что параметр decay действительно является тем, что он утверждает, перейдя к строкам 317 ~ 319 того же файла, внутри функции VR_dfunc :

for (i = 0; i < Nweights; i++)
    sum1 += Decay[i] * p[i] * p[i];
*fp = TotalError + sum1;

, где p соответствует весам соединений, что является точным определением регуляризации weight-decay .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...