Bonjour tout le monde,
Je viens de finir une ébauche de mon réseau de neurones multi-couches, utilisant l'approximation stochastiques du gradient descendant, backpropagation pour mettre à jour les poids et le sigmoid pour la fonction d'activation.
J'ai juste une légère incompréhension sur le biais : chacun de mes neurones a un bias (généré aléatoirement au début) qu'il utilise dans la sommation qui passera dans la fonction de squash, en l'occurrence le sigmoid dans mon cas.
J'ai constaté que lorsque je mettais à jour ce bias avec les deltas (plus un momentum mais ça ne change rien pour le problème), les résultats étaient totalement erronés. Si je ne le mets pas à jour, tout fonctionne niquel.
Ma question va être pourquoi peut-on utiliser un bias dans un cas multi-couche mais à quoi sert-il ? Dans le cas du perceptron simple, je vois son utilité à cause de la fonction sgn(x) mais là j'ai un peu de peine à conceptualiser. Faut-il le mettre à jour de la même façon que les autres poids ? Pour finir, à quoi sert-il concrètement dans du multi-couche ? Qu'est-ce qui change de l'enlever ? (ça marche aussi si je l'enlève)
Le réseau de neurones est testés sur du XOR et NXOR actuellement avant de passer au cas concret.
Je vous remercie de vos réponses. J'ai utilisé comme référence le livre Machine Learning de T.M.
Partager