20.11. Création de réseaux de neurones avec Keras et TensorFlow : mise au point et transfert d'apprentissage

Alors que nous nous aventurons dans le domaine du Machine Learning et en particulier du Deep Learning, nous sommes confrontés à des défis qui vont au-delà de la simple formation de modèles à partir de zéro. Deux techniques puissantes qui apparaissent comme des solutions à ces défis sont le raffinement et le transfert d'apprentissage. Grâce à des frameworks tels que Keras et TensorFlow, ces techniques peuvent être mises en œuvre efficacement, accélérant le processus de développement et améliorant les performances des modèles dans des tâches spécifiques.

Qu'est-ce que le transfert d'apprentissage ?

L'apprentissage par transfert est une technique dans laquelle un modèle développé pour une tâche est réutilisé comme point de départ pour un modèle dans une deuxième tâche. Cela est particulièrement utile en Deep Learning, où les réseaux de neurones formés sur de grands ensembles de données peuvent être adaptés pour résoudre des problèmes connexes avec moins de données disponibles.

Qu'est-ce que le réglage fin ?

Le réglage fin est un processus de réglage précis dans lequel nous ajustons les poids d'un réseau neuronal pré-entraîné pour une nouvelle tâche. Au lieu de commencer l'entraînement à partir de poids aléatoires, nous commençons par les poids d'un modèle qui a déjà été entraîné sur un ensemble de données volumineux et généralement lié.

Pourquoi utiliser ces techniques ?

Ces techniques sont particulièrement avantageuses lorsque nous disposons d'un ensemble de données limité pour entraîner notre modèle. Les réseaux de neurones, en particulier les plus profonds, nécessitent de grandes quantités de données pour apprendre des fonctionnalités généralisables. En utilisant un modèle pré-entraîné, nous pouvons tirer parti des fonctionnalités apprises à partir d'un ensemble de données plus vaste et les appliquer à notre problème spécifique, économisant ainsi du temps et des ressources de calcul.

Transférer l'apprentissage avec Keras et TensorFlow

Keras et TensorFlow facilitent la mise en œuvre de l'apprentissage par transfert. Nous pouvons facilement charger des modèles pré-entraînés disponibles dans Keras, tels que VGG16, ResNet50, InceptionV3, entre autres. Ces modèles ont été formés sur ImageNet, un vaste ensemble de données contenant des millions d'images et des milliers de classes.

à partir de keras.applications importer VGG16 # Chargez le modèle VGG16 avec des poids pré-entraînés dans ImageNet # include_top=False signifie que nous n'inclurons pas les couches denses finales base_model = VGG16(weights='imagenet', include_top=False)

Une fois le modèle de base chargé, nous pouvons ajouter de nouvelles couches par-dessus pour nous adapter à notre tâche spécifique.

à partir de keras.models, importer le modèle à partir de keras.layers import Dense, GlobalAveragePooling2D # Ajouter de nouveaux calques au-dessus du modèle de base x = base_model.output x = GlobalAveragePooling2D() (x) x = Dense(1024, activation='relu')(x) prédictions = Dense(num_classes, activation='softmax')(x) # Définir le modèle final modèle = Modèle (entrées = base_model.input, sorties = prédictions)

Optimisation avec Keras et TensorFlow

Pour un réglage précis, nous gelons les couches initiales du modèle de base et entraînons uniquement les couches supérieures que nous venons d'ajouter. Après quelques époques, nous pouvons commencer à débloquer certaines des dernières couches du modèle de base et continuer l'entraînement pour les peaufiner.

# Gèle toutes les couches du modèle de base pour la couche dans base_model.layers : layer.trainable = Faux # Compiler le modèle model.compile(optimizer='rmsprop', loss='categorical_crossentropy') # Entraînez d'abord uniquement les couches supérieures qui ont été ajoutées modèle.fit(...) # Après la formation initiale, le réglage fin de certaines couches du modèle de base commence pour la couche dans base_model.layers[:100] : layer.trainable = Vrai # Recompilez le modèle pour que les modifications prennent effet model.compile(optimizer=SGD(lr=0,0001, momentum=0,9), loss='categorical_crossentropy') # Continuer la formation modèle.fit(...)

Il est important de recompiler le modèle après avoir modifié l'attribut trainable, car cela affecte le processus de formation.

Considérations finales

Le réglage fin et l'apprentissage par transfert sont des techniques puissantes qui peuvent faire une grande différence dans les performances des modèles de Deep Learning, en particulier lorsqu'il s'agit de petits ensembles de données. Avec Keras et TensorFlow, ces techniques peuvent être appliquées relativement simplement, permettant aux chercheurs et aux développeurs d'exploiter des modèles pré-entraînés et de les adapter à leurs besoins spécifiques.

Il est important de se rappeler que le succès de ces techniques dépend du degré de relation entre les tâches initiales et finales. De plus, le choix des couches à geler ou à débloquer lors du réglage fin doit être fait avec soin, en tenant compte de l'architecture spécifique du modèle et de la nature du problème à résoudre.

En résumé, Keras et TensorFlow proposent les outilsnécessaire pour mettre en œuvre efficacement l'apprentissage par transfert et le réglage fin, ce qui peut accélérer considérablement le développement de modèles de Deep Learning et améliorer leurs résultats.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes décrit correctement le concept de « réglage fin » dans le Deep Learning, comme expliqué dans le texte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Création de réseaux de neurones avec Keras et TensorFlow : mise en œuvre de réseaux de neurones pour les tâches de classification et de régression

Page suivante de lebook gratuit :

79Création de réseaux de neurones avec Keras et TensorFlow : mise en œuvre de réseaux de neurones pour les tâches de classification et de régression

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte