Я использую Pybrain для обучения рекуррентной нейронной сети. Однако среднее значение весов продолжает расти, и после нескольких итераций точность обучения и теста становится ниже. Теперь максимальная производительность на данных поезда составляет около 55%, а на тестовых данных — около 50%. Я думаю, может быть, у rnn есть некоторые проблемы с обучением из-за его большого веса. Как я могу это решить? Заранее спасибо.
Почему средний вес rnn продолжает расти?
Ответы (1)
Обычный способ ограничить параметры сети — использовать ограниченный функционал ошибки, который каким-то образом наказывает абсолютную величину параметров. Это делается в «распаде веса», когда вы добавляете к своей ошибке суммы квадратов норму весов ||w||
. Обычно это евклидова норма, но иногда также и 1-норма, и в этом случае ее называют «лассо». Обратите внимание, что снижение веса также называется гребневой регрессией или регуляризацией по Тихонову.
В PyBrain согласно этой странице в документации доступна Lasso-версия уменьшения веса, которую можно параметризовать параметром wDecay
.
person
davidhigh
schedule
13.10.2014