Description
Table des matières
- Avant-propos
- 1. Un souhait de vulgarisation des concepts liés à l’intelligence artificielle
- 2. Un mot sur l’auteur
- 3. À qui s’adresse cet ouvrage ?
- 4. Structure du livre
- 5. Aspects pratiques
- 6. Remerciements
- Vous avez dit intelligence artificielle ?
- 1. Ce que nous allons découvrir et les prérequis
- 2. L’intelligence artificielle, ce n’est pas nouveau !
- 3. Quelques dates et périodes clés
- 4. Mais qu’est-ce que l’intelligence artificielle ?
- 5. Intelligence artificielle, Machine Learning et Deep Learning
- 6. Les différents types d’apprentissage
- 7. L’intelligence artificielle fait peur
- 7.1 La singularité technologique
- 7.2 Des emplois menacés
- 7.3 Des intelligences artificielles détournées
- 7.4 Des boîtes noires qui font peur
- 7.5 Et la vie privée dans tout ça ?
- 8. Créer une intelligence artificielle chez soi c’est possible !
- Les fondamentaux du langage Python
- 1. Ce que nous allons découvrir et les prérequis
- 2. Pourquoi Python ?
- 3. Installation de Python
- 4. Une rapide découverte du langage Python
- 4.1 Python, un langage interprété
- 4.2 Les opérations de base
- 4.2.1 Affectation et affichage d’une variable
- 4.2.2 Affections et affichage de plusieurs variables et éventuellement de types différents
- 4.2.3 Création de plusieurs variables de même type et de même valeur
- 4.3 Manipulation de chaînes de caractères
- 4.3.1 Création d’une chaîne de caractères
- 4.3.2 Les concaténations
- 4.3.3 Accès aux caractères d’une chaîne
- 4.3.4 Quelques fonctions utiles
- 4.4 Utilisation des listes
- 4.4.1 L’initialisation
- 4.4.2 Les fonctions de manipulation des listes
- 4.5 Les tuples et les dictionnaires
- 4.6 Les structures conditionnelles et les boucles
- 4.6.1 Les structures conditionnelles
- 4.6.2 Les boucles “tant que”
- 4.6.3 Les boucles “Pour…”
- 5. Installation de PyCharm
- 6. Votre premier script en Python
- 6.1 Création du projet
- 6.2 Création du fichier de script principal
- 6.3 Nos premières lignes de code
- 6.3.1 Un tuple pour le paramétrage
- 6.3.2 Création des zones à l’aide de dictionnaires
- 6.3.3 Regroupement des zones dans une liste
- 6.3.4 Une fonction pour calculer la surface à nettoyer
- 6.3.5 Une deuxième fonction pour coder le temps de nettoyage
- 6.3.6 Le script dans son ensemble
- 7. Conclusion
- Des statistiques pour comprendre les données
- 1. Ce que nous allons découvrir et les prérequis
- 2. Les statistiques, un outil d’aide à la compréhension des données
- 3. Une série de notes en guise d’étude de cas
- 4. Petites notions de vocabulaire avant de commencer
- 4.1 Observations et features
- 4.2 Les types de données
- 5. Et Python dans tout ça ?
- 5.1 Des modules dédiés
- 5.2 Une représentation un peu particulière de notre étude de cas
- 5.3 Pas de Python, mais Excel en guise d’outil
- 6. Mesure de tendance centrale
- 6.1 Connaître le nombre d’observations et de features
- 6.2 Les valeurs minimales et maximales
- 6.3 La moyenne arithmétique
- 6.4 La médiane
- 6.4.1 Cas d’un nombre d’observations impair
- 6.4.2 Cas d’un nombre d’observations pair
- 6.4.3 Retour à notre exemple
- 6.5 Le mode
- 7. Premières déductions
- 8. La dispersion
- 8.1 L’étendue
- 8.2 L’écart type (Standard déviation)
- 8.2.1 Calcul de la variance
- 8.2.2 Calcul de l’écart type
- 8.2.3 Interprétation de l’écart type
- 8.3 Les quartiles et interquartile
- 8.3.1 Les quartiles
- 8.3.2 L’interquartile
- 9. Détection de valeurs extrêmes (outliers en anglais)
- 10. Traitement des valeurs extrêmes
- 11. Un peu de visualisation graphique
- 12. Conclusion sur les données
- 13. Distribution gaussienne et loi normale
- 13.1 Un exemple pour faire connaissance
- 13.2 Un peu de probabilités
- 14. Une classe Python pour vous aider à analyser vos données
- 15. Combien d’observations sont nécessaires pour un bon apprentissage ?
- Principaux algorithmes du Machine Learning
- 1. Ce que nous allons découvrir et les prérequis
- 2. Supervisé ou non supervisé ? Régression ou classification ?
- 3. Les algorithmes d’apprentissage supervisés pour la régression (prédiction de valeurs)
- 3.1 La régression linéaire univariée (linear regression)
- 3.2 La régression linéaire multiple (Multiple Linear Regression-MLR)
- 3.3 La méthode de descente de gradient
- 3.4 Régression polynomiale (polynomial regression)
- 3.4.1 Monôme et polynôme
- 3.5 Régression logistique
- 3.6 Arbre de décision (decision tree)
- 3.7 Forêts aléatoires (Random Forest)
- 3.8 Agrégation de modèle : le bagging, le boosting et le Gradient boosting
- 3.8.1 Le bagging
- 3.8.2 Le boosting
- 3.8.3 Gradient Boosting (GBoost) et XGBoost
- 3.9 Machine à vecteurs de support (SVM)
- 3.10 KNN (K-Nearest Neighbours)
- 3.11 Naive Bayes
- 4. Les algorithmes pour les apprentissages non supervisés
- 4.1 K-Moyennes (KMeans)
- 4.2 Mean-shift
- 4.3 DBSCAN (Density Based Spatial Clustering of Application with Noise)
- 4.4 Mélange gaussien (Gaussian Mixture Models (GMM))
- 5. Et c’est tout ?
- Machine Learning et Pokémons : première partie
- 1. Ce que nous allons découvrir et les prérequis
- 2. L’univers des Pokémons
- 3. Notre mission : choisir le bon Pokémon !
- 4. Des données pour un apprentissage supervisé
- 4.1 Des données basées sur l’expérience
- 4.2 Disposer d’un grand nombre de données d’apprentissage
- 4.3 Des données d’apprentissage et des données de tests
- 5. Les étapes à réaliser pour mener à bien un projet de Machine Learning
- 5.1 Création et configuration d’un nouveau projet Python
- 5.1.1 Installation de modules
- 5.1.2 Utilisation des modules dans un script Python
- 5.1.3 Référencement des fichiers de données dans notre projet
- 5.1 Création et configuration d’un nouveau projet Python
- 6. Étape 1 : définir le problème à résoudre
- 7. Étape 2 : acquérir des données d’apprentissage et de tests
- 8. Étape 3 : préparation des données
- 8.1 De quelles données disposons-nous ?
- 8.2 Affichage des dix premières lignes de nos données
- 8.3 Quelles sont les features de catégorisation ?
- 8.4 Quelles données sont de type numérique ?
- 8.5 Que faut-il penser de la feature LEGENDAIRE ?
- 8.6 Manque-t-il des données ?
- 8.7 À la recherche des features manquantes
- 8.8 Place aux observations des combats
- 8.9 Assemblage des observations
- 8.9.1 Nombre de combats menés
- 8.9.2 Nombre de combats gagnés
- 8.9.3 Agrégation des données avec le Pokédex
- 9. Une petite pause s’impose
- Machine Learning et Pokémons : seconde partie
- 1. Ce que nous allons découvrir et les prérequis
- 2. Un peu de statistiques
- 2.1 Le nombre de données (count)
- 2.2 La moyenne (mean)
- 2.3 L’écart type (Std pour Standard Deviation)
- 2.4 Les valeurs minimales et maximales
- 2.5 Les quartiles
- 2.6 Description de notre jeu d’observations
- 3. Quels sont les types de Pokémons qu’un dresseur doit posséder ?
- 4. Les types de Pokémons gagnants et perdants
- 5. Essayons de trouver une corrélation entre les données
- 6. Résumé de nos observations
- 7. Vérifions nos hypothèses
- 8. Passons à la phase d’apprentissage
- 8.1 Découpage des observations en jeu d’apprentissage et jeu de tests
- 8.2 Algorithme de régression linéaire
- 8.3 L’arbre de décision appliqué à la régression
- 8.4 La random forest
- 8.5 Sauvegarde du modèle d’apprentissage
- 9. Phénomènes de surapprentissage (overfitting) et de sous-apprentissage (underfitting)
- 10. Utiliser le modèle d’apprentissage dans une application
- 11. Fin du cas d’étude
- Bien classifier n’est pas une option
- 1. Ce que nous allons découvrir et prérequis
- 2. Origines et source du jeu d’observations
- 3. Un problème de classification et algorithmes de prédiction associés
- 4. Démarche de résolution du problème
- 4.1 Définition du problème à résoudre
- 4.2 Acquisition des données d’apprentissage
- 4.3 Préparer et nettoyer les données
- 4.3.1 De quelles données disposons-nous ?
- 4.3.2 De combien de données disposons-nous ?
- 4.3.3 Affichage des 10 premières observations
- 4.3.4 Transformation de la feature OBJET
- 4.3.5 Manque-t-il des données ?
- 4.4 Analyser et explorer les données
- 4.4.1 Combien de mines et combien de rochers ?
- 4.4.2 Moyenne, écart type, min, max et quartiles
- 4.4.3 À la recherche des valeurs extrêmes
- 4.4.4 Traitement des valeurs extrêmes
- 4.5 Choix d’un modèle de prédiction et résolution du problème
- 4.5.1 Des données d’apprentissage et des données de tests
- 4.5.2 Test des algorithmes
- 4.5.3 Optimisation
- 4.5.4 Et si on boostait un peu tout ça ?
- 4.5.5 Que faire des données extrêmes ?
- 5. En résumé
- Opinions et classification de textes
- 1. Ce que nous allons découvrir et les prérequis
- 2. Le traitement automatique du langage naturel (TALN)
- 3. Naive Bayes appliqué au TALN
- 3.1 Le théorème
- 3.2 Un exemple : quels mots-clés choisir ?
- 3.2.1 Détermination des probabilités
- 3.2.2 Conclusion
- 4. Naive Bayes pour l’analyse d’opinion
- 4.1 Étape 1 : normalisation des données
- 4.2 Étape 2 : suppression des stops words
- 4.3 Étape 3 : le stemming
- 4.4 Étape 4 : la lemmatisation
- 4.5 Étape 5 : déterminer le nombre d’occurrences de chaque mot
- 4.6 Étape 6 : déterminer les probabilités pour l’opinion positive
- 4.7 Étape 7 : déterminer les probabilités pour le sentiment positif
- 4.8 Étape 8 : déterminer le sentiment d’une nouvelle phrase
- 5. Cas pratique : croyez-vous au réchauffement climatique ?
- 5.1 Comment obtenir des données ?
- 5.2 Création d’un projet Python
- 5.3 Acquisition des données et préparation des données
- 5.3.1 Chargement du fichier
- 5.3.2 Normalisation
- 5.3.3 Suppression des stop words
- 5.3.4 La stemmisation
- 5.3.5 La lemmatisation
- 6. Phases d’apprentissage et de prédiction
- 6.1 Découpage en jeux de tests et d’apprentissage
- 6.2 Création d’un pipeline d’apprentissage
- 6.3 Apprentissage et analyse des résultats
- 6.4 Classification d’un nouveau message
- 7. L’algorithme SVM (Machine à vecteurs de supports) pour le classement de texte
- 8. L’algorithme SVM plus performant que Naive Bayes ?
- Abricots, cerises et clustering
- 1. Une machine qui apprend seule
- 2. Acquisition de données d’apprentissage
- 3. Algorithme des K-Means (K-Moyennes)
- 4. Visualiser les données
- 5. Laisser la machine classifier seule
- 6. Réaliser des classifications
- 7. Des erreurs de classifications
- 8. Algorithme de mélanges gaussiens ou Gaussian Mixture Model (GMM)
- 9. Pour conclure
- Un neurone pour prédire
- 1. Ce que nous allons découvrir et les prérequis
- 2. 1957 – Le perceptron
- 2.1 Un peu de biologie
- 2.2 La biologie appliquée au machine learning
- 3. Des données linéairement séparables
- 4. Fonctions d’activation, rétropropagation et descente de gradient
- 4.1 La fonction d’activation
- 4.1.1 La fonction de seuil binaire
- 4.1.2 La fonction sigmoïde
- 4.1.3 La fonction tangente hyperbolique (tanH)
- 4.1.4 La fonction ReLU (Rectified Linear Unit, unité de rectification linéaire)
- 4.1.5 La fonction softMax
- 4.1 La fonction d’activation
- 5. La rétropropagation de l’erreur
- 6. Les fonctions de perte (Loss function)
- 6.1 L’erreur linéaire ou erreur locale
- 6.2 Erreur moyenne quadratique MSE ou erreur globale
- 7. La descente de gradient
- 8. Le biais, un neurone particulier
- 9. Un cas pratique pour comprendre le perceptron
- 9.1 Initialisation du perceptron
- 9.2 Les étapes d’apprentissage
- 9.2.1 Étape 1 : initialisation des poids
- 9.2.2 Étape 2 : chargement des données de la première observation
- 9.2.3 Étape 3 : préactivation
- 9.2.4 Étape 4 : utilisation d’une fonction d’activation
- 9.2.5 Étape 5 : calcul de l’erreur linéaire commise lors de l’apprentissage
- 9.2.6 Étape 6 : ajustement des poids synaptiques
- 10. Codons notre premier neurone formel “From Scratch”
- 10.1 Les données d’apprentissage
- 10.2 Définition des poids
- 10.3 Gestion des hyperparamètres
- 10.4 Codage de fonctions utiles
- 10.5 Passons à l’apprentissage !
- 10.6 À la recherche du point de convergence
- 10.7 Tests de prédictions
- 11. Un neurone artificiel avec TensorFlow
- 11.1 Un petit mot sur TensorFlow
- 11.2 Données d’apprentissage et de tests
- 11.3 Paramétrage du neurone
- 11.4 L’apprentissage
- 11.5 Tests de prédictions
- 12. Un premier pas vers le Deep Learning
- Utilisation de plusieurs couches de neurones
- 1. Ce que nous allons découvrir et les prérequis
- 2. Fonctionnement des réseaux de neurones multicouches
- 3. Le cas du Ou exclusif (XOR)
- 3.1 De combien de couches et de neurones avons-nous besoin ?
- 3.2 Un exemple chiffré
- 3.2.1 Les données d’apprentissage
- 3.2.2 Initialisation des poids
- 3.2.3 Chargement des données d’entrée
- 3.2.4 Calcul de la préactivation du neurone de sortie
- 3.2.5 Calcul de l’activation
- 3.2.6 Calcul de l’erreur
- 3.2.7 Mise à jour des poids
- 3.3 Place au code avec TensorFlow !
- 4. Le retour des mines et des rochers
- 4.1 De meilleures performances avec plus de neurones sur la couche cachée ?
- 4.1.1 Chargement des données d’apprentissage
- 4.1.2 Création des jeux d’apprentissage et de tests
- 4.1.3 Paramétrage du réseau de neurones avec une couche cachée de 24 neurones
- 4.1.4 Réalisation de l’apprentissage
- 4.1.5 Calcul de la précision de l’apprentissage
- 4.1.6 De meilleurs résultats avec une couche cachée composée de 24 neurones ?
- 4.1.7 Pouvons-nous obtenir de meilleurs résultats ?
- 4.1 De meilleures performances avec plus de neurones sur la couche cachée ?
- 5. Conclusion
- La classification d’images
- 1. Ce que nous allons découvrir et les prérequis
- 2. Différence entre détection et classification d’images
- 3. Des réseaux de neurones convolutifs pour classifier des images
- 3.1 De nombreuses données d’apprentissage nécessaires
- 3.2 Un outil pour illustrer nos propos
- 3.3 L’image d’entrée
- 3.4 Les caractéristiques
- 3.5 La convolution
- 3.6 Pooling
- 3.7 Plusieurs couches de convolutions
- 3.8 Mise à plat (Flatten)
- 3.9 L’apprentissage
- 3.10 Un schéma global qui résume tout
- 4. Un cas pratique autour de la mode
- 4.1 Présentation de Kaggle
- 4.2 Parlons un peu de Keras
- 4.3 Classifier des robes, pulls et chaussures ?
- 4.4 De quelles données disposons-nous ?
- 4.5 Préparation des données d’apprentissage
- 4.6 Préparation des données de tests
- 4.7 Un réseau avec une seule couche de convolution
- 4.7.1 Configuration
- 4.7.2 Compilation, apprentissage et test
- 4.7.3 Conclusion sur l’apprentissage
- 4.7.4 Augmentation du nombre de données
- 4.7.5 Sauvegarde du modèle
- 4.8 Un modèle plus performant
- 5. Utilisation du modèle avec de nouvelles images
- 6. Pour conclure ce chapitre
- Votre ordinateur sait lire !
- 1. Ce que nous allons découvrir et les prérequis
- 2. Votre mission
- 2.1 Question n°1 : de quelles données avez-vous besoin ?
- 2.2 Question n°2 : comment utiliser le module Python-Mnist ?
- 2.3 Question n°3 : de quelles données disposez-vous à présent ?
- 2.4 Question n°4 : est-ce un problème de régression ou de classification ?
- 2.5 Question n°5 : quel algorithme allez-vous utiliser ?
- 2.6 Question n°6 : comment allez-vous créer vos jeux d’apprentissage et de tests ?
- 2.7 Question n°7 : les images sont elles au bon format ?
- 2.8 Question n°8 : qu’est-ce que la catégorisation des libellés en One-Hot et comment procéder pour la réaliser ?
- 2.9 Question n°9 : avez-vous une petite idée des paramètres à utiliser pour créer le réseau de neurones ?
- 2.10 Question n°10 : trouvez-vous le résultat satisfaisant ?
- 2.11 Mission accomplie !
- 3. La reconnaissance de lettres sur une vidéo
- 3.1 Une ardoise en guise de support
- 3.2 OpenCV, un module de traitement d’images
- 3.2.1 Utiliser la webcam
- 3.2.2 Détecter les formes rectangulaires
- 3.2.3 Détecter la zone d’écriture
- 3.2.4 Détecter et extraire la lettre écrite
- 3.2.5 Reconnaître la lettre écrite et la faire lire à votre ordinateur
- 4. Et voilà !
- Hommage au premier ChatBot
Reviews
There are no reviews yet.