Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les couches d’un réseau de neurones

Après cette leçon: Je peux décrire ce que font les couches d’un réseau de neurones.

Leçon de 55 min2 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Qu’est-ce qu’un réseau de neurones ?

Un réseau de neurones artificiels est une suite de couches, et chaque couche est faite de petits calculs appelés neurones. Savoir ce que fait chaque couche permet de lire un réseau comme une chaîne d’étapes simples, et non comme une boîte magique.

Un service de vélos en libre-service veut prévoir si une station sera pleine samedi. Il donne la température, la pluie et le jour à un réseau. Le réseau répond par un nombre.

À la fin de cette leçon

Remarque

Je peux décrire ce que font les couches d’un réseau de neurones.

Mots clés

MotCe que ça veut direExemple
Neuroneun petit calcul qui reçoit des nombres et rend un nombre
Poidsun nombre qui dit combien une entrée compte
Biaisun nombre ajouté qui décale le total
Fonction d’activationla règle qui transforme le total en sortieReLU
Coucheune rangée de neurones qui calculent ensemble
Couche cachéeune couche placée entre l’entrée et la sortie

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un neurone fait une somme pondérée

Un neurone reçoit plusieurs nombres, les entrées. Il multiplie chaque entrée par son poids, puis il additionne tous les produits.

Il ajoute enfin le biais, un nombre qui décale le total. Un grand poids positif donne beaucoup d’importance à l’entrée. Un poids négatif joue en sens inverse.

Exemple travaillé : un neurone à trois entrées

EntréeValeurPoidsValeur × poids
Température, en dizaines de degrés236
Pluie, en centimètres1-2-2
Week-end, 1 si oui111
Somme des produits5
Biais-4
Total1

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

La fonction d’activation décide de la sortie

Le total n’est pas encore la sortie. Une fonction d’activation le transforme. La plus courante s’appelle ReLU : elle rend le total s’il est positif, et 0 sinon.

La marche rend 1 si le total est positif, sinon 0. La sigmoïde rend un nombre lisse entre 0 et 1. Les deux boutons ci-dessous affichent ReLU puis la sigmoïde de cinq totaux.

ReLU de cinq totaux

Commande
docker exec jupyter python3 -c "for x in [-2, -1, 0, 1, 3]: print(x, max(0, x))"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

La sigmoïde de cinq totaux

Commande
docker exec jupyter python3 -c "import math; print([round(1 / (1 + math.exp(-x)), 3) for x in [-4, -2, 0, 2, 4]])"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Une erreur fréquente

Attention

Beaucoup pensent que chaque couche de plus rend le réseau plus puissant. Ce n’est vrai qu’avec une fonction d’activation. Sans elle, deux couches se réduisent à une seule somme pondérée, donc à une droite.

Trois sortes de couches

Les neurones sont rangés en couches. La couche d’entrée reçoit les nombres de départ et ne calcule rien. Les couches cachées sont entre les deux. La couche de sortie rend la réponse.

Chaque neurone d’une couche reçoit les sorties de toute la couche d’avant. L’apprentissage profond (en anglais deep learning) entraîne des réseaux à plusieurs couches cachées.

Dans votre carnet : les poids du réseau

Code: python
import pandas as pd
from sklearn.neural_network import MLPClassifier

jours = pd.read_csv("hires.csv")
entrees = jours[["temp_c", "rain_mm"]]
chargees = jours["hires"] >= 300
# Une couche cachée de 4 neurones.
reseau = MLPClassifier(hidden_layer_sizes=(4,), max_iter=2000, random_state=0)
reseau.fit(entrees, chargees)
for poids in reseau.coefs_:
    print(poids.shape)
# Combien de poids le réseau a-t-il à régler en tout ?

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.