
Le deep learning est un ensemble d'algorithmes d'apprentissage automatique qui modélisent les abstractions de haut niveau dans les données à l'aide d'architectures composées de nombreuses transformations non linéaires. D'accord, cette phrase semble menaçante. Mais tout n'est pas si effrayant si François Schollay, qui a créé Keras, la bibliothèque la plus puissante pour travailler avec les réseaux de neurones, parle d'apprentissage en profondeur. Faites l'expérience d'un apprentissage approfondi avec des exemples pratiques provenant d'une grande variété de domaines. Le livre est divisé en deux parties: la première donne les fondements théoriques, la seconde est consacrée à la résolution de problèmes spécifiques. Cela vous permettra non seulement de comprendre les bases de DL, mais également d'apprendre à utiliser de nouvelles opportunités dans la pratique.
L'apprentissage est un voyage qui dure toute la vie, notamment dans le domaine de l'intelligence artificielle, où il y a plus d'inconnues que de certitudes. À l'intérieur se trouve un extrait de «Recherche et surveillance de modèles d'apprentissage en profondeur à l'aide des rappels Keras et TensorBoard».
À propos de ce livre
Le livre est écrit pour tous ceux qui veulent commencer à étudier la technologie d'apprentissage en profondeur à partir de zéro ou développer leurs connaissances. Les ingénieurs en apprentissage automatique, les développeurs de logiciels et les étudiants trouveront beaucoup de valeur sur ces pages.
Ce livre propose une étude pratique du monde réel de l'apprentissage en profondeur. Nous avons essayé d'éviter les formules mathématiques, préférant expliquer les concepts quantitatifs en utilisant des fragments de code et former une compréhension pratique des idées de base de la machine et du deep learning.
Vous verrez plus de 30 exemples de code de programme avec des commentaires détaillés, des recommandations pratiques et des explications généralisées simples de tout ce que vous devez savoir pour utiliser l'apprentissage en profondeur dans la résolution de problèmes spécifiques.
Les exemples utilisent le framework d'apprentissage profond Keras écrit en Python et la bibliothèque TensorFlow comme mécanisme interne. Keras est l'un des frameworks d'apprentissage en profondeur les plus populaires et les plus dynamiques. Il est souvent recommandé comme l'outil le plus efficace pour les débutants pour l'apprentissage en profondeur.
Après avoir lu ce livre, vous comprendrez clairement ce qu'est l'apprentissage en profondeur, le cas échéant et ses limites. Vous en apprendrez plus sur le processus standard d'interprétation et de résolution des problèmes d'apprentissage automatique et sur la façon de traiter les problèmes courants. Vous apprendrez à utiliser Keras pour résoudre des problèmes pratiques - de la reconnaissance des formes au traitement du langage naturel: classification des images, prévision temporelle, analyse des émotions, génération d'images et de texte et bien plus encore.
Rechercher et surveiller des modèles d'apprentissage en profondeur à l'aide des rappels Keras et TensorBoard
Dans cette section, nous examinerons les moyens d'obtenir un accès plus complet aux mécanismes internes du modèle pendant la formation et la gestion. Exécuter la procédure de formation sur un grand ensemble de données et durer des dizaines d'époques en appelant model.fit () ou model.fit_generator (), c'est comme lancer un avion en papier: en donnant une impulsion initiale, vous ne contrôlez plus ni sa trajectoire de vol ni le site d'atterrissage. Pour éviter des résultats négatifs (et la perte d'un avion en papier), il est préférable d'utiliser non pas un avion en papier, mais un drone contrôlé qui analyse l'environnement, renvoie des informations à ce sujet à l'opérateur et contrôle automatiquement les gouvernails en fonction de leur état actuel. Les techniques qui seront présentées ici transformeront l'appel à model.fit () d'un avion en papier en un drone autonome intelligent capable d'évaluer son état et d'effectuer en temps opportun des actions de contrôle.
Utiliser les rappels pour influencer le modèle pendant la formation
De nombreux aspects de la formation sur modèle ne peuvent pas être prédits à l'avance. Par exemple, on ne peut pas prévoir à l'avance le nombre d'époques fournissant la valeur optimale des pertes sur l'ensemble de test. Dans les exemples cités jusqu'à présent, une stratégie d'apprentissage avec un nombre suffisamment important d'époques a été utilisée. Ainsi, l'effet de la reconversion a été atteint lors de la première exécution pour déterminer le nombre requis d'époques d'entraînement, puis la seconde est nouvelle, dès le début avec le nombre optimal d'époques sélectionné. Bien sûr, c'est une stratégie plutôt inutile.
Il serait préférable d'arrêter d'apprendre dès qu'il s'avère que l'estimation des pertes sur l'ensemble de test a cessé de s'améliorer. Cela peut être implémenté à l'aide du mécanisme de rappel Keras. Un rappel est un objet (une instance d'une classe qui implémente des méthodes spécifiques), qui est transmis au modèle via un appel à fit et qui sera appelé par le modèle à différents moments du processus d'apprentissage. Il a accès à toutes les informations sur l'état du modèle et sa qualité et peut effectuer les actions suivantes: interrompre l'entraînement, enregistrer les modèles, charger différents jeux de poids ou changer l'état du modèle.
Voici quelques exemples d'utilisation des rappels:
- fixer l'état du modèle aux points de contrôle - enregistrer les poids actuels du modèle à différents points pendant l'entraînement;
- arrêt précoce - interruption de la formation lorsque l'estimation des pertes sur les données de test cesse de s'améliorer (et, bien sûr, en maintenant la meilleure version du modèle obtenue pendant la formation);
- ajustement dynamique des valeurs de certains paramètres dans le processus d'apprentissage, par exemple, l'étape d'apprentissage de l'optimiseur;
- consigner les notes pour les ensembles de données de formation et de test pendant la formation ou visualiser les représentations obtenues par le modèle lors de leur mise à jour - une barre de progression dans Keras que vous connaissez déjà est un rappel!
Le module keras.callbacks comprend un certain nombre de rappels intégrés. Voici une liste loin d'être complète:
keras.callbacks.ModelCheckpoint keras.callbacks.EarlyStopping keras.callbacks.LearningRateScheduler keras.callbacks.ReduceLROnPlateau keras.callbacks.CSVLogger
Examinons certains d'entre eux pour avoir une idée de la façon de les utiliser: ModelCheckpoint, EarlyStopping et ReduceLROnPlateau.
ModelCheckpoint et rappels anticipésLe rappel EarlyStopping peut être utilisé pour interrompre le processus d'apprentissage si la métrique cible surveillée ne s'est pas améliorée sur un nombre donné d'époques. Par exemple, ce rappel vous permettra d'interrompre l'entraînement après le début de l'effet de recyclage et ainsi d'éviter de réentraîner le modèle pour moins d'époques. Ce rappel est généralement utilisé en combinaison avec ModelCheckpoint, ce qui vous permet de sauvegarder l'état du modèle pendant l'entraînement (et, si nécessaire, de ne sauvegarder que le meilleur modèle: la version du modèle qui a atteint une meilleure qualité à la fin de l'ère):
Rappels ReduceLROnPlateauCe rappel peut être utilisé pour réduire la vitesse d'apprentissage lorsque la perte sur les données de test ne diminue plus. La diminution ou l'augmentation de la vitesse d'apprentissage au point d'inflexion de la courbe de perte est une stratégie efficace pour sortir d'un minimum local pendant l'entraînement. L'exemple suivant illustre l'utilisation du rappel ReduceLROnPlateau:
Concevez votre rappelSi au cours de la formation, vous devez effectuer certaines actions spéciales qui ne sont pas prévues par aucun des rappels intégrés, vous pouvez écrire votre propre rappel. Les rappels sont implémentés en héritant de la classe keras.callbacks.Callback. Vous pouvez implémenter l'une des méthodes suivantes avec des noms parlants qui seront appelés aux moments appropriés
Toutes ces méthodes sont appelées avec les journaux d'arguments - un dictionnaire contenant des informations sur le package, l'ère ou le cycle de formation précédent: mesures de formation et de vérification, etc. De plus, le rappel a accès aux attributs suivants:
- self.model - une instance du modèle qui a provoqué ce rappel;
- self.validation_data - la valeur transmise à la méthode d'ajustement en tant que données de validation.
Voici un exemple simple d'un rappel non standard qui enregistre sur disque (comme les tableaux Numpy) l'activation de toutes les couches du modèle après la fin de chaque ère, calculée à partir du premier échantillon de l'ensemble de test:
C'est tout ce que vous devez savoir sur les rappels, tout le reste sont des détails techniques, des informations sur lesquelles vous pouvez facilement vous retrouver. Vous pouvez maintenant enregistrer toutes les informations ou contrôler le modèle Keras pendant la formation.
À propos de l'auteur

Francois Chollet est engagé dans le deep learning chez Google, Mountain View, Californie. Il est le créateur de Keras, une bibliothèque d'apprentissage en profondeur, et membre du projet de cadre d'apprentissage automatique TensorFlow. Il est également engagé dans la recherche dans le domaine de l'apprentissage automatique, se concentrant sur la reconnaissance des formes et l'application de l'apprentissage automatique au raisonnement formel. Il a pris la parole lors de grandes conférences dans ce domaine, notamment la Conférence sur la vision par ordinateur et la reconnaissance des formes (CVPR), la Conférence et l'atelier sur les systèmes de traitement de l'information neurale (NIPS), la Conférence internationale sur les représentations d'apprentissage (ICLR), etc. .
»Plus d'informations sur le livre sont disponibles sur
le site Web de l'éditeur»
Contenu»
Extrait20% de réduction sur les colporteurs -
Deep Learning avec Python