Apprentissage Profond - Séance 4 PDF

Summary

Ces notes détaillent les concepts clés de l'apprentissage profond, notamment les hyperparamètres, les fonctions d'activation et les algorithmes d'optimisation. Elles abordent aussi les différentes méthodes de descente de gradient, avec leurs avantages et inconvénients.

Full Transcript

les réseaux de neurones profonds: Hyperparamètres  Choisir une architecture appropriée : Nombre de couches : Ajuster le nombre de couches cachées pour équilibrer la complexité et la capacité de généralisation. Nombre de neurones par couche : Tester différentes tailles de couches cac...

les réseaux de neurones profonds: Hyperparamètres  Choisir une architecture appropriée : Nombre de couches : Ajuster le nombre de couches cachées pour équilibrer la complexité et la capacité de généralisation. Nombre de neurones par couche : Tester différentes tailles de couches cachées.  Fonctions d'activation : Relu (Rectified Linear Unit) Leaky Relu, Sigmoid, Tanh : Expérimenter différentes fonctions d’activation selon les besoins spécifiques.  Optimisation et ajustement des hyperparamètres : Learning rate : Le taux d'apprentissage doit être choisi avec soin pour éviter une convergence trop rapide ou trop lente. Algorithmes d'optimisation : Utilisation de méthodes comme Adam, RMSprop ou SGD avec momentum pour accélérer la convergence. 1 Apprentissage par descente de gradient Un algorithme Apprentissage automatique : processus d'entraînement des modèles pour effectuer des prédictions ou des classifications. Optimisation : ajustement des paramètres du modèle pour minimiser une fonction de coût. Gradient Descent : algorithme d'optimisation le plus couramment utilisé. Il existe trois types d’algorithmes d’apprentissage par descente de gradient : la descente de gradient par lots (batch), la descente de gradient stochastique la descente de gradient par mini-lots (mini-batch). 2 Descente de gradient par lots  Principe : La descente de gradient par lots (Batch Gradient Descent) additionne les erreurs de chaque point de l'ensemble d'entraînement et met à jour le modèle après avoir évalué tous les exemples.  Avantages :  Convergence généralement stable vers le minimum local.  Efficace en termes de calcul pour les petits ensembles de données.  Inconvénients :  Temps de traitement long pour les grands ensembles de données, car toutes les données doivent être stockées en mémoire.  Risque de rester bloqué dans un minimum local. 3 Descente de gradient par lots ALGORITHME : Descente de gradient par lots Entrées : - X : Ensemble de données d'entraînement - y : Labels associés - θ : Paramètres initiaux du modèle - α : Taux d'apprentissage - nb_époques : Nombre d'époques 1. Initialiser les paramètres θ aléatoirement POUR chaque époque de 1 à nb_époques FAIRE 2. Calculer les prédictions pour toutes les données 3. Calculer l'erreur entre les prédictions et les étiquettes réelles 4. Calculer le gradient en utilisant toutes les données 5. Mettre à jour les paramètres FIN POUR Retourner θ (les paramètres optimisés) FIN 4 Descente de gradient stochastique  Principe : La descente de gradient stochastique (SGD) met à jour les paramètres après chaque exemple d'entraînement, en exécutant une époque d'entraînement pour chaque point.  Avantages :  Rapidité des mises à jour et nécessite moins de mémoire.  Peut échapper au minimum local grâce aux fluctuations des gradients.  Inconvénients :  Convergence plus bruyante (moins stable) par rapport à la descente de gradient par lots.  Moins efficace en termes de calcul pour des ensembles de données très grands. 5 Descente de gradient stochastique ALGORITHME : Descente de gradient stochastique (SGD) Entrées : - X : Ensemble de données d'entraînement - y : Labels associés - θ : Paramètres initiaux du modèle - α : Taux d'apprentissage - nb_époques : Nombre d'époques 1. Initialiser les paramètres θ aléatoirement POUR chaque époque de 1 à nb_époques FAIRE POUR chaque exemple (x_i, y_i) DANS X, y FAIRE // Sélectionner le i-ème exemple 2. Calculer la prédiction pour x_i 3. Calculer l'erreur pour cet exemple 4. Calculer le gradient pour cet exemple 5. Mettre à jour les paramètres FIN POUR FIN POUR Retourner θ (les paramètres optimisés) 6 FIN Descente de gradient par mini-lots  Principe : La descente de gradient par mini-lots (Mini-Batch Gradient Descent) divise les données en petits lots et met à jour les paramètres pour chaque lot.  Avantages :  Compromis entre la descente par lots et la descente stochastique.  Moins de bruit que la descente stochastique, tout en étant plus rapide que la descente par lots.  Inconvénients :  Nécessite un choix judicieux de la taille des mini-lots pour optimiser l'efficacité et la stabilité. 7 Descente de gradient par mini-lots ALGORITHME : Descente de gradient par mini-lots Entrées : - X : Ensemble de données d'entraînement - θ : Paramètres initiaux du modèle - y : Labels associés - α : Taux d'apprentissage - nb_époques : Nombre d'époques - taille_mini_lot : Nombre d'exemples par mini-lot 1. Initialiser les paramètres θ aléatoirement Exemple de batch=4 POUR chaque époque de 1 à nb_époques FAIRE batch1 batch2 batch3... … Batch_n 2. Diviser X, y en mini-lots de taille "taille_mini_lot" x1…x4 x5…x8 x9…x12 … … xn-4…xn POUR chaque mini-lot (X_batch, y_batch) FAIRE y1…y4 y5…y8 y9…y12 … … yn-4…yn 3. Calculer les prédictions pour le mini-lot (pour X_batch) 4. Calculer l'erreur pour le mini-lot 5. Calculer le gradient pour le mini-lot 6. Mettre à jour les paramètres : θ = θ - α * gradient_batch FIN POUR FIN POUR 6. Retourner θ (les paramètres optimisés) FIN 8 Descente de gradient par mini-lots 9 Ajustement dynamique du taux d'apprentissage  Définition : Technique consistant à réduire progressivement le taux d'apprentissage (learning rate) au cours de l'entraînement d'un modèle.  Concept :  Démarrer avec un taux d'apprentissage relativement élevé pour avancer rapidement, puis le réduire afin de stabiliser les derniers pas vers un optimum.  Objectif :  Optimiser la performance de convergence pour obtenir de meilleurs résultats finaux sans sauts brusques autour du minimum global.  Méthodes de Décroissance 1. Décroissance Fixe (Step Decay ) Réduire le taux d'apprentissage après un nombre fixe d'époques. Exemple : Diviser le taux d'apprentissage par 2 toutes les 10 époques. 2. Décroissance Exponentielle Le taux d'apprentissage est réduit de manière exponentielle après chaque itération ou époque: 𝐿𝐿𝐿𝐿 = 𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑙𝑙𝐿𝐿𝐿𝐿 ∗ 𝑒𝑒 −𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑦𝑦𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 ∗𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒𝑒 3. Décroissance par Validation Basé sur les performances sur un ensemble de validation. 10 Si la performance n’améliore pas, réduire le taux d'apprentissage (méthode couramment utilisée en Keras). Ajustement dynamique du taux d'apprentissage  Pourquoi c'est important ?  Stabilité de l'entraînement : Évite que le modèle "saute" autour du minimum global à mesure qu'il s'approche.  Convergence plus rapide et meilleure : Les techniques de Learning Rate Decay permettent une convergence plus stable, maximisant les chances d'atteindre un bon minimum.  Exemples en Keras  Décroissance Fixe : tf.keras.optimizers.schedules.PiecewiseConstantDecay  Décroissance Exponentielle : tf.keras.optimizers.schedules.ExponentialDecay  Décroissance par Validation: tf.keras.callbacks.ReduceLROnPlateau monitor=‘val_loss’ indique que la métrique suivie est la val_loss. Si cette métrique ne s'améliore pas, le callback ajustera le taux d'apprentissage. factor=0.5 le taux d'apprentissage est réduit par ce facteur (sera multiplié par 0.5,). patience=3 indique le nombre d'époques sans amélioration. min_lr=1e-5 spécifie la limite inférieure du taux d'apprentissage. 11 Pourquoi ajuster les hyperparamètres Objectif : Trouver les valeurs optimales des hyperparamètres pour améliorer la performance du modèle sans surapprentissage. Défis : Le choix des hyperparamètres influence la capacité du modèle à bien apprendre et à généraliser.  Classement des Hyperparamètres par Importance Taux d'apprentissage (alpha) : Le plus important. Paramètres de second ordre : Taille du mini-batch (pour efficacité). Nombre d'unités cachées (réglage de capacité). Nombre de couches et décroissance du taux d'apprentissage.  Approches d'Ajustement des Hyperparamètres  Recherche Manuelle: Changer un hyperparamètre à la fois pour voir son impact sur les performances du modèle.  Recherche par Grille (Grid Search):Teste toutes les combinaisons possibles d’hyperparamètres prédéfinis. 12 Approches d'Ajustement des Hyperparamètres  Recherche Manuelle: 1. Fixer les hyperparamètres secondaires à des valeurs par défaut raisonnables. 2. Optimiser le taux d'apprentissage en explorant plusieurs valeurs pour identifier celle qui donne les meilleures performances. 3. Passer au prochain hyperparamètre (par exemple la taille du mini-batch), et ajuster ses valeurs en maintenant le meilleur taux d'apprentissage trouvé. 4. Répéter ce processus en suivant l'ordre d’importance des hyperparamètres restants.  Avantages : Efficacité : Réduit le nombre total de combinaisons testées. Stabilité : Aide à éviter de modifier trop de paramètres en même temps, ce qui peut compliquer la convergence.  Limites : Interdépendance possible : Certains hyperparamètres peuvent avoir des effets croisés (par exemple, un learning rate élevé pourrait mieux fonctionner avec un batch size spécifique). 13 Approches d'Ajustement des Hyperparamètres  la Recherche par Grille (Grid Search): Principe : Essayer toutes les combinaisons d’un petit nombre de valeurs pour chaque hyperparamètre. Exemple : Taux d’apprentissage : 0.01, 0.001, 0.0001 Nombre d'époques : 10, 20 Nombre de neurones dans une couche : 32, 64  Cela permet de tester toutes les combinaisons possibles entre ces valeurs  Avantage : Couvre toutes les combinaisons possibles dans l'espace défini.  Inconvénient : Peut être très coûteux en calcul pour de nombreux hyperparamètres. 14 Approches d'Ajustement des Hyperparamètres 1 2 3 15 Mini-Batch Normalization  Principe La normalisation de mini-batch applique une normalisation aux activations de chaque couche dans un réseau de neurones. Pour chaque mini-lot d'entraînement : Calculer la moyenne et l’écart-type des activations pour chaque caractéristique. Normaliser les activations en les centrant autour de la moyenne et en les redimensionnant à l'aide de l'écart-type.  Avantages Amélioration de la convergence : Accélère l’apprentissage et améliore les performances du modèle. Réduction de l’overfitting : Agit comme une régularisation.  Considérations Pratiques Taille du Mini-Lot : Une taille de mini-lot trop petite peut entraîner des estimations bruitées de la moyenne et de la variance. Des mini-lots de taille 32, 64 sont couramment utilisés. 16 Mini-Batch Normalization  Exemple de code Keras avec Batch Normalization 1 2 17 3: Structurer vos projets de machine learning 18 Apprendre à structurer vos projets de machine learning  Pourquoi une Stratégie ? : Éviter des erreurs coûteuses en temps et identifier les techniques les plus efficaces.  Exemple: Projet de Classification de Chats  Problème : Exactitude actuelle de 90 %, mais insuffisante pour l’application. Solutions Courantes Envisagées : Plus de Données : Collecter davantage d’exemples d’entraînement. Diversité des Données : Assurer une variété de poses et d’exemples négatifs. Changements d’Algorithme : Entraînement plus long, choix d’optimiseurs (ex. Adam). Architecture du Modèle : Ajuster les couches, unités ou fonctions d’activation. Régularisation : Utilisation de techniques comme dropout ou régularisation L2. 19 Apprendre à structurer vos projets de machine learning  le problème :  De nombreuses modifications potentielles, mais peu de temps et de ressources.  Risque :  Concentrer les efforts sur une seule solution inefficace (ex. 6 mois de collecte de données avec peu d’amélioration).  Objectif :  Identifier rapidement les techniques ayant le plus fort impact.  Identifier les Changements les Plus Prometteurs :  Analyse du Problème : Qu’est-ce qui limite spécifiquement la performance ?  Expérimentation Intelligente : Tester les idées avec des retours rapides pour éviter les inefficacités à long terme. 20 Exemple: La Télévision Ancienne  Analogies TV :  Boutons pour ajuster hauteur, largeur, position, rotation de l'image.  Principe : Chaque bouton a une fonction bien définie (orthogonale) pour faciliter l'ajustement.  Problème : Si chaque bouton affectait plusieurs paramètres, ajuster l'image deviendrait compliqué.  en Machine Learning Problématique : De nombreux éléments peuvent être ajustés pour améliorer un système de ML. Observation : Les experts en ML savent précisément ce qu'il faut ajuster pour obtenir un effet spécifique. Concept Clé : Ajuster les éléments de manière indépendante pour un contrôle optimal. 21 Critères de performance  Quatre Critères  Pour qu’un système de ML soit performant, il doit répondre à quatre critères : 1. Bien se comporter sur le jeu d’entraînement : Ajuster les paramètres pour une bonne performance sur l’ensemble d'entraînement. 2. Bien se comporter sur le jeu de validation : Vérifier la généralisation sur le jeu de validation. 3. Bien se comporter sur le jeu de test : Assurer une bonne performance générale. 4. Bonne performance réelle : Obtenir un bon score sur la fonction de coût et répondre aux attentes en conditions réelles. 22 Importance des Sets de Dev et de Test en Machine Learning  Rôles du Set de Dev et du Set de Test  Set de dev : Utilisé pour évaluer et améliorer les modèles  Set de test : Sert à évaluer le modèle final de façon objective  Impact des Distributions Différentes entre le Set de Dev et le Set de Test  Lorsque le set de développement (dev set) et le set de test proviennent de distributions différentes, cela peut entraîner une mauvaise généralisation du modèle. En effet, le modèle optimisé sur le set de dev peut ne pas être performant sur le set de test, car il n'a pas appris à gérer les variations présentes dans la nouvelle distribution. 23 Impact des Distributions Différentes: Exemples Illustratifs  Reconnaissance d'Images Description : Vous entraînez un modèle de reconnaissance d'images pour classer des types de fruits. Set de Dev : Images de fruits prises en studio avec un éclairage parfait et un fond uni. Set de Test : Images de fruits prises en extérieur avec des variations de lumière, des angles différents et des arrière-plans complexes. Conséquence : Le modèle performe bien sur le set de dev mais échoue à généraliser sur le set de test en raison des conditions visuelles différentes. 24 Impact des Distributions Différentes: Exemples Illustratifs  Traitement du Langage Naturel (NLP) Description : Un modèle de classification de sentiments est entraîné sur des avis clients. Set de Dev : Avis extraits de sites web de commerce électronique, rédigés de manière formelle. Set de Test : Avis provenant de réseaux sociaux avec du langage informel, des abréviations et des emojis. Conséquence : Le modèle ne comprend pas le langage informel et les emojis, entraînant une baisse de performance sur le set de test. 25 Impact des Distributions Différentes: Exemples Illustratifs  Reconnaissance Vocale Description : Développement d'un système de reconnaissance vocale pour transcrire la parole. Set de Dev : Enregistrements audio de locuteurs en environnement silencieux avec un accent standard. Set de Test : Enregistrements contenant du bruit de fond, des accents régionaux et des locuteurs de différents âges. Conséquence : Le modèle a du mal à transcrire correctement en raison du bruit et des variations d'accent qu'il n'a pas rencontrés pendant le développement. 26 Impact des Distributions Différentes entre le Set d'Entr, le Set de Dev et le Set de Test  Lorsqu'il y a une différence de distribution entre le set d'entraînement et le set de développement et de test, cela peut entraîner une mauvaise généralisation du modèle. Le modèle risque de ne pas être capable de faire des prédictions précises sur des données qu'il n'a jamais vues si ces données diffèrent significativement de celles sur lesquelles il a été entraîné.  Exemples Illustratifs Reconnaissance d'Images Set d'Entraînement : Images de véhicules prises de jour, sous un ciel clair, avec une résolution élevée. Sets de Dev et de Test : Images de véhicules prises de nuit, sous la pluie ou la neige, avec une résolution plus faible. Conséquence : Le modèle n'a pas appris à reconnaître les véhicules dans des conditions d'éclairage et météorologiques différentes, ce qui conduit à de mauvaises performances sur les sets de dev et de test. 27 Impact des Distributions Différentes entre le Set d'Entr, le Set de Dev et le Set de Test  Lorsqu'il y a une différence de distribution entre le set d'entraînement et les sets de développement (dev set) et de test, cela peut entraîner une mauvaise généralisation du modèle. Le modèle risque de ne pas être capable de faire des prédictions précises sur des données qu'il n'a jamais vues si ces données diffèrent significativement de celles sur lesquelles il a été entraîné.  Exemples Illustratifs Traitement du Langage Naturel (NLP) Set d'Entraînement : Données textuelles en langue anglaise standard. Sets de Dev et de Test : Données textuelles contenant de l'argot, des abréviations, ou dans une autre langue. Conséquence : Le modèle ne comprend pas le vocabulaire non standard ou les autres langues, ce qui affecte sa capacité à traiter correctement les nouvelles données. 28 Impact des Distributions Différentes entre le Set d'Entr, le Set de Dev et le Set de Test  Lorsqu'il y a une différence de distribution entre le set d'entraînement et les sets de développement (dev set) et de test, cela peut entraîner une mauvaise généralisation du modèle. Le modèle risque de ne pas être capable de faire des prédictions précises sur des données qu'il n'a jamais vues si ces données diffèrent significativement de celles sur lesquelles il a été entraîné.  Exemples Illustratifs Reconnaissance Vocale Set d'Entraînement : Enregistrements audio de locuteurs adultes masculins. Sets de Dev et de Test : Enregistrements audio de femmes et d'enfants. Conséquence : Le modèle a du mal à transcrire correctement les voix qu'il n'a pas rencontrées pendant l'entraînement en raison des différences de tonalité et de fréquence. 29 la gestion des données d'entraînement, de développement et de test  En deep learning, plus le volume de données d’entraînement est important, meilleures sont les performances du modèle. Cependant, quand les données d’entraînement diffèrent de celles de test ou de dev, cela peut nuire à l’efficacité du modèle.  Exemple de Reconnaissance d'Images : Situation : Une application mobile doit reconnaître des images de chats prises par les utilisateurs. Cependant, seules 10 000 images de ce type sont disponibles, tandis qu’un ensemble de 200 000 images de chats de haute qualité provenant du web est également accessible. 200 000 provenant du web 10 000 images prises par les utilisateurs 30 la gestion des données d'entraînement, de développement et de test Options : Option 1 : Combiner les deux ensembles de données et les mélanger pour obtenir des ensembles d'entraînement, de dev, et de test. Bien que cela aligne les distributions, cela ne cible pas les besoins spécifiques de l’application (Le modèle est évalué sur une combinaison d'images web et mobiles, alors que l'application cible spécifiquement les images mobiles.). 205 000 2500 2500 train dev test Option 2 : Utiliser les images web (200 000) plus 5000 images de l’application mobile pour l’entraînement, et concentrer les ensembles de dev et de test sur les images de l’application (5000). Les images mobiles ne représentent que 2,4% (5 000 sur 205 000) des données d'entraînement, ce qui peut être insuffisant pour que le modèle apprenne efficacement les caractéristiques spécifiques des images mobiles. train dev test 31 Mobile APP 5000 Mobile APP 2500 Mobile APP 2500 la gestion des données d'entraînement, de développement et de test  Quelle est la Meilleure Option ? Recommandation : Option 2 est Préférable Alignement avec le Domaine Cible Problème de Différence de distribution : Les images web et mobiles peuvent avoir des distributions différentes (résolution, qualité, angles, éclairage), ce qui peut affecter la capacité du modèle à généraliser aux images mobiles.  Solutions Possibles  Ajouter des données réels à l’ensemble d’entrainement (par les utilisateurs )  Data Augmentation des Images  Appliquer des transformations aux images mobiles pour augmenter artificiellement la taille du jeu de données (rotations, recadrages, ajustements de luminosité, etc.).  appliquer la data augmentation sur les données web pour les rendre plus similaires aux images prises par les utilisateurs de l'application mobile.  Transfert d'Apprentissage avec Fine-Tuning  Phase 1 : Entraîner un modèle préliminaire sur les 200 000 images web pour apprendre des caractéristiques générales des chats.  Phase 2 : Fine-tuner le modèle en continuant l'entraînement sur les 10 000 images mobiles (ou une partie pour l'entraînement, le reste pour le dev et le 32 test). L'analyse des erreurs  Pourquoi analyser les erreurs ? Permet de prendre des décisions éclairées pour les améliorations futures. Évite de perdre du temps sur des solutions inefficaces.  Exemple : Classificateur de chats avec 90% de précision (10% d'erreur).  Processus d'analyse des erreurs 1. Collecte d'exemples : Récupérer un échantillon de données mal classifiées (par ex., 100 exemples). 2. Classification manuelle des erreurs : Examiner les exemples un par un et les classer par catégories d'erreurs. 3. Évaluation : Calculer le pourcentage d'erreurs pour chaque catégorie (par exemple, erreurs liées aux chiens, aux chats sauvages, aux images floues).  Exemple: Chiens mal classés : 33 Évaluation des Catégories d'Erreurs  Objectif : Quantifier l'impact de chaque catégorie d'erreurs pour identifier les priorités d'amélioration.  Procédure : Compter le nombre d'erreurs dans chaque catégorie. Calculer le pourcentage que représente chaque catégorie par rapport au total des erreurs analysées. Catégorie Nombre d'erreurs Pourcentage Erreurs liées aux chiens 40 40% Erreurs liées aux chats 30 30% Images floues ou de mauvaise qualité 30 30% 34 Utilisation des Résultats pour l'Amélioration du Modèle  Erreurs liées aux chiens (40%) Analyse : Le modèle a du mal à distinguer certaines races de chiens. Possible manque de diversité dans les données d'entraînement concernant les chiens. Actions : Augmenter la diversité des images de chiens dans le jeu de données d'entraînement. Utiliser des techniques de data augmentation pour ces cas spécifiques (rotations, variations d'éclairage, etc.).  Images floues ou de mauvaise qualité (30%) Analyse : Le modèle n'est pas robuste aux images de faible qualité. Les algorithmes de reconnaissance peuvent être sensibles au bruit et au flou. Actions : Appliquer des techniques de prétraitement pour améliorer la qualité des images (filtrage, augmentation du contraste). Inclure des images floues dans le jeu de données d'entraînement pour améliorer la robustesse. 35 Utiliser des architectures de modèles plus complexes capables de gérer des variations de qualité d'image, comme les réseaux convolutifs profonds. Utilisation des Résultats pour l'Amélioration du Modèle  Exemple Pratique d'Amélioration Scénario :  Vous remarquez que 30% des erreurs proviennent de chiens confondus avec des chats, en particulier pour des races de petits chiens.  Approche :  Collecte de Données Supplémentaires : Rechercher et ajouter des images de petites races de chiens (par exemple, Chihuahua, Pékinois) dans le jeu d'entraînement.  Data Augmentation : Appliquer des transformations pour simuler différentes conditions (angles, éclairages).  Affinage du Modèle : Entraîner un modèle plus profond ou utiliser le transfert d'apprentissage avec un modèle pré-entraîné sur un grand jeu de données d'images. 36 Bibliographie  Cours  Deep Learning Specialization–Andrew NG  Livres  deep learning with python - françois chollet  Autres  https://medium.com/  https://towardsdatascience.com/ 37 38

Use Quizgecko on...
Browser
Browser