Chapitre 3 - Concepts de Basescsds
Chapitre 3 - Concepts de Basescsds
Chapitre 3 - Concepts de Basescsds
Introduction
Dans ce chapitre, nous allons explorer les concepts fondamentaux du Machine Learning. Ces
notions sont essentielles pour comprendre comment les algorithmes de Machine Learning
fonctionnent et comment les utiliser efficacement.
1. Algorithmes et Modèles
Qu'est-ce qu'un Algorithme ?
Un algorithme est une série d'instructions précises permettant de résoudre un problème ou
de réaliser une tâche. Dans le contexte du Machine Learning, un algorithme prend des
données en entrée et les transforme pour produire des résultats ou des prédictions.
2. Données et Prétraitement
Importance des Données
Les données sont au cœur du Machine Learning. La qualité et la quantité des données
disponibles affectent directement les performances des modèles. Il est crucial de collecter et
de préparer correctement les données avant de les utiliser pour entraîner un modèle.
Étapes de Prétraitement des Données
1. Collecte des Données : Rassembler les données à partir de diverses sources (bases de
données, fichiers CSV, API, etc.).
2. Nettoyage des Données : Supprimer ou corriger les données incorrectes, manquantes ou
dupliquées.
3. Transformation des Données : Convertir les données en un format approprié pour
l'algorithme (par exemple, normaliser les valeurs numériques, encoder les catégories).
4. Division des Données : Séparer les données en ensembles d'entraînement et de test pour
évaluer la performance du modèle.
Techniques de Prétraitement
Normalisation : Ajuster les valeurs des données pour qu'elles se situent dans une même
échelle.
Encodage : Convertir des données catégorielles en données numériques (par exemple,
utiliser le one-hot encoding).
Imputation : Remplacer les valeurs manquantes par des estimations (par exemple, la
moyenne ou la médiane).
Couleur
Rouge
Vert
Bleu
Rouge
Après application du One Hot Encoding, nous obtenons :
One Hot Encoded :
import pandas as pd
# Exemple de données
data = {'Couleur': ['Rouge', 'Vert', 'Bleu', 'Rouge']}
df = pd.DataFrame(data)
print(one_hot_encoded_df)
Sortie :
Conclusion
Le One Hot Encoding est une méthode essentielle pour transformer des variables
catégorielles en données numériques que les algorithmes de Machine Learning peuvent
utiliser. Bien qu'il présente certains défis, notamment l'explosion dimensionnelle, ses
avantages en font une technique incontournable dans le prétraitement des données. En
utilisant des outils comme pandas, la mise en œuvre du One Hot Encoding devient simple et
rapide, permettant de se concentrer sur l'amélioration des modèles de Machine Learning.
3. Entraînement et Validation
Entraînement d'un Modèle
L'entraînement d'un modèle consiste à ajuster ses paramètres pour minimiser l'erreur sur les
données d'entraînement. Cela implique de faire passer les données à travers l'algorithme et
de mettre à jour les paramètres en fonction des erreurs commises.
Processus d'Entraînement
L'entraînement d'un modèle de Machine Learning est une étape cruciale où l'algorithme
apprend à partir des données pour faire des prédictions précises. Le processus
d'entraînement peut être divisé en plusieurs sous-étapes : initialisation, propagation avant,
calcul de l'erreur, et rétropropagation. Examinons chaque étape en détail.
1. Initialisation
La première étape de l'entraînement d'un modèle consiste à initialiser les paramètres du
modèle. Ces paramètres peuvent être des poids dans un réseau de neurones ou des
coefficients dans une régression linéaire. L'initialisation est souvent réalisée de manière
aléatoire ou à l'aide de méthodes spécifiques pour garantir un bon point de départ pour
l'apprentissage.
Formule de Calcul
Pour un neurone ( j ) dans une couche donnée :
n
zj = ∑ w ij x i + b j
i=1
a j = f (z j )
xi : valeur de l'entrée i
bj : biais du neurone j
f : fonction d'activation
aj : sortie du neurone j
Avantages :
Sortie normalisée entre 0 et 1.
Bonne pour les modèles où une probabilité est nécessaire.
Inconvénients :
Problème de gradient évanescent (les gradients deviennent très petits pour des valeurs
extrêmes de ). z
Avantages :
Centrée autour de zéro, ce qui peut améliorer la convergence du modèle.
Sortie normalisée entre -1 et 1.
Inconvénients :
Problème de gradient évanescent, bien que moins sévère que la sigmoïde.
Avantages :
Simplicité et efficacité computationnelle.
Résout le problème de gradient évanescent en partie.
Inconvénients :
Problème de neurones morts (si un neurone sort constamment des valeurs négatives, il
peut cesser de contribuer à l'apprentissage).
4. Leaky ReLU
Une variante de ReLU qui permet un petit gradient pour les valeurs négatives.
Leaky ReLU(z) = max(αz, z)
5. Softmax
La fonction Softmax est utilisée dans les couches de sortie des réseaux de neurones pour les
problèmes de classification multi-classes. Elle transforme un vecteur de valeurs en un
vecteur de probabilités.
z
e i
Sof tmax(z i ) = zj
∑ e
j
Avantages :
Interprétation directe en termes de probabilités.
Inconvénients :
Sensible aux grandes valeurs dans les entrées.
import numpy as np
def sigmoid(z):
return 1 / (1 + np.exp(-z))
def tanh(z):
return np.tanh(z)
def relu(z):
return np.maximum(0, z)
def softmax(z):
exp_z = np.exp(z - np.max(z)) # stabilité numérique
return exp_z / np.sum(exp_z, axis=0)
Conclusion
Les fonctions d'activation jouent un rôle crucial dans les réseaux de neurones en
introduisant de la non-linéarité, en normalisant les sorties et en permettant aux modèles de
capturer des relations complexes dans les données. Choisir la bonne fonction d'activation
dépend du problème spécifique à résoudre et de la structure du réseau de neurones utilisé.
En comprenant leurs avantages et inconvénients, vous serez mieux équipé pour concevoir et
entraîner des réseaux de neurones efficaces.
Initialisation
Supposons les entrées x1 et .x2
Couche Cachée
Chaque neurone de la couche cachée reçoit x1 et ., calcule la somme pondérée, ajoute un
x2
(1) (1)
a = f (z )
1 1
ij
j i b
(1)
Couche de Sortie
Le neurone de la couche de sortie reçoit les sorties de la couche cachée, calcule la somme
pondérée, ajoute un biais, et applique une fonction d'activation.
(2) (2) (1) (2) (1) (2) (1) (2)
z = w a + w a + w a + b
1 11 1 21 2 31 3 1
(2) (2)
a = f (z )
1 1
ij
j
Input Layer (2 neurones) -> Hidden Layer (3 neurones) -> Output Layer (1 neurone)
Exemple de Code Python
import numpy as np
# Données d'entrée
X = np.array([0.5, 0.1])
Conclusion
La propagation avant dans un réseau de neurones consiste à faire passer les données
d'entrée à travers les différentes couches du réseau, en appliquant des transformations
(somme pondérée + biais + fonction d'activation) pour chaque neurone, jusqu'à obtenir la
sortie finale. Cette étape est essentielle pour comprendre comment les réseaux de neurones
font des prédictions et constitue la base de l'entraînement des modèles de Machine
Learning.
3. Calcul de l'Erreur
Une fois que les prédictions sont générées, l'erreur est calculée en comparant les prédictions
aux valeurs réelles. L'erreur est une mesure de la précision du modèle et est utilisée pour
ajuster les paramètres du modèle.
Exemple : Calcul de l'Erreur avec la MSE (Mean Squared Error)
def calculate_error(y_true, y_pred):
return np.mean((y_true - y_pred) ** 2)
5. Itération du Processus
Le processus d'entraînement est itératif. Les étapes de propagation avant, calcul de l'erreur,
et rétropropagation sont répétées plusieurs fois sur l'ensemble des données d'entraînement
pour améliorer progressivement les performances du modèle. Chaque cycle complet à
travers les données est appelé une époque (epoch).
# Paramètres d'entraînement
learning_rate = 0.01
epochs = 1000
# Entraînement du modèle
trained_weights = train_model(X_train, y_train, weights, learning_rate, epochs)
Conclusion
Le processus d'entraînement d'un modèle de Machine Learning implique plusieurs étapes
clés : initialisation, propagation avant, calcul de l'erreur, rétropropagation, et itération.
Chacune de ces étapes joue un rôle crucial dans l'apprentissage du modèle et son
amélioration au fil du temps. En suivant ce processus, un modèle peut apprendre à faire des
prédictions précises à partir des données.
En comprenant et en maîtrisant ces concepts, vous serez mieux préparé pour entraîner des
modèles de Machine Learning et optimiser leurs performances.
Techniques de Validation
Validation Croisée : Diviser les données en k sous-ensembles et entraîner le modèle k
fois, en utilisant chaque sous-ensemble comme ensemble de test une fois.
Ensemble d'Entraînement/Test : Séparer les données en deux parties, une pour
l'entraînement et une pour le test.
Conclusion
Comprendre les concepts de base du Machine Learning est crucial pour pouvoir appliquer
efficacement des algorithmes et des modèles aux données. Ce chapitre a couvert les notions
essentielles d'algorithmes et de modèles, l'importance des données et du prétraitement,
ainsi que le processus d'entraînement et de validation. Avec ces bases, vous serez prêt à
explorer des algorithmes plus complexes et à développer des modèles performants.