• Aide
  • Eurêkoi Eurêkoi

Livre

Intelligence artificielle vulgarisée : le machine learning et le deep learning par la pratique

Résumé

Après un rappel des fondamentaux du langage Python et une présentation des algorithmes du machine learning et de leur champ d'application, l'auteur montre comment donner la faculté à son ordinateur de prédire des valeurs et de réaliser des classifications. Il dévoile également comment les neurosciences ont eu un impact sur l'intelligence artificielle. Avec la réalisation de deux cas pratiques. ©Electre 2019


  • Éditeur(s)
  • Date
    • cop. 2019
  • Notes
    • La couv. porte en plus : "En téléchargement : le code source des différents cas pratiques" ; "+ quiz" ; "version numérique offerte ! Pendant 1 an"
    • La 4e de couv. porte en plus : "Sur www.editions-eni.fr : le code source des différents cas pratiques"
    • Contient un "flashcode" permettant d'accéder à un contenu via Internet
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (434 p.) : ill., tabl., fig. ; 21 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-409-02073-5
  • Indice
    • 681.71 Intelligence artificielle et machines logiques
  • Quatrième de couverture
    • Intelligence artificielle vulgarisée

      Le Machine Learning et le Deep Learning par la pratique

      L'intelligence artificielle est aujourd'hui incontournable. Ce livre a pour objectif de présenter de façon vulgarisée les concepts du Machine Learning et du Deep Learning pour les mettre en application dans des projets basés sur de l'intelligence artificielle, en mettant de côté autant que possible les formules mathématiques et statistiques. Il s'adresse avant tout aux développeurs mais intéressera également toute personne novice en la matière.

      Avec une démarche progressive, chaque notion étudiée dans ce livre est illustrée par des cas pratiques écrits en langage Python. Des connaissances dans ce langage sont ainsi un plus.

      Après une introduction à l'intelligence artificielle et l'identification des craintes qu'elle suscite, l'auteur propose quelques rappels sur les fondamentaux du langage Python ainsi qu'une révision de certaines notions statistiques pour appréhender au mieux les algorithmes du Machine Learning. Le lecteur peut ensuite mettre en pratique certains de ces algorithmes et découvrir comment donner la faculté à sa machine de prédire des valeurs et de réaliser des classifications.

      Vient ensuite l'étude de l'apprentissage non supervisé et de l'usage des réseaux de neurones qui permet de surcroît au lecteur de découvrir comment les neurosciences ont eu un impact sur l'intelligence artificielle. Le livre se termine avec la réalisation de cas pratiques : un premier mêlant réseau de neurones et parole et un second relatif au premier chatbot.

      Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.


  • Tables des matières
      • Intelligence artificielle vulgarisée

      • Le Machine Learning et le Deep Learning par la pratique

      • Avant-propos
      • 1. Un souhait de vulgarisation des concepts liés à l'intelligence artificielle17
      • 2. Un mot sur l'auteur18
      • 3. À qui s'adresse cet ouvrage ?19
      • 4. Structure du livre20
      • 5. Aspects pratiques21
      • 6. Remerciements22
      • Chapitre 1
        Vous avez dit intelligence artificielle ?
      • 1. Ce que nous allons découvrir et les prérequis23
      • 2. L'intelligence artificielle, ce n'est pas nouveau !23
      • 3. Quelques dates et périodes clés25
      • 4. Mais qu'est-ce que l'intelligence artificielle ?27
      • 5. Intelligence artificielle, Machine Learning et Deep Learning28
      • 6. Les différents types d'apprentissage29
      • 7. L'intelligence artificielle fait peur30
      • 7.1 La singularité technologique30
      • 7.2 Des emplois menacés31
      • 7.3 Des intelligences artificielles détournées31
      • 7.4 Des boîtes noires qui font peur32
      • 7.5 Et la vie privée dans tout ça ?32
      • 8. Créer une intelligence artificielle chez soi c'est possible !34
      • Chapitre 2
        Les fondamentaux du langage Python
      • 1. Ce que nous allons découvrir et les prérequis35
      • 2. Pourquoi Python ?36
      • 3. Installation de Python36
      • 4. Une rapide découverte du langage Python39
      • 4.1 Python, un langage interprété40
      • 4.2 Les opérations de base40
      • 4.2.1 Affectation et affichage d'une variable40
      • 4.2.2 Affections et affichage de plusieurs variables et éventuellement de types différents41
      • 4.2.3 Création de plusieurs variables de même type et de même valeur41
      • 4.3 Manipulation de chaînes de caractères42
      • 4.3.1 Création d'une chaîne de caractères42
      • 4.3.2 Les concaténations42
      • 4.3.3 Accès aux caractères d'une chaîne43
      • 4.3.4 Quelques fonctions utiles44
      • 4.4 Utilisation des listes45
      • 4.4.1 L'initialisation45
      • 4.4.2 Les fonctions de manipulation des listes45
      • 4.5 Les tuples et les dictionnaires46
      • 4.6 Les structures conditionnelles et les boucles47
      • 4.6.1 Les structures conditionnelles47
      • 4.6.2 Les boucles « tant que »48
      • 4.6.3 Les boucles « Pour... »49
      • 5. Installation de PyCharm50
      • 6. Votre premier script en Python55
      • 6.1 Création du projet58
      • 6.2 Création du fichier de script principal59
      • 6.3 Nos premières lignes de code60
      • 6.3.1 Un tuple pour le paramétrage61
      • 6.3.2 Création des zones à l'aide de dictionnaires61
      • 6.3.3 Regroupement des zones dans une liste62
      • 6.3.4 Une fonction pour calculer la surface à nettoyer62
      • 6.3.5 Une deuxième fonction pour coder le temps de nettoyage64
      • 6.3.6 Le script dans son ensemble65
      • 7. Conclusion67
      • Chapitre 3
        Des statistiques pour comprendre les données
      • 1. Ce que nous allons découvrir et les prérequis69
      • 2. Les statistiques, un outil d'aide à la compréhension des données70
      • 3. Une série de notes en guise d'étude de cas71
      • 4. Petites notions de vocabulaire avant de commencer72
      • 4.1 Observations et features72
      • 4.2 Les types de données72
      • 5. Et Python dans tout ça ?73
      • 5.1 Des modules dédiés73
      • 5.2 Une représentation un peu particulière de notre étude de cas74
      • 5.3 Pas de Python, mais Excel en guise d'outil74
      • 6. Mesure de tendance centrale75
      • 6.1 Connaître le nombre d'observations et de features76
      • 6.2 Les valeurs minimales et maximales76
      • 6.3 La moyenne arithmétique78
      • 6.4 La médiane80
      • 6.4.1 Cas d'un nombre d'observations impair80
      • 6.4.2 Cas d'un nombre d'observations pair81
      • 6.4.3 Retour à notre exemple81
      • 6.5 Le mode84
      • 7. Premières déductions85
      • 8. La dispersion86
      • 8.1 L'étendue86
      • 8.2 L'écart type (Standard déviation)87
      • 8.2.1 Calcul de la variance88
      • 8.2.2 Calcul de l'écart type89
      • 8.2.3 Interprétation de l'écart type90
      • 8.3 Les quartiles et interquartile90
      • 8.3.1 Les quartiles90
      • 8.3.2 L'interquartile94
      • 9. Détection de valeurs extrêmes (outliers en anglais)94
      • 10. Traitement des valeurs extrêmes96
      • 11. Un peu de visualisation graphique97
      • 12. Conclusion sur les données99
      • 13. Distribution gaussienne et loi normale99
      • 13.1 Un exemple pour faire connaissance100
      • 13.2 Un peu de probabilités104
      • 14. Une classe Python pour vous aider à analyser vos données105
      • 15. Combien d'observations sont nécessaires pour un bon apprentissage ?107
      • Chapitre 4
        Principaux algorithmes du Machine Learning
      • 1. Ce que nous allons découvrir et les prérequis109
      • 2. Supervisé ou non supervisé ? Régression ou classification ?110
      • 3. Les algorithmes d'apprentissage supervisés pour la régression (prédiction de valeurs)110
      • 3.1 La régression linéaire univariée (linear regression)110
      • 3.2 La régression linéaire multiple (Multiple Linear Regression-MLR)111
      • 3.3 La méthode de descente de gradient112
      • 3.4 Régression polynomiale (polynomial regression)113
      • 3.4.1 Monôme et polynôme114
      • 3.5 Régression logistique114
      • 3.6 Arbre de décision (decision tree)115
      • 3.7 Forêts aléatoires (Random Forest)116
      • 3.8 Agrégation de modèle : le bagging, le boosting et le Gradient boosting117
      • 3.8.1 Le bagging117
      • 3.8.2 Le boosting118
      • 3.8.3 Gradient Boosting (GBoost) et XGBoost118
      • 3.9 Machine à vecteurs de support (SVM)118
      • 3.10 KNN (K-Nearest Neighbours)120
      • 3.11 Naive Bayes121
      • 4. Les algorithmes pour les apprentissages non supervisés123
      • 4.1 K-Moyennes (KMeans)123
      • 4.2 Mean-shift124
      • 4.3 DBSCAN (Density Based Spatial Clustering of Application with Noise)125
      • 4.4 Mélange gaussien (Gaussian Mixture Models (GMM)127
      • 5. Et c'est tout ?129
      • Chapitre 5
        Machine Learning et Pokémons : première partie
      • 1. Ce que nous allons découvrir et les prérequis131
      • 2. L'univers des Pokémons132
      • 3. Notre mission : choisir le bon Pokémon !133
      • 4. Des données pour un apprentissage supervisé133
      • 4.1 Des données basées sur l'expérience133
      • 4.2 Disposer d'un grand nombre de données d'apprentissage133
      • 4.3 Des données d'apprentissage et des données de tests133
      • 5. Les étapes à réaliser pour mener à bien un projet de Machine Learning134
      • 5.1 Création et configuration d'un nouveau projet Python134
      • 5.1.1 Installation de modules135
      • 5.1.2 Utilisation des modules dans un script Python138
      • 5.1.3 Référencement des fichiers des données dans notre projet139
      • 6. Étape 1 : définir le problème à résoudre140
      • 7. Étape 2 : acquérir des données d'apprentissage et de tests140
      • 8. Étape 3 : préparation des données141
      • 8.1 De quelles données disposons-nous ?141
      • 8.2 Affichage des dix premières lignes de nos données144
      • 8.3 Quelles sont les features de catégorisation ?146
      • 8.4 Quelles données sont de type numérique ?147
      • 8.5 Que faut-il penser de la feature Legendaire ?148
      • 8.6 Manque-t-il des données ?149
      • 8.7 À la recherche des features manquantes150
      • 8.8 Place aux observations des combats153
      • 8.9 Assemblage des observations154
      • 8.9.1 Nombre de combats menés154
      • 8.9.2 Nombre de combats gagnés157
      • 8.9.3 Agrégation des données avec le Pokédex158
      • 9. Une petite pause s'impose161
      • Chapitre 6
        Machine Learning et Pokémons : seconde partie
      • 1. Ce que nous allons découvrir et les prérequis163
      • 2. Un peu de statistiques164
      • 2.1 Le nombre de données (count)164
      • 2.2 La moyenne (mean)165
      • 2.3 L'écart type (Std pour Standard Deviation)165
      • 2.4 Les valeurs minimales et maximales165
      • 2.5 Les quartiles166
      • 2.6 Description de notre jeu d'observations167
      • 3. Quels sont les types de Pokémons qu'un dresseur doit posséder ?168
      • 4. Les types de Pokémons gagnants et perdants170
      • 5. Essayons de trouver une corrélation entre les données172
      • 6. Résumé de nos observations174
      • 7. Vérifions nos hypothèses175
      • 8. Passons à la phase d'apprentissage176
      • 8.1 Découpage des observations en jeu d'apprentissage et jeu de tests177
      • 8.2 Algorithme de régression linéaire181
      • 8.3 L'arbre de décision appliqué à la régression184
      • 8.4 La random forest185
      • 8.5 Sauvegarde du modèle d'apprentissage186
      • 9. Phénomènes de surapprentissage (overfitting) et de sous-apprentissage (underfitting)186
      • 10. Utiliser le modèle d'apprentissage dans une application187
      • 11. Fin du cas d'étude191
      • Chapitre 7
        Bien classifier n'est pas une option
      • 1. Ce que nous allons découvrir et prérequis193
      • 2. Origines et source du jeu d'observations194
      • 3. Un problème de classification et algorithmes de prédiction associés195
      • 4. Démarche de résolution du problème195
      • 4.1 Définition du problème à résoudre195
      • 4.2 Acquisition des données d'apprentissage196
      • 4.3 Préparer et nettoyer les données196
      • 4.3.1 De quelles données disposons-nous ?196
      • 4.3.2 De combien de données disposons-nous ?197
      • 4.3.3 Affichage des 10 premières observations198
      • 4.3.4 Transformation de la feature Objet200
      • 4.3.5 Manque-t-il des données ?201
      • 4.4 Analyser et explorer les données203
      • 4.4.1 Combien de mines et combien de rochers ?203
      • 4.4.2 Moyenne, écart type, min, max et quartiles203
      • 4.4.3 À la recherche des valeurs extrêmes204
      • 4.4.4 Traitement des valeurs extrêmes209
      • 4.5 Choix d'un modèle de prédiction et résolution du problème209
      • 4.5.1 Des données d'apprentissage et des données de tests209
      • 4.5.2 Test des algorithmes211
      • 4.5.3 Optimisation213
      • 4.5.4 Et si on boostait un peu tout ça ?216
      • 4.5.5 Que faire des données extrêmes ?216
      • 5. En résumé220
      • Chapitre 8
        Opinions et classification de textes
      • 1. Ce que nous allons découvrir et les prérequis223
      • 2. Le traitement automatique du langage naturel (TALN)224
      • 3. Naive Bayes appliqué au TALN224
      • 3.1 Le théorème225
      • 3.2 Un exemple : quels mots-clés choisit ?225
      • 3.2.1 Détermination des probabilités226
      • 3.2.2 Conclusion229
      • 4. Naive Bayes pour l'analyse d'opinion229
      • 4.1 Étape 1 : normalisation des données230
      • 4.2 Étape 2 : suppression des stops words231
      • 4.3 Étape 3 : le stemming231
      • 4.4 Étape 4 : la lemmatisation232
      • 4.5 Étape 5 : déterminer le nombre d'occurrences de chaque mot232
      • 4.6 Étape 6 : déterminer les probabilités pour l'opinion positive233
      • 4.7 Étape 7 : déterminer les probabilités pour le sentiment positif235
      • 4.8 Étape 8 : déterminer le sentiment d'une nouvelle phrase236
      • 5. Cas pratique : croyez-vous au réchauffement climatique ?237
      • 5.1 Comment obtenir des données ?237
      • 5.2 Création d'un projet Python238
      • 5.3 Acquisition des données et préparation des données239
      • 5.3.1 Chargement du fichier239
      • 5.3.2 Normalisation241
      • 5.3.3 Suppression des stop words242
      • 5.3.4 La stemmisation242
      • 5.3.5 La lemmatisation243
      • 6. Phases d'apprentissage et de prédiction243
      • 6.1 Découpage en jeux de tests et d'apprentissage243
      • 6.2 Création d'un pipeline d'apprentissage244
      • 6.3 Apprentissage et analyse des résultats245
      • 6.4 Classification d'un nouveau message246
      • 7. L'algorithme SVM (Machine à vecteurs de supports) pour le classement de texte247
      • 8. L'algorithme SVM plus performant que Naive Bayes ?249
      • Chapitre 9
        Abricots, cerises et clustering
      • 1. Une machine qui apprend seule251
      • 2. Acquisition de données d'apprentissage252
      • 3. Algorithme des K-Means (K-Moyennes)255
      • 4. Visualiser les données256
      • 5. Laisser la machine classifier seule258
      • 6. Réaliser des classifications260
      • 7. Des erreurs de classifications261
      • 8. Algorithme de mélanges gaussiens ou Gaussian Mixture Model (GMM)263
      • 9. Pour conclure265
      • Chapitre 10
        Un neurone pour prédire
      • 1. Ce que nous allons découvrir et les prérequis267
      • 2. 1957 - Le perceptron267
      • 2.1 Un peu de biologie268
      • 2.2 La biologie appliquée au machine learning270
      • 3. Des données linéairement séparables271
      • 4. Fonctions d'activation, rétropropagation et descente de gradient274
      • 4.1 La fonction d'activation274
      • 4.1.1 La fonction de seuil binaire274
      • 4.1.2 La fonction sigmoïde275
      • 4.1.3 La fonction tangente hyperbolique (tanH)276
      • 4.1.4 La fonction ReLU (Rectified Linear Unit, unité de rectification linéaire)277
      • 4.1.5 La fonction softMax278
      • 5. La rétropropagation de l'erreur279
      • 6. Les fonctions de perte (Loss function)279
      • 6.1 L'erreur linéaire ou erreur locale280
      • 6.2 Erreur moyenne quadratique MSE ou erreur globale280
      • 7. La descente de gradient281
      • 8. Le biais, un neurone particulier284
      • 9. Un cas pratique pour comprendre le perceptron286
      • 9.1 Initialisation du perceptron287
      • 9.2 Les étapes d'apprentissage288
      • 9.2.1 Étape 1 : initialisation des poids288
      • 9.2.2 Étape 2 : chargement des données de la première observation289
      • 9.2.3 Étape 3 : préactivation290
      • 9.2.4 Étape 4 : utilisation d'une fonction d'activation291
      • 9.2.5 Étape 5 : calcul de l'erreur linéaire commise lors de l'apprentissage292
      • 9.2.6 Étape 6 : ajustement des poids synaptiques292
      • 10. Codons notre premier neurone formel « From Scratch »294
      • 10.1 Les données d'apprentissage294
      • 10.2 Définition des poids295
      • 10.3 Gestion des hyperparamètres295
      • 10.4 Codage de fonctions utiles295
      • 10.5 Passons à l'apprentissage !297
      • 10.6 À la recherche du point de convergence300
      • 10.7 Tests de prédictions302
      • 11. Un neurone artificiel avec TensorFlow304
      • 11.1 Un petit mot sur TensorFlow305
      • 11.2 Données d'apprentissage et de tests306
      • 11.3 Paramétrage du neurone306
      • 11.4 L'apprentissage308
      • 11.5 Tests de prédictions310
      • 12. Un premier pas vers le Deep Learning311
      • Chapitre 11
        Utilisation de plusieurs couches de neurones
      • 1. Ce que nous allons découvrir et les prérequis313
      • 2. Fonctionnement des réseaux de neurones multicouches313
      • 3. Le cas du Ou exclusif (XOR)314
      • 3.1 De combien de couches et de neurones avons-nous besoin ?315
      • 3.2 Un exemple chiffré316
      • 3.2.1 Les données d'apprentissage316
      • 3.2.2 Initialisation des poids317
      • 3.2.3 Chargement des données d'entrée317
      • 3.2.4 Calcul de la préactivation du neurone de sortie318
      • 3.2.5 Calcul de l'activation318
      • 3.2.6 Calcul de l'erreur318
      • 3.2.7 Mise à jour des poids319
      • 3.3 Place au code avec TensorFlow !321
      • 4. Le retour des mines et des rochers326
      • 4.1 De meilleures performances avec plus de neurones sur la couche cachée ?327
      • 4.1.1 Chargement des données d'apprentissage327
      • 4.1.2 Création des jeux d'apprentissage et de tests328
      • 4.1.3 Paramétrage du réseau de neurones avec une couche cachée de 24 neurones328
      • 4.1.4 Réalisation de l'apprentissage331
      • 4.1.5 Calcul de la précision l'apprentissage332
      • 4.1.6 De meilleurs résultats avec une couche cachée composée de 24 neurones ?335
      • 4.1.7 Pouvons-nous obtenir de meilleurs résultats ?337
      • 5. Conclusion339
      • Chapitre 12
        La classification d'images
      • 1. Ce que nous allons découvrir et les prérequis341
      • 2. Différence entre détection et classification d'images341
      • 3. Des réseaux de neurones convolutifs pour classifier des images342
      • 3.1 De nombreuses données d'apprentissage nécessaires342
      • 3.2 Un outil pour illustrer nos propos343
      • 3.3 L'image d'entrée344
      • 3.4 Les caractéristiques345
      • 3.5 La convolution346
      • 3.6 Pooling351
      • 3.7 Plusieurs couches de convolutions353
      • 3.8 Mise à plat (Flatten)354
      • 3.9 L'apprentissage355
      • 3.10 Un schéma global qui résume tout355
      • 4. Un cas pratique autour de la mode356
      • 4.1 Présentation de Kaggle356
      • 4.2 Parlons un peu de Keras357
      • 4.3 Classifier des robes, pulls et chaussures ?357
      • 4.4 De quelles données disposons-nous ?358
      • 4.5 Préparation des données d'apprentissage361
      • 4.6 Préparation des données de tests363
      • 4.7 Un réseau avec une seule couche de convolution363
      • 4.7.1 Configuration363
      • 4.7.2 Compilation, apprentissage et test365
      • 4.7.3 Conclusion sur l'apprentissage367
      • 4.7.4 Augmentation du nombre de données369
      • 4.7.5 Sauvegarde du modèle373
      • 4.8 Un modèle plus performant374
      • 5. Utilisation du modèle avec de nouvelles images375
      • 6. Pour conclure ce chapitre381
      • Chapitre 13
        Votre ordinateur sait lire !
      • 1. Ce que nous allons découvrir et les prérequis383
      • 2. Votre mission384
      • 2.1 Question n° 1 : de quelles données avez-vous besoin ?384
      • 2.2 Question n° 2 : comment utiliser le module Python-Mnist ?385
      • 2.3 Question n° 3 : de quelles données disposez-vous à présent387
      • 2.4 Question n° 4 : est-ce un problème de régression ou de classification389
      • 2.5 Question n° 5 : quel algorithme allez-vous utiliser ?389
      • 2.6 Question n° 6 : comment allez-vous créer vos jeux d'apprentissage et de tests ?390
      • 2.7 Question n° 7 : les images sont elles au bon format ?390
      • 2.8#160;Question n° 8: qu'est-ce que la catégorisation des libellés en One-Hot et comment procéder pour la réaliser ?392
      • 2.9 Question n° 9 : avez-vous une petite idée des paramètres à utiliser pour créer le réseau de neurones392
      • 2.10 Question n° 10 : trouvez-vous le résultat satisfaisant ?395
      • 2.11 Mission accomplie !395
      • 3. La reconnaissance de lettres sur une vidéo398
      • 3.1 Une ardoise en guise de support398
      • 3.2 OpenCV, un module de traitement d'images399
      • 3.2.1 Utiliser la webcam400
      • 3.2.2 Détecter les formes rectangulaires402
      • 3.2.3 Détecter la zone d'écriture405
      • 3.2.4 Détecter et extraire la lettre écrite406
      • 3.2.5 Reconnaître la lettre écrite et la faire lire à votre ordinateur409
      • 4. Et voilà !412
      • Chapitre 14
        Hommage au premier ChatBot
      • 1. Introduction413
      • 2. Eliza414
      • 2.1 Comment fonctionne Eliza ?414
      • 2.2 Le code d'Eliza415
      • 3. D'autres ChatBots !421
      • 4. C'est déjà la fin !422
      • Index425

  • Origine de la notice:
    • Electre
  • Disponible - 681.71 VAN

    Niveau 3 - Informatique