Как выбрать Xmax, min (диапазон весов) для нейронной сети MLP, обученной через PSO?

Я тренирую нейронную сеть MLP, используя оптимизацию роя частиц для классификации с использованием наборов данных из UCI. Я использую PyBrain для создания NN и свой собственный код для обучения сети. У меня вопрос: как выбрать параметр Xmax, Xmin для PSO (т.е. диапазон весов NN)?


person sham    schedule 23.03.2012    source источник
comment
Вы уверены, что хотите использовать алгоритм оптимизации без производных для контролируемого обучения? Алгоритмы оптимизации, использующие информацию о градиенте, обычно намного быстрее.   -  person alfa    schedule 24.03.2012
comment
@alfa Мое исследование посвящено использованию другого алгоритма обучения для обучения NN. В этом случае я использую PSO, а не GA и BP. Следовательно, PSO. :)   -  person sham    schedule 24.03.2012
comment
Для обучения с подкреплением это имеет смысл (нейроэволюция). Но для обучения с учителем алгоритмы, использующие информацию о градиенте, обычно более эффективны в отношении памяти и временной сложности. Но если вы хотите это сделать и попробовать разные алгоритмы без производных, я могу порекомендовать CMA-ES. Этот алгоритм оптимизации работает очень хорошо e. г. в обучении с подкреплением.   -  person alfa    schedule 24.03.2012
comment
Спасибо за предложение @alfa. Я посмотрю в CMA-ES. Если я правильно понимаю (насколько я понял), диапазон весов для сетевых сетей неограничен, поэтому Xmax для сетевых сетей, обученных PSO, остается на усмотрение пользователя.   -  person sham    schedule 26.03.2012
comment
Да, обычно веса не ограничены, но некоторые люди устанавливают диапазон e. г. до [-100; 100].   -  person alfa    schedule 27.03.2012


Ответы (1)


Оптимизация роя частиц не имеет внутреннего понятия границ. Один из традиционных подходов - наложить штраф за выход из допустимого региона. Штраф будет работать лучше, если он будет непрерывно увеличиваться с расстоянием от допустимой области, чем если есть резкий разрыв. Фактические веса нейронной сети могут использовать значения, обрезанные до допустимой области.

person amcnabb    schedule 23.03.2012
comment
Означает ли это, что я могу использовать произвольный диапазон весов, который будет оптимизирован PSO? Здесь автор использовал диапазон [-1, 1] для весов, но я не могу найти источник, который связывает выбор диапазона весов с вещами, специфичными для проблемы (например, сетевые входы). - person sham; 23.03.2012
comment
@sham, если я правильно понимаю, я думаю, что лучше было бы задать этот вопрос как отдельный вопрос: какой диапазон весов следует использовать в нейронной сети MLP? PSO оптимизирует все, что вы ему скажете. :) - person amcnabb; 23.03.2012
comment
Спасибо. Я попробую установить диапазон на то, что найду в сети (есть другая статья, в которой установлен диапазон на [-50,50]), и продолжу. - person sham; 23.03.2012