2010-06-03 11 views
4

Je transfère du code C impliquant un réseau neuronal artificiel vers Java. J'ai décidé d'utiliser le Encog framework. Je voudrais que mon réseau ait un neurone de polarisation (qui utilise des synapses pondérées et toujours des sorties 1.0) connecté aux couches cachées et à la couche de sortie; ils sont marqués en vert dans this graph.Ajout d'un neurone de polarisation au réseau Encog

Comment puis-je créer un tel réseau par programme? Est-ce que chaque neurone de bias devrait avoir sa propre couche? J'ai essayé d'instancier un BasicLayer pour chaque neurone de polarisation, mais cela ne semble pas avoir d'effet même si la couche est connectée via un WeightedSynapse.

Merci,

Martin Wiboe

Répondre

4

OKay, je sais que celui-ci! Je suis l'un des principaux développeurs d'Encog. :)

Nous avons amélioré le support pour cela dans Encog 2.4 (qui est en version bêta), mais même la version actuelle le supporte. Dans Encog 2.3, le biais est appelé seuil. Créez donc vos calques en spécifiant que vous VOULEZ des valeurs de seuil. Fondamentalement, cela crée les entrées de biais pour chacune des couches que vous spécifiez avec des valeurs de seuil. Je construis tout cela dans le même calque parce qu'il améliore les performances, tout fonctionne de la même manière.

Nous avons en fait eu une discussion à ce sujet, et nous le rendons plus clair dans Encog 2.4. Vous pouvez lire la discussion ici.

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