• Aide
  • Eurêkoi Eurêkoi

Livre

L'apprentissage profond avec Python

Résumé

Ce guide rappelle les fondamentaux et les pratiques avancées de l'apprentissage profond à l'aide du langage Python. L'auteur explique les notions mathématiques des réseaux neuronaux avec des cas concrets, le déroulement de l'apprentissage automatique, l'utilisation d'un ConvNet et la classification d'images. Le code est passé en couleurs afin de faciliter la compréhension. ©Electre 2020


  • Contributeur(s)
  • Éditeur(s)
  • Date
    • DL 2020
  • Notes
    • La couv. porte en plus : "Les meilleurs pratiques" ; ""Les concepts fondamentaux de l'apprentissage profond, la classification d'images et le transfert d'apprentissage, l'apprentissage profond pour le texte et les séquences, le transfert de style, la génération de textes et d'images"
  • Langues
    • Français
    • , traduit de : Anglais
  • Description matérielle
    • 1 vol. (X-487 p.) : ill. en coul. ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-491674-00-7
  • Indice
  • Quatrième de couverture
    • L'apprentissage profond avec Python

      L'apprentissage automatique a fait des progrès remarquables au cours des dernières années. Nous sommes passés d'une reconnaissance quasi inutilisable de la parole et des images à une précision quasi humaine, de machines qui ne pouvaient pas battre un joueur de Go un peu expérimenté à la défaite d'un champion du monde. Derrière ces progrès se cache l'apprentissage profond - une combinaison d'avancées théoriques et pratiques qui permet une multitude d'applications intelligentes jusque-là impossibles à réaliser.

      L'apprentissage profond avec Python présente le domaine de l'apprentissage profond en utilisant le langage Python et la puissante bibliothèque Keras. Rédigé par François Chollet, créateur de Keras et chercheur en intelligence artificielle à Google, cet ouvrage construit votre compréhension à travers des explications intuitives et des exemples pratiques. Vous explorerez des concepts et des pratiques stimulants avec des applications de vision par ordinateur, de traitement du langage naturel et de modèles génératifs. Lorsque vous aurez terminé, vous aurez les connaissances et les compétences pratiques nécessaires pour appliquer l'apprentissage profond à vos propres projets.

      Aucune expérience préalable de Keras, de TensorFlow ou d'apprentissage automatique n'est requise. Les lecteurs ont besoin de compétences Python intermédiaires.

      « L'explication la plus claire de l'apprentissage profond que je connaisse... c'était un plaisir de la lire. » (Richard Tobias, Cephasonics)

      « Un excellent ouvrage d'initiation pratique, d'une grande profondeur et d'une grande envergure. » (David Blumenthal-Barby, Babbel)

      « Comble le fossé entre le buzz médiatique et un système d'apprentissage profond fonctionnel. » (Peter Rabinovitch, Akamai)

      « La meilleure ressource pour devenir un maître de Keras et de l'apprentissage profond. » (Claudio Rodriguez, Cox Media Group)


  • Tables des matières
      • L'apprentissage profond avec Python

      • François Chollet

      • Préfacei
      • Remerciementsiii
      • À propos de ce livreiv
      • À propos de l'auteurix
      • À propos de la couverture des éditions Manningx
      • Partie I Principes fondamentaux de l'apprentissage profond 1
      • 1 Qu'est-ce que l'apprentissage profond ? 3
      • 1.1 Intelligence artificielle, apprentissage automatique et apprentissage profond 5
      • 1.1.1 Intelligence artificielle5
      • 1.1.2 Apprentissage automatique6
      • 1.1.3 Apprentissage des représentations à partir de données8
      • 1.1.4 Le « profond » de l'apprentissage profond11
      • 1.1.5 Comprendre le fonctionnement de l'apprentissage profond en trois graphiques13
      • 1.1.6 Ce que l'apprentissage profond est parvenu à réaliser jusqu'à présent16
      • 1.1.7 Ne vous fiez pas au buzz médiatique qui ne voit qu'à court terme16
      • 1.1.8 Les promesses de l'IA18
      • 1.2 Avant l'apprentissage profond : brève histoire de l'apprentissage automatique 20
      • 1.2.1 Modélisation probabiliste20
      • 1.2.2 Premiers réseaux de neurones21
      • 1.2.3 Méthodes à noyau21
      • 1.2.4 Arbres de décision, forêts aléatoires et algorithmes de gradient boosting23
      • 1.2.5 Retour aux réseaux de neurones25
      • 1.2.6 Ce qui distingue l'apprentissage profond26
      • 1.2.7 Panorama de l'apprentissage automatique moderne27
      • 1.3 Pourquoi l'apprentissage profond ? Pourquoi maintenant ? 28
      • 1.3.1 Le matériel (hardware)28
      • 1.3.2 Les données (data)30
      • 1.3.3 Les algorithmes30
      • 1.3.4 Une nouvelle vague d'investissements31
      • 1.3.5 La démocratisation de l'apprentissage profond32
      • 1.3.6 Quel avenir pour l'apprentissage profond ?33
      • 2 Pour commencer : les notions mathématiques des réseaux de neurones 35
      • 2.1 Première approche d'un réseau de neurones 36
      • 2.2 Représentations de données pour les réseaux de neurones 41
      • 2.2.1 Scalaires (tenseurs 0D)41
      • 2.2.2 Vecteurs (tenseurs 1D)41
      • 2.2.3 Matrices (tenseurs 2D)42
      • 2.2.4 Tenseurs 3D et tenseurs de haute dimensionnalité42
      • 2.2.5 Principaux attributs d'un tenseur43
      • 2.2.6 Manipulation des tenseurs avec Numpy44
      • 2.2.7 Entraînement par lots de données45
      • 2.2.8 Exemples concrets de tenseurs de données46
      • 2.2.9 Données vectorielles46
      • 2.2.10 Données temporelles ou données séquentielles47
      • 2.2.11 Données d'images48
      • 2.2.12 Données vidéo49
      • 2.3 Outils des réseaux de neurones : les opérations de tenseurs 50
      • 2.3.1 Opérations élément par élément (element-wise operations)50
      • 2.3.2 Broadcasting du langage Python52
      • 2.3.3 Produit scalaire de tenseurs53
      • 2.3.4 Modifier la forme d'un tenseur57
      • 2.3.5 Interprétation géométrique des opérations sur les tenseurs58
      • 2.3.6 Une interprétation géométrique de l'apprentissage profond59
      • 2.4 Le moteur des réseaux de neurones : l'optimisation à base de gradient 61
      • 2.4.1 Qu'est-ce qu'une dérivée ?62
      • 2.4.2 Dérivée d'une opération de tenseurs : le gradient63
      • 2.4.3 Descente de gradient stochastique64
      • 2.4.4 Dérivation en chaîne de fonctions composées : l'algorithme de rétropropagation du gradient68
      • 2.5 Retour à notre premier exemple 70
      • 2.6 Résumé du chapitre 72
      • 3 Mise en oeuvre des réseaux de neurones sur des cas concrets 73
      • 3.1 Anatomie d'un réseau de neurones 75
      • 3.1.1 Les couches : des briques de construction de réseaux76
      • 3.1.2 Les modèles : des réseaux de couches77
      • 3.1.3 Fonctions de perte et optimiseurs : les clés pour configurer un processus d'apprentissage78
      • 3.2 Introduction à la bibliothèque logicielle Keras 80
      • 3.2.1 Bibliothèques Keras, TensorFlow, Theano et CNTK81
      • 3.2.2 Développement avec Keras : une brève introduction82
      • 3.3 Mise en route d'un poste de travail d'apprentissage profond 85
      • 3.3.1 Les notebooks Jupyter : le meilleur moyen de mener des expériences d'apprentissage profond85
      • 3.3.2 Lancer l'exécution de Keras : deux options86
      • 3.3.3 Exécuter des travaux d'apprentissage profond dans l'informatique en nuage : avantages et inconvénients86
      • 3.3.4 Quel est le meilleur GPU pour l'apprentissage profond ?87
      • 3.4 Classement des critiques de films : un exemple de classification binaire 88
      • 3.4.1 Le jeu de données IMDB88
      • 3.4.2 Préparation des données90
      • 3.4.3 Architecture du réseau91
      • 3.4.4 Validation de l'approche choisie95
      • 3.4.5 Utilisation d'un réseau pré-entraîné pour générer des prédictions sur de nouvelles données99
      • 3.4.6 Expériences plus avancées100
      • 3.4.7 Pour conclure cette section100
      • 3.5 Classification de fils de presse : un exemple de classification en plusieurs classes 102
      • 3.5.1 Le jeu de données Reuters102
      • 3.5.2 Préparation des données103
      • 3.5.3 Architecture du réseau104
      • 3.5.4 Validation de l'approche choisie106
      • 3.5.5 Génération de prédictions sur de nouvelles données109
      • 3.5.6 Une approche alternative pour encoder les étiquettes et choisir la fonction de perte109
      • 3.5.7 De l'importance d'avoir des couches intermédiaires suffisamment larges110
      • 3.5.8 Expériences supplémentaires111
      • 3.5.9 Pour conclure cette section111
      • 3.6 Prédiction du prix de l'immobilier : un exemple de régression 112
      • 3.6.1 Le jeu de données des prix de l'immobilier à Boston112
      • 3.6.2 Préparation de données113
      • 3.6.3 Architecture du réseau114
      • 3.6.4 Validation de l'approche à l'aide de la validation croisée à K- fold115
      • 3.6.5 Pour conclure cette section120
      • 3.7 Résumé du chapitre 121
      • 4 Principes fondamentaux de l'apprentissage automatique 123
      • 4.1 Quatre branches de l'apprentissage automatique 125
      • 4.1.1 Apprentissage supervisé125
      • 4.1.2 Apprentissage non supervisé126
      • 4.1.3 Apprentissage auto-supervisé126
      • 4.1.4 Apprentissage par renforcement127
      • 4.2 Évaluation des modèles d'apprentissage automatique 130
      • 4.2.1 Ensembles d'entraînement, de validation et de test130
      • 4.2.2 Points importants à garder à l'esprit135
      • 4.3 Prétraitement des données, extraction des caractéristiques et apprentissage des caractéristiques 137
      • 4.3.1 Prétraitement des données pour les réseaux de neurones137
      • 4.3.2 Extraction des caractéristiques139
      • 4.4 Sur-ajustement et sous-ajustement 142
      • 4.4.1 Réduction de la taille du réseau143
      • 4.4.2 Ajout d'une régularisation des poids146
      • 4.4.3 Ajout de dropout148
      • 4.5 Le déroulement universel des tâches de l'apprentissage automatique 152
      • 4.5.1 Définition du problème et constitution d'un jeu de données152
      • 4.5.2 Choix d'une mesure de performance153
      • 4.5.3 Choix d'un protocole d'évaluation154
      • 4.5.4 Préparation des données154
      • 4.5.5 Développement d'un modèle plus performant qu'un modèle de base155
      • 4.5.6 Montée en puissance : développement d'un modèle sur-ajusté157
      • 4.5.7 Régularisation du modèle et réglage des hyper-paramètres157
      • 4.6 Résumé du chapitre 159
      • Partie 2 L'apprentissage profond en pratique 161
      • 5 L'apprentissage profond pour la vision par ordinateur163
      • 5.1 Introduction aux réseaux de neurones convolutifs : les ConvNet 164
      • 5.1.1 L'opération de convolution167
      • 5.1.2 L'opération de max-pooling174
      • 5.2 Entraînement d'un ConvNet à partir de zéro sur un petit jeu de données 177
      • 5.2.1 La pertinence de l'apprentissage profond pour des problèmes avec peu de données d'apprentissage178
      • 5.2.2 Téléchargement des données178
      • 5.2.3 Architecture du réseau182
      • 5.2.4 Prétraitement des données184
      • 5.2.5 Utilisation de l'augmentation de données189
      • 5.3 Utilisation d'un ConvNet pré-entraîné 196
      • 5.3.1 Extraction de caractéristiques197
      • 5.3.2 Réglage de précision208
      • 5.3.3 Pour conclure ces deux dernières sections216
      • 5.4 Visualisation des représentations apprises par les ConvNet 217
      • 5.4.1 Visualisation des cartes de caractéristiques des couches intermédiaires217
      • 5.4.2 Visualisation des filtres de ConvNet226
      • 5.4.3 Visualisation des cartes thermiques d'activation de classe (heatmaps of class activation)233
      • 5.5 Résumé du chapitre 240
      • 6 L'apprentissage profond pour les textes et les séquences 241
      • 6.1 Traitement des données textuelles 243
      • 6.1.1 Représentation des mots et caractères avec des vecteurs one-hot246
      • 6.1.2 Utilisation des embeddings de mots249
      • 6.1.3 Synthèse : des textes bruts aux embeddings de mots255
      • 6.1.4 Pour conclure cette section264
      • 6.2 Comprendre les réseaux de neurones récurrents 265
      • 6.2.1 Une couche récurrente dans Keras268
      • 6.2.2 Comprendre les couches LSTM et GRU273
      • 6.2.3 Un cas concret d'utilisation d'une couche LSTM dans Keras277
      • 6.2.4 Pour conclure cette section279
      • 6.3 Utilisation avancée des réseaux de neurones récurrents 280
      • 6.3.1 Un problème de prédiction météorologique de la température280
      • 6.3.2 Préparation des données283
      • 6.3.3 Une base de référence de bon sens sans apprentissage automatique (non-machine-learning)287
      • 6.3.4 Une approche de base avec l'apprentissage automatique288
      • 6.3.5 Une première base de référence récurrente290
      • 6.3.6 Utilisation du dropout récurrent pour lutter contre le sur-ajustement292
      • 6.3.7 Piles de couches récurrentes293
      • 6.3.8 Utilisation de RNN bidirectionnels295
      • 6.3.9 Autres stratégies pour améliorer les performances300
      • 6.3.10 Pour conclure cette section300
      • 6.4 Traitement des séquences avec des réseaux ConvNet 303
      • 6.4.1 Comprendre la convolution ID pour les séquences (sequence data)303
      • 6.4.2 Opération de pooling ID pour les séquences (sequence data)304
      • 6.4.3 Implémentation d'un ConvNet ID305
      • 6.4.4 Combiner des ConvNet et des RNN pour traiter de longues séquences307
      • 6.4.5 Pour conclure cette section312
      • 6.5 Résumé du chapitre 313
      • 7 Les meilleures pratiques de l'apprentissage profond avancé 315
      • 7.1 Au-delà du modèle séquentiel : l'API Fonctionnelle de Keras 316
      • 7.1.1 Introduction à l'API Fonctionnelle320
      • 7.1.2 Modèles à plusieurs entrées322
      • 7.1.3 Modèles à plusieurs sorties324
      • 7.1.4 Graphes orientés acycliques de couches328
      • 7.1.5 Partage des poids d'une couche333
      • 7.1.6 Utilisation des modèles comme des couches335
      • 7.1.7 Pour conclure cette section336
      • 7.2 Inspection et surveillance des modèles à l'aide des callbacks de Keras et de TensorBoard 337
      • 7.2.1 Utilisation des ballbacks pour agir sur un modèle pendant son entraînement337
      • 7.2.2 Introduction à TensorBoard : l'outil de visualisation de TensorFlow342
      • 7.2.3 Pour conclure cette section350
      • 7.3 Comment tirer le meilleur parti de vos modèles 351
      • 7.3.1 Architectures avancées351
      • 7.3.2 Optimisation des hyper-paramètres355
      • 7.3.3 Ensemblage de modèles357
      • 7.3.4 Pour conclure cette section360
      • 7.4 Résumé du chapitre 362
      • 8 L'apprentissage profond génératif 363
      • 8.1 Génération de texte avec un LSTM 366
      • 8.1.1 Un bref historique des réseaux récurrents génératifs366
      • 8.1.2 Comment générer des données séquentielles367
      • 8.1.3 L'importance de la stratégie d'échantillonnage368
      • 8.1.4 Implémenter une génération de texte caractère par caractère avec un LSTM370
      • 8.1.5 Pour conclure cette section376
      • 8.2 L'algorithme DeepDream 377
      • 8.2.1 Implémentation de DeepDream dans Keras378
      • 8.2.2 Pour conclure cette section387
      • 8.3 Transfert de style neuronal 388
      • 8.3.1 La perte de contenu389
      • 8.3.2 La perte de style390
      • 8.3.3 Transfert de style neuronal dans Keras390
      • 8.3.4 Pour conclure cette section399
      • 8.4 Génération d'images avec des auto-encodeurs variationnels 400
      • 8.4.1 Échantillonnage dans des espaces latents d'images400
      • 8.4.2 Vecteurs de concept pour l'édition d'images402
      • 8.4.3 Auto-encodeurs variationnels402
      • 8.4.4 Pour conclure cette section410
      • 8.5 Introduction aux réseaux génératifs antagonistes 412
      • 8.5.1 Une implémentation schématique de GAN414
      • 8.5.2 Quelques astuces utiles415
      • 8.5.3 Le réseau génératif416
      • 8.5.4 Le réseau discriminant417
      • 8.5.5 Le réseau antagoniste418
      • 8.5.6 Comment entraîner un DCGAN419
      • 8.5.7 Pour conclure cette section422
      • 8.6 Résumé du chapitre 424
      • 9 Conclusions 425
      • 9.1 Révision des concepts clés 427
      • 9.1.1 Différentes approches de l'IA427
      • 9.1.2 Ce qui fait la spécificité de l'apprentissage profond à l'intérieur du domaine de l'apprentissage automatique427
      • 9.1.3 Comment penser l'apprentissage profond428
      • 9.1.4 Technologies clés qui ont permis son développement430
      • 9.1.5 Le déroulement universel des tâches en apprentissage automatique431
      • 9.1.6 Architectures clés des réseaux432
      • 9.1.7 Le champ des applications possibles437
      • 9.2 Les limites de l'apprentissage profond 440
      • 9.2.1 Le risque d'anthropomorphisation des modèles d'apprentissage automatique441
      • 9.2.2 Généralisation locale vs généralisation extrême443
      • 9.2.3 Pour conclure cette section445
      • 9.3 L'avenir de l'apprentissage profond 447
      • 9.3.1 Des modèles qui ressembleront à des programmes448
      • 9.3.2 Au-delà de la rétropropagation et des couches différentiables450
      • 9.3.3 Apprentissage automatique automatisé451
      • 9.3.4 Apprentissage continu et réutilisation de sous-programmes modulaires452
      • 9.3.5 La vision à long terme454
      • 9.4 Rester à jour dans un domaine en évolution rapide 456
      • 9.4.1 Pratiquer sur des problèmes concrets avec Kaggle456
      • 9.4.2 S'informer des derniers développements sur arXiv456
      • 9.4.3 Explorer l'écosystème Keras457
      • 9.5 Derniers mots 458
      • A Installer Keras et ses dépendances sur Ubuntu 459
      • B Exécution de notebooks Jupyter sur une instance GPU sur EC2 465
      • Index 473

  • Origine de la notice:
    • Electre
  • Disponible - 681.234 CHO

    Niveau 3 - Informatique