← Back to My Courses 2023-2024

🔗 Cours connexes:


Machine Learning

PART A: GENERALITIES

Presentation

Le cours “Machine Learning” introduit les concepts fondamentaux de l’apprentissage automatique, permettant aux machines d’apprendre à partir de données sans être explicitement programmées. Ce cours couvre les algorithmes classiques d’apprentissage supervisé et non supervisé, ainsi que leur implémentation pratique avec Python et scikit-learn.

Année Académique: 2023-2024
Semestre: 8
Catégorie: Intelligence Artificielle / Data Science


PART B: DESCRIPTIVE PART

Experience Details

Environment and Context

Le cours combinait théorie mathématique (statistiques, algèbre linéaire, optimisation) avec implémentation pratique en Python. Nous avons travaillé sur des datasets réels (Iris, MNIST, etc.) et utilisé des bibliothèques standard (NumPy, pandas, scikit-learn, matplotlib) pour développer des modèles prédictifs.

My Function

Dans ce cours, j’ai été responsable de:

PART C: TECHNICAL PART

Cette section explore les aspects techniques du Machine Learning.

Technical Concepts Learned

1. Types d’Apprentissage

Apprentissage Supervisé: Apprendre à partir de données étiquetées (X, y).

Apprentissage Non Supervisé: Trouver structure cachée dans données non étiquetées.

Apprentissage par Renforcement: Agent apprend par interaction (récompenses/punitions). (Non couvert en détail dans ce cours)

2. Régression Linéaire

Modèle:

y = β₀ + β₁x₁ + β₂x₂ + ... + βₙxₙ + ε
ou en vectoriel: y = X^T β + ε

Fonction de coût (MSE):

J(β) = (1/2m) Σ(h(x⁽ⁱ⁾) - y⁽ⁱ⁾)²

Solution analytique (Normal Equation):

β = (X^T X)⁻¹ X^T y

Gradient Descent:

β := β - α ∇J(β)

Régularisation:

3. Régression Logistique

Pour classification binaire.

Fonction sigmoid:

σ(z) = 1 / (1 + e^(-z))

Modèle:

P(y=1|x) = σ(β^T x)

Fonction de coût (cross-entropy):

J(β) = -(1/m) Σ[y log(h(x)) + (1-y) log(1-h(x))]

Optimisation: Gradient Descent

Extension multiclasse: Softmax Regression

Réseau de neurones multicouche

Figure : Architecture d'un perceptron multicouche avec propagation avant

4. Arbres de Décision

Principe: Partitionner l’espace des features par tests successifs.

Construction:

Critères de split:

Avantages:

Inconvénients:

Régularisation:

5. Ensembles Methods

Bagging (Bootstrap Aggregating): Entraîner plusieurs modèles sur sous-ensembles aléatoires, moyenner prédictions.

Random Forest: Bagging d’arbres + sélection aléatoire de features à chaque split.

Boosting: Entraîner modèles séquentiellement, chacun corrigeant erreurs du précédent.

AdaBoost: Pondérer exemples mal classés plus fortement.

Gradient Boosting: Ajuster modèle sur résidus du modèle précédent.

XGBoost: Implémentation optimisée de Gradient Boosting.

6. Support Vector Machines (SVM)

Principe: Trouver hyperplan qui maximise la marge entre classes.

Marge: distance au point le plus proche de chaque classe.

Hard Margin: données linéairement séparables Soft Margin: tolérer erreurs (paramètre C)

Kernel Trick: Projeter données dans espace haute dimension où linéairement séparables.

Kernels courants:

SVM pour régression (SVR): Minimiser erreur hors marge ε.

7. K-Nearest Neighbors (KNN)

Principe: Classer selon majorité des K voisins les plus proches.

Distance: Euclidienne, Manhattan, Minkowski

Choix de K:

Avantages:

Inconvénients:

8. Clustering - K-Means

Objectif: Partitionner données en K clusters.

Algorithme:

  1. Initialiser K centroïdes aléatoirement
  2. Affecter chaque point au centroïde le plus proche
  3. Recalculer centroïdes (moyenne des points)
  4. Répéter 2-3 jusqu’à convergence
Inertie: Σ   x - centroïde(x)   ²

Choix de K: méthode du coude (elbow method)

Limitations:

Variantes: K-Means++, Mini-Batch K-Means

Autres algorithmes de clustering:

9. Réduction de Dimensionnalité - PCA

PCA (Principal Component Analysis): Projeter données sur axes de variance maximale.

Algorithme:

  1. Centrer données (moyenne = 0)
  2. Calculer matrice de covariance
  3. Décomposition en valeurs propres/vecteurs propres
  4. Projeter sur k premiers vecteurs propres

Variance expliquée: Proportion de variance totale conservée.

Usages:

t-SNE: Projection non-linéaire pour visualisation. Préserve structure locale (voisinages).

10. Évaluation des Modèles

Classification:

Matrice de confusion:

                Prédit +    Prédit -
Réel +         TP          FN
Réel -         FP          TN

Métriques:

Courbe ROC (Receiver Operating Characteristic): TPR vs FPR à différents seuils.

AUC (Area Under Curve): aire sous courbe ROC (0.5 à 1).

Régression:

11. Validation et Optimisation

Train/Test Split: Séparer données (typiquement 80/20 ou 70/30).

Cross-Validation: K-Fold: diviser en K sous-ensembles, entraîner K fois en utilisant K-1 pour train, 1 pour validation.

Overfitting vs Underfitting:

Courbes d’apprentissage: Erreur train et validation vs taille dataset ou complexité.

Hyperparamètres: Paramètres non appris (à fixer avant entraînement).

Grid Search: Tester toutes combinaisons d’hyperparamètres.

Random Search: Échantillonner aléatoirement combinaisons.

Régularisation: Pénaliser complexité (L1, L2, dropout, early stopping).

12. Feature Engineering

Importance: “Données > Algorithmes”. Bonnes features sont cruciales.

Techniques:

Gestion valeurs manquantes:

Détection outliers: Z-score, IQR, isolation forest

PART D: ANALYTICAL PART

Knowledge and Skills Mobilized

Self Evaluation

Ce cours a été une découverte passionnante de l’apprentissage automatique. Le ML transforme de nombreux domaines et comprendre ses mécanismes est devenu essentiel pour tout ingénieur.

La théorie mathématique peut être intimidante au début (gradient descent, matrices, optimisation), mais avec la pratique, elle devient intuitive. La régression linéaire, bien que simple, introduit des concepts fondamentaux réutilisés dans tous les algorithmes.

Le prétraitement des données est souvent sous-estimé mais crucial. “Garbage in, garbage out”: un modèle ne peut pas compenser des données mal préparées. Nettoyer, normaliser, gérer les valeurs manquantes sont des étapes essentielles.

La diversité des algorithmes est impressionnante. Chacun a ses forces et faiblesses. Il n’y a pas de “meilleur” algorithme universel (No Free Lunch Theorem). L’art du ML est de choisir et adapter l’algorithme au problème.

Les Random Forests et XGBoost sont remarquablement performants sur de nombreux problèmes. Leur popularité en compétitions Kaggle en témoigne. Cependant, ils sont moins interprétables que des modèles simples.

L’évaluation rigoureuse (cross-validation, métriques adaptées) est critique. L’accuracy seule peut être trompeuse (classes déséquilibrées). Il faut choisir métrique selon contexte (precision vs recall selon coût des erreurs).

L’overfitting est un piège constant. La validation croisée et la régularisation sont essentielles. Voir qu’un modèle performe bien sur train mais mal sur test est une leçon importante.

Scikit-learn est une bibliothèque excellente: API cohérente, documentation claire, implémentations optimisées. Elle permet de se concentrer sur la logique ML plutôt que sur les détails d’implémentation.

Le feature engineering reste largement manuel et créatif. C’est là qu’intervient l’expertise métier. Créer les bonnes features peut faire plus de différence que choisir le bon algorithme.

My Opinion

Ce cours est incontournable à l’ère de l’IA. Le Machine Learning est appliqué partout: moteurs de recherche, recommandations, diagnostics médicaux, voitures autonomes, finance, etc.

Points forts:

Points à améliorer:

Réflexions personnelles:

Le ML est puissant mais pas magique. Il nécessite:

Les limites du ML doivent être comprises:

L’éthique est cruciale:

Applications professionnelles:

Compétences ML applicables dans nombreux domaines:

Le marché du ML est en forte croissance. Compétences recherchées:

La frontière avec le Deep Learning: Ce cours couvre ML “classique”. Le Deep Learning (réseaux neurones profonds) a révolutionné certains domaines (vision, NLP) mais nécessite plus de données et ressources. Les bases du ML restent essentielles pour comprendre le DL.

L’avenir:

Ces bases en Machine Learning nous permettent de concevoir des systèmes plus “intelligents”, capables d’apprendre et de s’adapter, une compétence devenue essentielle dans presque tous les domaines de l’ingénierie moderne.


📚 Documents de Cours

📖 Cours Complet Machine Learning

Cours complet : apprentissage supervisé/non-supervisé, réseaux de neurones, arbres de décision, SVM et métriques.

📥 Télécharger

📖 Perceptron & Réseaux de Neurones

Slides sur le perceptron : modèle linéaire, fonction d'activation, règle d'apprentissage et limitations.

📥 Télécharger

📖 Réseaux de Neurones Profonds

Architectures multicouches, rétropropagation, fonctions d'activation avancées et techniques d'optimisation.

📥 Télécharger