Ajout de nœuds de biais à un perceptron multicouche en Python
Cet article explique comment incorporer des nœuds de biais dans un perceptron multicouche (MLP) en Python, et évalue leur effet sur la performance de classification.
Bienvenue dans la série réseaux de neurones d'All About Circuits, rédigée par le Directeur de l'Ingénierie Robert Keim. Si vous n'avez pas encore exploré les autres leçons, vous les trouverez listées ci-dessous. Elles fournissent une base solide pour comprendre les concepts discutés ici.
- Comment effectuer une classification avec un réseau de neurones : qu'est-ce que le perceptron ?
- Comment utiliser un exemple simple de réseau de neurones perceptron pour classifier des données
- Comment entraîner un perceptron de base
- Comprendre l'entraînement simple de réseau de neurones
- Introduction à la théorie de l'entraînement pour réseaux de neurones
- Comprendre le taux d'apprentissage dans les réseaux de neurones
- Apprentissage automatique avancé avec le perceptron multicouche
- La fonction d'activation sigmoïde : activation dans les réseaux de neurones perceptron multicouches
- Comment entraîner un perceptron multicouche
- Comprendre les formules d'entraînement et la rétropropagation pour perceptrons multicouches
- Architecture de réseau de neurones pour une implémentation Python
- Comment créer un perceptron multicouche en Python
- Traitement du signal avec réseaux de neurones : validation dans la conception de réseaux de neurones
- Jeux de données d'entraînement pour réseaux de neurones : comment entraîner et valider un réseau de neurones Python
- Combien de couches cachées et nœuds cachés un réseau de neurones a-t-il besoin ?
- Comment augmenter la précision d'un réseau de neurones à couche cachée
- Incorporation de nœuds de biais dans votre réseau de neurones
Les nœuds de biais sont des entrées additionnelles qui fournissent une valeur constante — typiquement +1 — directement à la couche d'entrée ou cachée d'un perceptron. Ils permettent au réseau de décaler les frontières de décision sans altérer les données d'entrée elles-mêmes. Cet article présente deux méthodes pratiques pour ajouter des nœuds de biais et montre comment évaluer leur impact sur la précision du modèle.
Méthode 1 : Ajout de biais via le tableur
Quand vos données d'entraînement ou de validation résident dans un tableur, vous pouvez insérer une colonne de biais sans toucher au code Python.

Étapes :
- Insérer une nouvelle colonne dans le tableur et la remplir avec la valeur de biais désirée (généralement +1).
- Ajuster la dimensionalité de la couche d'entrée dans votre code pour tenir compte de la nouvelle colonne.
Cette approche est rapide et ne nécessite aucun changement de code, la rendant idéale pour le prototypage.
Méthode 2 : Intégration du biais directement en Python
Pour plus de flexibilité — comme ajouter un biais aux couches cachées — vous modifierez l'architecture du réseau en code. Voici un exemple concis qui ajoute des nœuds de biais aux couches d'entrée et cachée.
Mise à jour de la dimensionalité de la couche d'entrée
# Charger les données d'entraînement
training_data = np.array(...) # forme : (échantillons, caractéristiques)
training_count = training_data.shape[0]
# Ajouter une colonne de +1 pour le biais d'entrée
bias_column = np.ones((training_count, 1))
training_data = np.hstack((training_data, bias_column))
# Répéter pour les données de validation
validation_data = np.hstack((validation_data, np.ones((validation_count, 1))))
Ici, np.ones crée une colonne de uns représentant l'entrée de biais constante. La fonction np.hstack ajoute ensuite cette colonne à la matrice de caractéristiques existante.
Ajout d'un nœud de biais dans la couche cachée
# Pendant le calcul de propagation avant
for node in range(hidden_dim):
# Calculer la somme pondérée pour chaque nœud caché
z = np.dot(input_vector, weights_input_hidden[:, node])
post_activation[node] = activation_function(z)
# Insérer la valeur du nœud de biais (+1) dans la couche cachée
post_activation[hidden_dim] = 1.0 # Nœud de biais à la fin
Quand hidden_dim inclut le nœud de biais, la boucle s'arrête avant le dernier nœud, et la valeur de biais est assignée après. Ajustez la boucle de validation correspondante de la même façon.
Choisir différentes valeurs de biais
Bien que +1 soit conventionnel, vous pouvez expérimenter avec d'autres constantes. Pour le biais d'entrée, multipliez bias_column par la valeur désirée. Pour le biais caché, modifiez l'assignation dans la boucle de propagation avant en conséquence.
Évaluation de l'impact du biais
Dans la Partie 16 de la série, le MLP peinait à classifier le jeu de données Experiment 3 à haute complexité. Pour déterminer si les nœuds de biais pouvaient aider, nous avons effectué dix exécutions d'entraînement indépendantes avec une couche cachée de sept unités, comparant quatre configurations : sans biais, biais entrée seulement, biais caché seulement, et les deux biais.

Les résultats montrent des différences minimes — les nœuds de biais n'ont pas amélioré significativement la précision pour ce jeu de données particulier. Ce résultat s'aligne avec des conclusions d'autres études suggérant que les nœuds de biais peuvent être bénéfiques dans certains contextes mais ne sont pas un booster de performance universel.
Conclusion
Bien que les nœuds de biais transforment rarement la précision de classification dans tous les scénarios, ils restent un outil architectural précieux. Incorporer le support des biais dans votre base de code assure que vous pouvez tester rapidement leur efficacité sur de futurs jeux de données ou variantes de modèle. En suivant les méthodes décrites ci-dessus, vous pouvez ajouter des nœuds de biais avec un effort minimal et évaluer leur impact systématiquement.
Robot industriel
- Rénover la surveillance réseau : un playbook stratégique pour l'IT d'entreprise moderne
- Durcir les dispositifs IoT industriels pour prévenir les cyberattaques
- Construire un réseau de capteurs sans fil abordable pour votre maison
- Minima locaux dans l'entraînement des réseaux de neurones : mythe ou réalité ?
- Intégrer la gestion des pièces de rechange dans votre GMAO : Booster efficacité et réduire coûts
- Choisir le bon réseau IoT : insights d'experts de l'industrie
- Maîtriser l'intégration robotique : Stratégies éprouvées pour réussir votre installation
- Transformer les perturbations de la chaîne d'approvisionnement en opportunités stratégiques
- Évaluer la Sécurité de Votre Réseau d'Atelier : Êtes-vous Prêt ?