Entraîner des réseaux de neurones avec Excel : construction et validation d'un perceptron multicouche Python
Dans cet article, nous montrerons comment générer des données d'entraînement dans Excel, entraîner un perceptron multicouche en Python, et valider sa performance.
Si vous cherchez à développer un réseau de neurones Python, vous êtes au bon endroit. Avant de plonger dans la préparation de données basée sur Excel, considérez de revoir le reste de la série ci-dessous pour le contexte fondamental :
- 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
Que sont les données d'entraînement ?
Dans les applications réelles, les échantillons d'entraînement consistent en entrées mesurées associées à des cibles connues qui permettent à un réseau de neurones d'apprendre une application entrée-sortie cohérente. Par exemple, supposez que vous vouliez un réseau pour prédire la qualité gustative d'une tomate basée sur couleur, forme et densité. En collectant des milliers de tomates, en enregistrant leurs attributs physiques, en goûtant chacune, et en compilant les résultats dans un tableau, vous créez le jeu de données que le réseau utilisera pour apprendre la relation entre attributs et qualité.
Chaque ligne représente un échantillon d'entraînement avec trois colonnes d'entrée (couleur, forme, densité) et une seule colonne de sortie cible.

Pendant l'entraînement, le réseau de neurones identifiera le motif sous-jacent — s'il existe — entre les trois valeurs d'entrée et la valeur de sortie.
Quantification des données d'entraînement
Toutes les entrées et sorties doivent être numériques. Des chaînes comme « forme prune » ou « appétissante » ne peuvent pas être données directement au réseau. La quantification convertit les descripteurs qualitatifs en échelles numériques. Par exemple, la forme pourrait être encodée de –1 (sphère parfaite) à +1 (extrêmement allongée). La qualité gustative pourrait être notée sur une échelle de cinq points puis encodée one-hot en un vecteur de sortie à cinq éléments.
Le diagramme suivant illustre l'encodage one-hot pour une tâche de classification à cinq classes.

L'encodage one-hot s'aligne bien avec l'activation sigmoïde logistique, qui produit des valeurs proches de 0 ou 1 en dehors d'une zone de transition étroite. Utiliser un seul nœud de sortie avec valeurs cibles 0–4 biaiserait le réseau vers les extrêmes et mènerait à des prédictions sans sens.

Création d'un jeu de données d'entraînement
Le réseau de neurones Python référencé dans la Partie 12 importe les échantillons depuis un fichier Excel. Les données utilisées ici sont arrangées comme suit :

Comme notre implémentation Perceptron ne supporte qu'un seul nœud de sortie, nous effectuons une classification binaire. Les valeurs d'entrée sont des nombres aléatoires entre –5 et +5, générés avec cette formule Excel :
=RANDBETWEEN(-10, 10)/2
La sortie est dérivée de la règle suivante :
=IF(AND(A2>0, B2>0, C2<0), 1, 0)
Ainsi, le réseau apprend qu'un échantillon est étiqueté 1 seulement quand input_0 > 0, input_1 > 0, et input_2 < 0 ; sinon, il reçoit 0.
Pour ce problème simple, 5 000 échantillons générés aléatoirement et une seule époque suffisent pour atteindre une haute précision de classification.
Entraînement du réseau
Configurez le réseau avec une dimensionalité d'entrée de trois (I_dim = 3), quatre nœuds cachés (H_dim = 4), et un taux d'apprentissage de 0,1 (LR = 0.1). Remplacez la ligne training_data = pandas.read_excel(...) par le chemin vers votre tableur. Si vous n'avez pas Excel, Pandas peut aussi lire les fichiers ODS.
L'exécution du script d'entraînement sur un portable 2,5 GHz Windows avec 5 000 échantillons se termine en quelques secondes. Si vous utilisez le script complet MLP_v1.py, la validation commencera automatiquement après l'entraînement.
Validation du réseau
La validation nécessite un second tableur généré avec les mêmes formules. Importez ces données de la même manière que les données d'entraînement :

Le snippet suivant démontre une routine de validation simple :
# Propagation avant pour obtenir la valeur post-activation output = sigmoid(np.dot(W_out, hidden_output)) # Appliquer un seuil pour obtenir une prédiction binaire prediction = 1 if output > 0.5 else 0 # Comparer avec la cible et accumuler les prédictions correctes
La précision de classification est calculée en divisant le nombre de prédictions correctes par le nombre total d'échantillons de validation.
Si np.random.seed(1) est omis, l'initialisation des poids variera entre exécutions, causant des fluctuations de précision. Sur 15 exécutions avec les paramètres spécifiés (5 000 échantillons d'entraînement, 1 000 échantillons de validation), la précision variait de 88,5 % à 98,1 %, avec une moyenne de 94,4 %.
Conclusion
Nous avons exploré les concepts clés derrière les données d'entraînement de réseaux de neurones, implémenté un perceptron multicouche Python, et évalué sa performance en utilisant des jeux de données générés par Excel. La série a considérablement progressé depuis son inception, et de nombreux sujets avancés attendent dans les prochains articles.
Robot industriel
- Récupérer la date et l'heure actuelles en Python : Guide pratique
- Innatera dévoile ses premières puces IA neuromorphiques pour applications edge ultra-basse consommation
- Installation gratuite d'un simulateur et éditeur VHDL : guide étudiant
- Minima locaux dans l'entraînement des réseaux de neurones : mythe ou réalité ?
- Optimiser la taille de la couche cachée pour améliorer la précision du réseau de neurones
- Top 5 défis de la 5G : naviguer spectre, coût, couverture, devices et sécurité
- Déploiement et gestion de réseaux de capteurs sans fil en entreprise
- Élevez votre expertise avec la formation experte sur pompes à vide BECKER
- Accélérer la formation au soudage robotique : gagner du temps, booster l'efficacité