2015-11-01 2 views
0

Я экспериментирую с нейронными сетями. У меня есть сеть с 8 входными нейронами, 5 скрытых и 2 выхода. Когда я позволяю сети учиться с backpropagation, иногда это приводит к худшему результату между одиночными итерациями обучения. Что может быть причиной? Это не должно быть ошибкой реализации, потому что я даже пытался использовать реализацию из «Введение в Neural Networks для Java», и он делает то же самое.Backpropagation делает сеть хуже

ответ

1

Ничего страшного. Обратное распространение - это просто оптимизация градиента, а методы градиента не гарантируют сделать ошибку меньшей на каждой итерации (у вас есть гарантия того, что существует очень небольшой размер шага/скорость обучения, которая имеет такое свойство, но на практике никоим образом найти его); кроме того, вы, вероятно, обновляете весы после каждого образца, делающего свое обучение стохастическим, что в этом случае еще более «неустойчиво» (так как вы действительно не вычисляете истинный градиент). Однако, если из-за этого ваш метод не сходится - подумайте о правильном масштабировании ваших данных, а также о снижении скорости обучения и, возможно, добавив момент импульса. Это просто связанные с градиентом вопросы, связанные с оптимизацией, а не BP как таковые.

Смежные вопросы