Accès illimité 24h/24 à tous nos livres & vidéos ! Découvrez la Bibliothèque Numérique ENI. Cliquez ici.
  1. Livres et vidéos
  2. L'Intelligence Artificielle pour les développeurs - Concepts et implémentations en C# (2e édition)

L'Intelligence Artificielle pour les développeurs Concepts et implémentations en C# (2e édition)

  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement et pour une durée de 10 ans
  • Version HTML
  • Accès illimité 24h/24, 7J/7
  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne

Présentation

Ce livre sur l'Intelligence Artificielle s'adresse particulièrement aux développeurs et ne nécessite pas de connaissances mathématiques approfondies. Au fil des chapitres, l'auteur présente les principales techniques d'Intelligence Artificielle et, pour chacune d'elles, les inspirations biologiques, physiques voire mathématiques, puis les différents concepts et principes (sans entrer dans les détails mathématiques), avec des exemples et figures pour chacun de ceux-ci. Les domaines d'application sont illustrés par des applications réelles et actuelles. Chaque chapitre contient un exemple d'implémentation générique, complété par une application pratique, développée en C#. Ces exemples de code étant génériques, ils sont facilement adaptables à de nombreuses applications C#, que ce soit dans des applications .NET classiques, pour ASP.NET, ou encore des applications Windows (versions 8 et 10). Les techniques d'Intelligence Artificielle décrites sont :

Les systèmes experts, permettant d'appliquer des règles pour prendre des décisions ou découvrir de nouvelles connaissances.
La logique floue, permettant de contrôler des systèmes informatiques ou mécaniques de manière beaucoup plus souple que les programmes traditionnels.
Les algorithmes de recherche de chemin, dont le A* très utilisé dans les jeux vidéo pour trouver les meilleurs itinéraires.
Les algorithmes génétiques, utilisant la puissance de l'évolution pour apporter des solutions à des problèmes complexes.
Les principales métaheuristiques, dont la recherche tabou, trouvant des optimums à des problèmes d'optimisation, avec ou sans contraintes.
Les systèmes multi-agents, simulant des foules ou permettant des comportements émergents à partir de plusieurs agents très simples.
Les réseaux de neurones (ou deep learning), capables de découvrir et de reconnaître des modèles, dans des suites historiques, des images ou encore des données.

Pour aider le lecteur à passer de la théorie à la pratique, l'auteur propose en téléchargement sur le site www.editions-eni.fr, sept projets Visual Studio 2017 (un par technique d'Intelligence Artificielle), développés en C#. Chaque projet contient une PCL, pour la partie générique, et une application (en mode console ou WPF selon les chapitres) pour la partie spécifique à l'application proposée.

Le livre se termine par une bibliographie, permettant au lecteur de trouver plus d'informations sur ces différentes techniques, une sitographie listant quelques articles présentant des applications réelles, une annexe et un index.


Les chapitres du livre :
Avant-propos – Introduction – Systèmes experts – Logique floue – Recherche de chemins – Algorithmes génétiques – Métaheuristiques d'optimisation – Systèmes multi-agents – Réseaux de neurones – Bibliographie – Sitographie – Annexe



Retrouvez le webinaire consacré au Deep Learning.



Grâce à ce webinaire, découvrez le concept du Deep Learning et ses appications concrètes à travers des cas d'usage.

Table des matières

Avant-propos
  1. 1. Objectifs du livre
  2. 2. Public et prérequis
  3. 3. Structure du livre
  4. 4. Code en téléchargement
Introduction
  1. 1. Présentation du chapitre
  2. 2. Définir l’intelligence
  3. 3. L’intelligence du vivant
  4. 4. L’intelligence artificielle
  5. 5. Domaines d’application
  6. 6. Synthèse
Systèmes experts
  1. 1. Présentation du chapitre
  2. 2. Exemple : un système expert en polygones
    1. 2.1 Triangles
    2. 2.2 Quadrilatères
    3. 2.3 Autres polygones
  3. 3. Contenu d'un système expert
    1. 3.1 Base de règles
    2. 3.2 Base de faits
    3. 3.3 Moteur d'inférences
    4. 3.4 Interface utilisateur
  4. 4. Types d'inférences
    1. 4.1 Chaînage avant
      1. 4.1.1 Principe
      2. 4.1.2 Application à un exemple
    2. 4.2 Chaînage arrière
      1. 4.2.1 Principe
      2. 4.2.2 Application à un exemple
    3. 4.3 Chaînage mixte
  5. 5. Étapes de construction d'un système
    1. 5.1 Extraction des connaissances
    2. 5.2 Création du moteur d'inférences
    3. 5.3 Écriture des règles
    4. 5.4 Création de l'interface utilisateur
  6. 6. Performance et améliorations
    1. 6.1 Critères de performance
    2. 6.2 Amélioration des performances par l'écriture des règles
    3. 6.3 Importance de la représentation du problème
  7. 7. Ajout d’incertitudes et de probabilités
    1. 7.1 Apport des incertitudes
    2. 7.2 Faits incertains
    3. 7.3 Règles incertaines
  8. 8. Domaines d’application
    1. 8.1 Aide au diagnostic
    2. 8.2 Estimation de risques
    3. 8.3 Planification et logistique
    4. 8.4 Transfert de compétences et connaissances
    5. 8.5 Autres applications
  9. 9. Création d’un système expert en C#
    1. 9.1 Détermination des besoins
    2. 9.2 Implémentation des faits
    3. 9.3 Base de faits
    4. 9.4 Règles et base de règles
    5. 9.5 Interface
    6. 9.6 Moteur d'inférences
    7. 9.7 Saisie des règles et utilisation
  10. 10. Utilisation de Prolog
    1. 10.1 Présentation du langage
    2. 10.2 Syntaxe du langage
      1. 10.2.1 Généralités
      2. 10.2.2 Prédicats
      3. 10.2.3 Poser des questions
      4. 10.2.4 Écriture des règles
      5. 10.2.5 Autres prédicats utiles
    3. 10.3 Codage du problème des formes géométriques
    4. 10.4 Codage du problème des huit reines
      1. 10.4.1 Intérêt du chaînage arrière
      2. 10.4.2 Étude du problème
      3. 10.4.3 Règles à appliquer
      4. 10.4.4 Règles de conflits entre reines
      5. 10.4.5 But du programme
      6. 10.4.6 Exemples d'utilisation
  11. 11. Synthèse
Logique floue
  1. 1. Présentation du chapitre
  2. 2. Incertitude et imprécision
    1. 2.1 Incertitude et probabilités
    2. 2.2 Imprécision et subjectivité
    3. 2.3 Nécessité de traiter l'imprécision
  3. 3. Ensembles flous et degrés d’appartenance
    1. 3.1 Logique booléenne et logique floue
    2. 3.2 Fonctions d'appartenance
    3. 3.3 Caractéristiques d'une fonction d'appartenance
    4. 3.4 Valeurs et variables linguistiques
  4. 4. Opérateurs sur les ensembles flous
    1. 4.1 Opérateurs booléens
    2. 4.2 Opérateurs flous
      1. 4.2.1 Négation
      2. 4.2.2 Union et intersection
  5. 5. Création de règles
    1. 5.1 Règles en logique booléenne
    2. 5.2 Règles floues
  6. 6. Fuzzification et défuzzification
    1. 6.1 Valeur de vérité
    2. 6.2 Fuzzification et application des règles
    3. 6.3 Défuzzification
  7. 7. Domaines d’applications
    1. 7.1 Première utilisation
    2. 7.2 Dans les produits électroniques
    3. 7.3 En automobile
    4. 7.4 Autres domaines
  8. 8. Implémentation d’un moteur de logique floue
    1. 8.1 Le cœur du code : les ensembles flous
      1. 8.1.1 Point2D : un point d'une fonction d'appartenance
      2. 8.1.2 FuzzySet : un ensemble flou
      3. 8.1.3 Opérateurs de comparaison et de multiplication
      4. 8.1.4 Opérateurs ensemblistes
      5. 8.1.5 Calcul du barycentre
    2. 8.2 Ensembles flous particuliers
    3. 8.3 Variables et valeurs linguistiques
      1. 8.3.1 LinguisticValue : valeur linguistique
      2. 8.3.2 LinguisticVariable : variable linguistique
    4. 8.4 Règles floues
      1. 8.4.1 FuzzyExpression : expression floue
      2. 8.4.2 FuzzyValue : valeur floue
      3. 8.4.3 FuzzyRule : règle floue
    5. 8.5 Système de contrôle flou
    6. 8.6 Synthèse du code créé
  9. 9. Implémentation d’un cas pratique
  10. 10. Synthèse
Recherche de chemins
  1. 1. Présentation du chapitre
  2. 2. Chemins et graphes
    1. 2.1 Définition et concepts
    2. 2.2 Représentations
      1. 2.2.1 Représentation graphique
      2. 2.2.2 Matrice d’adjacence
    3. 2.3 Coût d'un chemin et matrice des longueurs
  3. 3. Exemple en cartographie
  4. 4. Algorithmes naïfs de recherche de chemins
    1. 4.1 Parcours en profondeur
      1. 4.1.1 Principe et pseudo-code
      2. 4.1.2 Application à la carte
    2. 4.2 Parcours en largeur
      1. 4.2.1 Principe et pseudo-code
      2. 4.2.2 Application à la carte
  5. 5. Algorithmes "intelligents"
    1. 5.1 Algorithme de Bellman-Ford
      1. 5.1.1 Principe et pseudo-code
      2. 5.1.2 Application à la carte
    2. 5.2 Algorithme de Dijkstra
      1. 5.2.1 Principe et pseudo-code
      2. 5.2.2 Application à la carte
    3. 5.3 Algorithme A*
      1. 5.3.1 Principe et pseudo-code
      2. 5.3.2 Application à la carte
  6. 6. Domaines d’application
  7. 7. Implémentations
    1. 7.1 Nœuds, arcs et graphes
      1. 7.1.1 Implémentation des nœuds
      2. 7.1.2 Classe représentant les arcs
      3. 7.1.3 Interface des graphes
    2. 7.2 Fin du programme générique
      1. 7.2.1 IHM
      2. 7.2.2 Algorithme générique
    3. 7.3 Codage des différents algorithmes
      1. 7.3.1 Recherche en profondeur
      2. 7.3.2 Recherche en largeur
      3. 7.3.3 Algorithme de Bellman-Ford
      4. 7.3.4 Algorithme de Dijkstra
      5. 7.3.5 Algorithme A*
    4. 7.4 Application à la carte
      1. 7.4.1 Tile et Tiletype
      2. 7.4.2 Implémentation de la carte
      3. 7.4.3 Programme principal
    5. 7.5 Comparaison des performances
  8. 8. Synthèse
Algorithmes génétiques
  1. 1. Présentation du chapitre
  2. 2. Évolution biologique
    1. 2.1 Le concept d'évolution
    2. 2.2 Les causes des mutations
    3. 2.3 Le support de cette information : les facteurs
    4. 2.4 Des facteurs au code génétique
    5. 2.5 Le « cycle de la vie »
  3. 3. Évolution artificielle
    1. 3.1 Principes
    2. 3.2 Convergence
    3. 3.3 Exemple
      1. 3.3.1 Jeu du Mastermind
      2. 3.3.2 Création de la population initiale
      3. 3.3.3 Fonction d'évaluation
      4. 3.3.4 Phase de reproduction
      5. 3.3.5 Survie et enchaînement des générations
      6. 3.3.6 Terminaison de l'algorithme
  4. 4. Premières phases de l'algorithme
    1. 4.1 Choix des représentations
      1. 4.1.1 Population et individus
      2. 4.1.2 Gènes
      3. 4.1.3 Cas complexes
    2. 4.2 Initialisation de la population initiale
    3. 4.3 Évaluation des individus
  5. 5. Création des générations suivantes
    1. 5.1 Sélection des parents
    2. 5.2 Reproduction
      1. 5.2.1 Crossover
      2. 5.2.2 Mutation
    3. 5.3 Survie
    4. 5.4 Terminaison
  6. 6. Coévolution
  7. 7. Domaines d'application
  8. 8. Implémentation
    1. 8.1 Implémentation générique d'un algorithme
      1. 8.1.1 Spécifications
      2. 8.1.2 Paramètres
      3. 8.1.3 Individus et gènes
      4. 8.1.4 IHM
      5. 8.1.5 Processus évolutionnaire
    2. 8.2 Utilisation pour le voyageur de commerce
      1. 8.2.1 Présentation du problème
      2. 8.2.2 Environnement
      3. 8.2.3 Gènes
      4. 8.2.4 Individus
      5. 8.2.5 Programme principal
      6. 8.2.6 Résultats
    3. 8.3 Utilisation pour la résolution d'un labyrinthe
      1. 8.3.1 Présentation du problème
      2. 8.3.2 Environnement
      3. 8.3.3 Gènes
      4. 8.3.4 Individus
      5. 8.3.5 Programme principal
      6. 8.3.6 Résultats
  9. 9. Synthèse
Métaheuristiques d'optimisation
  1. 1. Présentation du chapitre
  2. 2. Optimisation et minimums
    1. 2.1 Exemples
    2. 2.2 Le problème du sac à dos
    3. 2.3 Formulation des problèmes
    4. 2.4 Résolution mathématique
    5. 2.5 Recherche exhaustive
    6. 2.6 Métaheuristiques
  3. 3. Algorithmes gloutons
  4. 4. Descente de gradient
  5. 5. Recherche tabou
  6. 6. Recuit simulé
  7. 7. Optimisation par essaims particulaires
  8. 8. Méta-optimisation
  9. 9. Domaines d’application
  10. 10. Implémentation
    1. 10.1 Classes génériques
    2. 10.2 Implémentation des différents algorithmes
      1. 10.2.1 Algorithme glouton
      2. 10.2.2 Descente de gradient
      3. 10.2.3 Recherche tabou
      4. 10.2.4 Recuit simulé
      5. 10.2.5 Optimisation par essaims particulaires
    3. 10.3 Résolution du problème du sac à dos
      1. 10.3.1 Implémentation du problème
      2. 10.3.2 Algorithme glouton
      3. 10.3.3 Descente de gradient
      4. 10.3.4 Recherche tabou
      5. 10.3.5 Recuit simulé
      6. 10.3.6 Optimisation par essaims particulaires
      7. 10.3.7 Programme principal
    4. 10.4 Résultats obtenus
  11. 11. Synthèse
Systèmes multi-agents
  1. 1. Présentation du chapitre
  2. 2. Origine biologique
    1. 2.1 Les abeilles et la danse
    2. 2.2 Les termites et le génie civil
    3. 2.3 Les fourmis et l'optimisation de chemins
    4. 2.4 Intelligence sociale
  3. 3. Systèmes multi-agents
    1. 3.1 L'environnement
    2. 3.2 Les objets
    3. 3.3 Les agents
  4. 4. Classification des agents
    1. 4.1 Perception du monde
    2. 4.2 Prise des décisions
    3. 4.3 Coopération et communication
    4. 4.4 Capacités de l'agent
  5. 5. Principaux algorithmes
    1. 5.1 Algorithmes de meutes
    2. 5.2 Optimisation par colonie de fourmis
    3. 5.3 Systèmes immunitaires artificiels
    4. 5.4 Automates cellulaires
  6. 6. Domaines d’application
    1. 6.1 Simulation de foules
    2. 6.2 Planification
    3. 6.3 Phénomènes complexes
    4. 6.4 Autres domaines
  7. 7. Implémentation
    1. 7.1 Banc de poissons
      1. 7.1.1 Les objets du monde et les zones à éviter
      2. 7.1.2 Les agents-poissons
      3. 7.1.3 L'océan
      4. 7.1.4 L'application graphique
      5. 7.1.5 Résultats obtenus
    2. 7.2 Tri sélectif
      1. 7.2.1 Les déchets
      2. 7.2.2 Les agents nettoyeurs
      3. 7.2.3 L'environnement
      4. 7.2.4 L'application graphique
      5. 7.2.5 Résultats obtenus
    3. 7.3 Le jeu de la vie
      1. 7.3.1 La grille
      2. 7.3.2 L'application graphique
      3. 7.3.3 Résultats obtenus
  8. 8. Synthèse
Réseaux de neurones
  1. 1. Présentation du chapitre
  2. 2. Origine biologique
  3. 3. Machine Learning
    1. 3.1 Formes d'apprentissage et exemples
      1. 3.1.1 Apprentissage non supervisé
      2. 3.1.2 Apprentissage supervisé
      3. 3.1.3 Apprentissage par renforcement
    2. 3.2 Régression et algorithme de régression linéaire
    3. 3.3 Classification et algorithme de régression logistique
  4. 4. Neurone formel et perceptron
    1. 4.1 Principe
    2. 4.2 Réseaux de type "perceptron"
    3. 4.3 Fonctions d'agrégation et d'activation
      1. 4.3.1 Fonction d'agrégation
      2. 4.3.2 Fonction d'activation
    4. 4.4 Exemple de réseau
    5. 4.5 Apprentissage
  5. 5. Réseaux feed-forward
    1. 5.1 Réseaux avec couche cachée
    2. 5.2 Apprentissage par rétropropagation du gradient
    3. 5.3 Surapprentissage
    4. 5.4 Améliorations de l'algorithme
      1. 5.4.1 Batch, mini-batch et gradient stochastique
      2. 5.4.2 Régularisation
      3. 5.4.3 Dropout
      4. 5.4.4 Variation de l'algorithme de descente de gradient
      5. 5.4.5 Création de nouvelles données
  6. 6. Autres architectures
    1. 6.1 Réseaux de neurones à convolution
    2. 6.2 Cartes de Kohonen
    3. 6.3 Réseaux de neurones récurrents
    4. 6.4 Réseaux de Hopfield
  7. 7. Domaines d'application
    1. 7.1 Reconnaissance de patterns
    2. 7.2 Estimation de fonctions
    3. 7.3 Création de comportements
    4. 7.4 Applications actuelles
  8. 8. Implémentation
    1. 8.1 Points et ensembles de points
    2. 8.2 Neurone
    3. 8.3 Réseau de neurones
    4. 8.4 Interface Homme-Machine
    5. 8.5 Système complet
    6. 8.6 Programme principal
    7. 8.7 Applications
      1. 8.7.1 Application au XOR
      2. 8.7.2 Application à Abalone
      3. 8.7.3 Améliorations possibles
  9. 9. Synthèse
Bibliographie
  1. 1. Bibliographie
Sitographie
  1. 1. Pourquoi une sitographie ?
  2. 2. Systèmes experts
  3. 3. Logique floue
  4. 4. Recherche de chemins
  5. 5. Algorithmes génétiques
  6. 6. Métaheuristiques
  7. 7. Systèmes multi-agents
  8. 8. Réseaux de neurones
Annexe
  1. 1. Installation de SWI-Prolog
  2. 2. Utilisation de SWI-Prolog
  3. Index

Auteur

Virginie MATHIVETEn savoir plus

Virginie MATHIVET a fait une thèse de doctorat en Intelligence Artificielle, plus précisément sur les algorithmes génétiques et les réseaux de neurones. Après avoir enseigné l'intelligence artificielle, la robotique et des matières liées au développement pendant plus de 10 ans, elle est aujourd'hui directrice de la R&D chez TeamWork et manager « Modern Data », unité contenant les différentes équipes en charge des sujets data (IoT, IA/ML, Big Data, Data Engineering). Egalement formatrice et conférencière, elle a été nommée première AWS Hero de la catégorie Machine Learning en France en 2021 et participe à des actions en faveur de la diversité dans les métiers du numérique.

Caractéristiques

  • Niveau Confirmé à Initié
  • Nombre de pages 521 pages
  • Parution décembre 2017
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-01140-5
    • EAN : 9782409011405
    • Ref. ENI : DP2INT
  • Niveau Confirmé à Initié
  • Parution décembre 2017
    • HTML
    • ISBN : 978-2-409-01141-2
    • EAN : 9782409011412
    • Ref. ENI : LNDP2INT

Téléchargements

  • Des fichiers complémentaires (1,44 Mo)

Nos nouveautés

voir plus