Добавление нейрона смещения в сеть Encog - PullRequest
4 голосов
/ 04 июня 2010

Я портирую некоторый код на C, использующий искусственную нейронную сеть, на Java. Я решил использовать Encog framework .

Я бы хотел, чтобы в моей сети был нейрон смещения (который использует взвешенные синапсы и всегда выводит 1,0), подключенный к скрытым слоям и выходному слою; они помечены зеленым цветом в этом графике .

Как я могу создать такую ​​сеть программно? Должен ли каждый нейрон смещения иметь свой собственный слой? Я пытался создать экземпляр BasicLayer для каждого нейрона смещения, но, похоже, это не имеет никакого эффекта, даже если слой подключен через WeightedSynapse .

Спасибо,

Мартин Вибо

1 Ответ

4 голосов
/ 04 июня 2010

Хорошо, я знаю это! Я один из основных разработчиков Encog. :)

Мы улучшили поддержку для этого в Encog 2.4 (который находится в бета-версии), однако даже текущая версия поддерживает это. В Encog 2.3 смещение называется порогом. Поэтому создайте свои слои, указав, что вы хотите пороговые значения. По сути, это создает входные данные смещения для каждого из указанных слоев, для которых установлены пороговые значения. Я встроил все это в один слой, потому что это улучшает производительность, все работает одинаково.

Мы на самом деле обсуждали это, и мы проясним это в Encog 2.4. Вы можете прочитать обсуждение здесь.

http://www.heatonresearch.com/node/1477

...