Une couche dans un réseau neuronal sans biais n'est rien de plus que la multiplication d'un vecteur d'entrée avec une matrice. (Le vecteur de sortie peut être passé par une fonction sigmoïde pour la normalisation et pour une utilisation dans ANN à plusieurs couches par la suite, mais ce n'est pas important.)
Cela signifie que vous utilisez une fonction linéaire et donc une entrée de tous les zéros sera toujours mappée sur une sortie de tous les zéros. Cela peut être une solution raisonnable pour certains systèmes, mais en général, elle est trop restrictive.
En utilisant un biais, vous ajoutez effectivement une autre dimension à votre espace d'entrée, qui prend toujours la valeur une, de sorte que vous évitez un vecteur d'entrée de tous les zéros. Vous ne perdez aucune généralité par cela car votre matrice de poids entraînée n'a pas besoin d'être surjective, elle peut donc toujours correspondre à toutes les valeurs précédemment possibles.
2d ANN:
Pour un ANN mappant deux dimensions à une dimension, comme lors de la reproduction des fonctions AND ou OR (ou XOR), vous pouvez penser à un réseau neuronal comme suit:
Sur le plan 2D, marquez toutes les positions des vecteurs d'entrée. Ainsi, pour les valeurs booléennes, vous souhaitez marquer (-1, -1), (1,1), (-1,1), (1, -1). Ce que fait maintenant votre ANN, c'est de tracer une ligne droite sur le plan 2D, en séparant la sortie positive des valeurs de sortie négatives.
Sans biais, cette ligne droite doit passer par zéro, alors qu'avec le biais, vous êtes libre de la mettre n'importe où. Donc, vous verrez que sans biais, vous rencontrez un problème avec la fonction ET, car vous ne pouvez pas mettre les deux (1, -1) et (-1,1) du côté négatif. (Ils ne sont pas autorisés à être sur la ligne.) Le problème est le même pour la fonction OU. Avec un biais, cependant, il est facile de tracer la ligne.
Notez que la fonction XOR dans cette situation ne peut pas être résolue même avec un biais.