Marc ISRAEL artificielle Intelligence artificielle avec ...39 € ISBN : 978-2-409-01945-6...
Transcript of Marc ISRAEL artificielle Intelligence artificielle avec ...39 € ISBN : 978-2-409-01945-6...
ISBN
: 978
-2-40
9-019
45-6
39 €
Intelligence artificielle avec AWSExploitez les services cognitifs d’Amazon
Ingénieur de formation en robo-tique industrielle et systèmes auto-matiques, Marc ISRAEL a créé et dirigé la société EFII à Paris avant de rejoindre Microsoft, dont il a été le Directeur Marketing Cloud et le Chief Technology Officer pour l’Afrique Subsaharienne pendant dix-sept ans. Il dirige aujourd’hui la société Aetheis qui conseille les organisa-tions sur leur transformation digitale et l’application des technologies cloud et d’intelligence artificielle. Dans ce livre sur l’Intelligence Arti-ficielle, il transmet au lecteur toute son expertise des services cognitifs d’AWS.
L’intelligence artificielle est autant un sujet à la mode qu’une réalité quotidienne. Ce livre s’adresse à tout professionnel IT qui souhaite apprendre de façon très pragmatique à l’utiliser et l’intégrer aux applications d’entreprise en s’appuyant sur les services cognitifs d’Amazon. En effet, bénéficier du cloud d’Amazon pour utiliser l’IA permet d’avoir accès à des serveurs puissants, à l’accumulation des données d’Amazon et à des algorithmes d’IA.
Pour suivre les nombreux exemples fournis, un compte AWS est nécessaire et peut être obtenu gratuitement à l’adresse https://aws.amazon.com/fr/. Quelques connaissances en C#, Python et en traitement de données sont recommandées.
Après un rapide état de l’art permettant au lecteur de découvrir les concepts sous-jacents de l’intelligence artificielle (système expert et apprentissage machine, inférences, heuristiques, modèles, fonc-tions ou encore réseaux de neurones et Big Data), l’auteur présente l’environnement AWS et différents services cognitifs dédiés à l’IA. Le lecteur découvre ainsi le service de vision par ordinateur avec Rekognition, le traitement automatique du langage naturel avec Transcribe, Polly, Comprehend, Translate et Lex ou encore les prévisions numériques avec SageMaker et les réseaux de neurones formels.
Au fil des pages, le lecteur expérimente ces différents services et apprend par exemple à préparer des jeux d’apprentissage, de vali-dation et de test pour générer des modèles d’inférence afin d’être en mesure ensuite d’intégrer ces fonctions à ses propres applications.
L’ensemble des exemples, applications exécutables dans Visual Studio Community 2019 et bloc-notes Jupyter, présentés dans le livre sont disponibles en téléchargement sur le site www.editions-eni.fr.
Pour plus d’informations :
Inte
llig
ence
art
ific
iell
e av
ec A
WS
+ QUIZ
Marc ISRAEL
Intelligence artificielle avec AWSExploitez les services cognitifs d’Amazon
Téléchargementwww.editions-eni.fr.fr
Sur www.editions-eni.fr :b Le code source des exemples du livre (applications
C#, JavaScript, Xamarin et Python, bloc-notes Jupyter).
En téléchargement
le code source des exemples
1Table des matières
Avant-propos
Chapitre 1Intelligence artificielle, mythes et réalités
1. Intelligence artificielle et stupidité naturelle . . . . . . . . . . . . . . . . . . . 111.1 Intelligence étroite et intelligence générale. . . . . . . . . . . . . . . . . 12
1.1.1 IA Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.1.2 IA Business . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.3 IA Perception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.1.4 IA Autonome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.1.5 IA faible et forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 L’apprentissage et ses limites . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Survivre à l’IA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2. Un peu (beaucoup) de mathématiques . . . . . . . . . . . . . . . . . . . . . . . . 222.1 Statistiques et probabilités. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.1 Probabilités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.1.2 Distributions et loi de probabilité . . . . . . . . . . . . . . . . . . . 282.1.3 Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2 Systèmes experts et apprentissage machine . . . . . . . . . . . . . . . . 342.2.1 Système expert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.2.2 Apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . 362.2.3 Apprentissage supervisé et semi-supervisé . . . . . . . . . . . . 372.2.4 Apprentissage non supervisé . . . . . . . . . . . . . . . . . . . . . . . 392.2.5 Apprentissage renforcé . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Les éléments à télécharger sont disponibles à l'adresse suivante : http://www.editions-eni.fr
Saisissez la référence ENI de l'ouvrage EIIAAWS dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.
2Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
2.3 Inférences, heuristiques, modèles et fonctions . . . . . . . . . . . . . . 422.3.1 Détection d’anomalie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.3.2 Partitionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.3.3 Régression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.3.4 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3. Réseaux de neurones formels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.1 Un peu de biologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503.2 Du cerveau à la modélisation neuronale . . . . . . . . . . . . . . . . . . . 513.3 Fonction de transfert, perceptron
et réseaux de neurones formels . . . . . . . . . . . . . . . . . . . . . . . . . . 533.3.1 Fonction de transfert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.3.2 Perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553.3.3 Perceptron multicouche . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.3.4 Réseau de neurones convolutif . . . . . . . . . . . . . . . . . . . . . 583.3.5 Réseau de neurones récurrents . . . . . . . . . . . . . . . . . . . . . 61
3.4 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.4.1 Apprentissage supervisé . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.4.2 Apprentissage non supervisé . . . . . . . . . . . . . . . . . . . . . . . 66
4. Données et Big Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.1 Données structurées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.1 SGBDR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684.1.2 NoSQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.1.3 Datawarehouse et décisionnel . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Données non structurées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.3 Glaciers, lacs et rivières. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5. Limites actuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745.1 Cloud ou pas ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745.2 Temps réel et puissance de calcul . . . . . . . . . . . . . . . . . . . . . . . . 755.3 IA faible et IA forte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.4 L’être humain derrière la machine . . . . . . . . . . . . . . . . . . . . . . . . 77
3Table des matières
6. Un peu de prospective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786.1 La singularité est-elle un mythe ? . . . . . . . . . . . . . . . . . . . . . . . . 786.2 L’ordinateur quantique est-il bien réel ? . . . . . . . . . . . . . . . . . . . 806.3 L’IA fait désormais partie de notre présent. . . . . . . . . . . . . . . . . 83
Chapitre 2Mettre en œuvre des projets d'IA avec AWS
1. Préparer son environnement Amazon Web Services . . . . . . . . . . . . . 861.1 Créer un compte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.1.1 Régions et zones de disponibilité. . . . . . . . . . . . . . . . . . . . 871.1.2 Sécurité de votre compte . . . . . . . . . . . . . . . . . . . . . . . . . . 88
1.2 Utiliser la console de gestion d'AWS . . . . . . . . . . . . . . . . . . . . . . 891.3 Accéder aux services par ligne de commande . . . . . . . . . . . . . . . 941.4 Accéder aux services par code et dans l'IDE . . . . . . . . . . . . . . . . 97
2. L’IA boîte noire avec les services applicatifs . . . . . . . . . . . . . . . . . . . 1002.1 Images avec Rekognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.2 Voix avec Transcribe et Polly. . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.2.1 Transcribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052.2.2 Polly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.3 Textes avec Comprehend et Translate . . . . . . . . . . . . . . . . . . . 1122.3.1 Comprehend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1122.3.2 Translate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
2.4 Robot conversationnel avec Lex . . . . . . . . . . . . . . . . . . . . . . . . 119
3. Le choix des algorithmes avec SageMaker . . . . . . . . . . . . . . . . . . . . 1313.1 Bloc-notes Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333.2 Préparation des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.2.1 Étiquetage SageMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . 1363.2.2 Apache MXNet RecordIO . . . . . . . . . . . . . . . . . . . . . . . . 141
3.3 Former un modèle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1443.4 Déployer le modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
4Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
4. Juste l’infrastructure pour les professionnels de l’apprentissage machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1524.1 Apache MXNet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1524.2 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1594.3 Les solutions SageMaker prépackagées . . . . . . . . . . . . . . . . . . . 1624.4 AMI AWS Deep Learning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Chapitre 3Écrivez-moi, parlez-moi, je vous réponds
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2. Comprendre un texte écrit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1722.1 Mécanismes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . 1732.2 Service Comprehend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
2.2.1 Préalable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1752.2.2 Langues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1772.2.3 Analyse de sentiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1822.2.4 Extraction des entités et expressions clés . . . . . . . . . . . . 1842.2.5 Catégories personnalisées. . . . . . . . . . . . . . . . . . . . . . . . . 1872.2.6 Entités personnalisées . . . . . . . . . . . . . . . . . . . . . . . . . . . 1952.2.7 Comprehend comme source d'actions . . . . . . . . . . . . . . 200
3. Comprendre un texte vocalisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013.1 Mécanismes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013.2 Service Transcribe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.2.1 Créer un job de transcription et en récupérer le résultat. . . . . . . . . . . . . . . . . . . . . . . . . 203
3.2.2 Créer une transcription en code à la volée . . . . . . . . . . . 204
4. Répondre intelligiblement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2054.1 Comment la machine construit-elle sa réponse ?. . . . . . . . . . . 2064.2 Service Polly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.2.1 Voix, accent, vitesse, tonalité et volume . . . . . . . . . . . . 2094.2.2 Accès programmatique à Polly . . . . . . . . . . . . . . . . . . . . 212
5Table des matières
5. Do you speak English ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2145.1 La quête du Graal polyglotte . . . . . . . . . . . . . . . . . . . . . . . . . . . 2145.2 Service Translate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.2.1 Console Translate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2165.2.2 Accès à Translate par programmation . . . . . . . . . . . . . . 2205.2.3 Intégration avec Polly. . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6. Construire un robot conversationnel . . . . . . . . . . . . . . . . . . . . . . . . 2266.1 Mon chatbot dans ma langue avec Translate . . . . . . . . . . . . . . 2276.2 Parler à mon bot et écouter sa réponse avec Polly . . . . . . . . . . 2296.3 Gérer des actions avec Lambda . . . . . . . . . . . . . . . . . . . . . . . . . 229
7. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Chapitre 4Ce que je vois, je le retiens
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
2. Une image, c’est quoi ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.1 Composantes d’une image fixe . . . . . . . . . . . . . . . . . . . . . . . . . 2342.2 Composantes d’une vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
3. Analyser des images fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2393.1 Cadre et orientation d’images . . . . . . . . . . . . . . . . . . . . . . . . . . 2403.2 Visages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
3.2.1 Détection de visage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2433.2.2 Comparaison de visages . . . . . . . . . . . . . . . . . . . . . . . . . . 2473.2.3 Détection de personnages célèbres . . . . . . . . . . . . . . . . . 249
3.3 Objets et scènes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523.4 Texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2563.5 Contenu suggestif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
6Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
4. Analyser des images vidéo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634.1 Les spécificités du traitement vidéo . . . . . . . . . . . . . . . . . . . . . 2634.2 Visages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
4.2.1 Détection de visages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2704.2.2 Recherche de personnes . . . . . . . . . . . . . . . . . . . . . . . . . . 2754.2.3 Détection des célébrités . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.2.4 Suivi de personnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
4.3 Objets et scènes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2844.4 Contenu suggestif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2864.5 Traitement du streaming avec Rekognition et Kinesis . . . . . . 288
4.5.1 Créer un flux Kinesis Video Streams. . . . . . . . . . . . . . . . 2894.5.2 Créer et démarrer un processeur de flux . . . . . . . . . . . . . 2964.5.3 Analyser le flux de données . . . . . . . . . . . . . . . . . . . . . . . 298
5. Analyse en temps différé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3035.1 Conteneurs et environnement de calcul . . . . . . . . . . . . . . . . . . 3045.2 Définition de tâches et file d’attente. . . . . . . . . . . . . . . . . . . . . 307
6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Chapitre 5Quand la machine se met à apprendre
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
2. Machine et Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3132.1 Données, algorithmes et apprentissages . . . . . . . . . . . . . . . . . . 3162.2 Construire et entraîner des modèles . . . . . . . . . . . . . . . . . . . . . 3222.3 Déployer et utiliser les modèles . . . . . . . . . . . . . . . . . . . . . . . . . 3262.4 Apprendre mieux et plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
2.4.1 Formation incrémentielle. . . . . . . . . . . . . . . . . . . . . . . . . 3292.4.2 Optimisation des hyperparamètres. . . . . . . . . . . . . . . . . 3322.4.3 Apprentissage renforcé. . . . . . . . . . . . . . . . . . . . . . . . . . . 339
7Table des matières
3. Vision par ordinateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3413.1 Préparer le modèle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3443.2 Former le modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3483.3 Lancer des inférences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3543.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
4. Traitement du langage naturel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3574.1 Préparer le modèle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3584.2 Former le modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3604.3 Lancer des inférences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3614.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
5. Prévisions et prédictions numériques . . . . . . . . . . . . . . . . . . . . . . . . 3625.1 Préparer le modèle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3635.2 Former le modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3665.3 Lancer des inférences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3675.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
6. Et si on scriptait le tout ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
7. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Annexes
1. Format des messages Lex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3831.1 Requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3831.2 Réponse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
1.2.1 ElicitIntent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3861.2.2 ElicitSlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3871.2.3 ConfirmIntent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3881.2.4 Delegate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3881.2.5 Close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
8Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
2. Transcodage vidéo avec Amazon Elastic Transcoder et MediaConvert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3902.1 Elastic Transcoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3902.2 MediaConvert. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
3. Textract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
4. Lire les données d’orientation d’une image. . . . . . . . . . . . . . . . . . . . 400
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
311
Chapitre 5
Quand la machinese met à apprendre
Quand la machine se met à apprendre1. Introduction
Que l'on ne se méprenne pas : l'apprentissage machine est un métier, un sacer-doce mathématique et informatique, et un formidable jeu intellectuel. C'estune des facettes les plus fascinantes de l'informatique, une des plus porteusesd'espoirs, de craintes, mais surtout d'incompréhension totale.
On fait tout dire à l'IA, et indirectement à l'apprentissage machine, et on luifait porter tous les maux futurs de l'humanité. Maintenant, vous avez vu dansles pages précédentes que les machines sont loin d'être parfaites. Les servicesexistants s'améliorent constamment, mais on est encore loin d'une intelli-gence artificielle générale. Cependant, on ne peut plus ignorer les services d'IA.Nous savons qu'appeler Rekognition, Translate ou Transcribe est une affairede quelques lignes de code. Il en est de même avec les services de SageMakerou d'Amazon Machine Image (AMI).
Ce chapitre leur est consacré. Vous allez y apprendre, avec un peu plus dedétails qu'au chapitre Mettre en œuvre des projets d'IA avec AWS qui n'étaitqu'une introduction, comment construire un modèle, le former et y lancer desinférences. Que vous souhaitiez faire de la détection de défectuosités sur unechaîne de montage, de l'analyse de sentiments ou des prévisions de chiffred'affaires, ce chapitre est là pour ça.
© E
dit
ions
EN
I -
All r
ights
rese
rved
312Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
Avant tout, quelques mots de précautions. Nous avons parcouru un longchemin depuis la première page de ce livre. Cependant, dans ce chapitre, nouschangeons de braquet, car la pente est ardue. Pour pouvoir suivre les notionsqui seront abordées, il vous faut les connaissances suivantes :
– Docker et les conteneurs.
– Python.
– Les blocs-notes Jupyter.
– Le CLI AWS.
– S3.
Et pour couronner le tout, vous devez avoir une curiosité et une résistance austress hors norme. Curiosité, car il va falloir en faire preuve pour aller creuserla signification de tel ou tel hyperparamètre, ou comprendre pourquoi onchoisit sept plutôt que six couches de convolution ou pourquoi tel frameworket pas tel autre. Il est impossible d’expliquer tous ces choix dans les pages sui-vantes, d’autant que la littérature en ligne vous permettra facilement de trou-ver la réponse à toutes vos questions. Je donne les pointeurs pour vous y aider,comme je l’ai déjà fait dans les pages précédentes.
Enfin, vous devez résister au stress parce que la machine learning :
– ne marche jamais tout à fait comme on veut et c’est souvent décevant, enrevanche, quand on tient un modèle correctement formé qui fait des prévi-sions aux petits oignons, c’est le pied !
– réclame beaucoup de rigueur. Un paramètre manquant ou avec une valeurincorrecte et c’est tout un modèle qui ne peut pas se former. Parfois, ce sontdes heures, voire des jours, à chercher le pourquoi du comment. Patience etlongueur de temps font plus que force ni que rage. Cette maxime de La Fon-taine s’applique bien au pratiquant de l'apprentissage machine.
Vous voilà prévenu. Bon voyage !
313Quand la machine se met à apprendreChapitre 5
2. Machine et Deep Learning
Nous avons étudié au chapitre Intelligence artificielle, mythes et réalités quele machine learning (apprentissage machine) était un sous-ensemble del’intelligence artificielle. Le deep learning (apprentissage profond) est un sous-ensemble de l’apprentissage machine comme le montre l'image ci-dessous :
Figure 1 - Intelligence artificielle
© E
dit
ions
EN
I -
All r
ights
rese
rved
314Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
On peut donc travailler avec de l’intelligence artificielle sans faire de l’appren-tissage machine, mais pas l’inverse, bien que tout cela soit avant tout affairede sémantique. Cependant, tout ceci n’a que peu d’importance, l’idée étantd’obtenir un résultat à partir d’algorithmes plus ou moins sophistiqués. La dis-cipline qui a le vent en poupe en ce moment est l’apprentissage, supervisé ounon. Elle consiste à faire en sorte que la machine apprenne soit à partir derègles prédéfinies (les heuristiques), soit à partir de jeux de données, étiquetéesou non (les jeux d’apprentissage). Le résultat est un modèle sur lequel on vapouvoir faire des inférences, c’est-à-dire tester des hypothèses et obtenir desprévisions ou de simples réponses.
L’intelligence artificielle a envahi nos vies numériques sans que l’on s’en aper-çoive. Nos ordinateurs, téléphones portables et tablettes en sont remplis. Leslogiciels de tout acabit s’y mettent aussi afin d’en améliorer la sécurité, la sim-
plicité d’utilisation et la puissance. Les réseaux sociaux ne pourraient pascontinuer à exister sans elle, ses prévisions, ses recommandations et ses in-fluences pour nous rendre toujours plus captifs. Les places de marchés et ma-gasins en ligne abreuvent leurs modèles d’IA de nos données, de noscomportements et de nos clics. En bref, l’IA est partout autour de nous sansqu’on ne la voie, la sente ou se rende compte de son omniprésence.
La question étant, et comment faire pour en tirer parti ? L’apprentissage ma-chine n’est pas une discipline simple. Elle s’est construite à l’intersection desmathématiques et de l’informatique. Elle fait appel à de nombreuses autresdisciplines comme les probabilités, les statistiques, l’algèbre matricielle et vec-torielle, les bases de données, le développement logiciel, pour n’en citer quequelques-unes, parcourues au pas de course au chapitre Intelligence artifi-cielle, mythes et réalités. L’objectif de cette section est de rentrer dans le détailde la construction d’un modèle d’apprentissage machine afin de pouvoir utili-ser SageMaker ou les AMI relativement confortablement.
Nous allons donc voir dans les pages suivantes ce qu’est un modèle prédictif,comment préparer les données pour en construire un et l’entraîner. Ensuite,nous verrons comment le déployer et pouvoir y faire des inférences. Nousterminerons par l'analyse des résultats obtenus et comment modifier nosmodèles afin de les améliorer. L'illustration ci-après vous donne un aperçu desdifférentes étapes nécessaires à l’utilisation d’un modèle d’apprentissagemachine.
315Quand la machine se met à apprendreChapitre 5
Figure 2 - Cycle de création d'un modèle d'apprentissage machine
Un dernier mot avant de rentrer dans le vif du sujet. L’apprentissage machinen’est pas la panacée à tous les maux. Il est parfois décevant, les résultatsn’étant pas toujours à la hauteur des attentes. C’est une des raisons, sansdoute, pour lesquelles on parle plus souvent de prédiction que de prévision.Prédire est un peu surnaturel (artificiel peut-être), prévoir a une connotationplus scientifique, probabiliste, pourtant, il s’agit bien de prévision et non deprédiction, lorsqu'on souhaite tirer profit des résultats obtenus. Peu importele terme employé, de toute façon les résultats obtenus seront toujours numé-riques et probabilistes. Cela signifie qu’il y aura des erreurs et des incertitudes,mais comme l’a dit Henri Poincaré, le célèbre mathématicien :
« Le nom seul de calcul des probabilités est un paradoxe : la probabilité, opposée à lacertitude, c'est ce qu'on ne sait pas, et comment peut-on calculer ce que l'on ne connaîtpas ? »
© E
dit
ions
EN
I -
All r
ights
rese
rved
316Exploitez les services cognitifs d’Amazon
Intelligence artificielle avec AWS
C’est sans doute un des grands défis de l’intelligence artificielle : tenter deprévoir l’inconnu, c’est s’exposer à la critique.
2.1 Données, algorithmes et apprentissages
Dans le chapitre Intelligence artificielle, mythes et réalités, nous avons vu lesdifférents types d’apprentissages : supervisé, non supervisé, semi-supervisé etpar renforcement. Nous avons aussi abordé les différents modèles existant : ladétection d’anomalie, le partitionnement (clustering), la régression (prédic-tion et prévision) et la classification. Faisons le lien entre ces notions etSageMaker : le tableau suivant en donne une synthèse, du besoin exprimé àl’algorithme SageMaker :
Besoin Apprentissage Algorithme SageMaker
Prévision et prédiction
Supervisé Apprentissage linéaire
Machine de factorisation
K plus proches voisins
Objetc2Vec
Prévisions DeepAR
Seq2Seq
XGBoost
Non supervisé IP Insights
Classification Supervisé Apprentissage linéaire
Blazing Text (Classification)
Classification d’images
Détection d’objets
Machine de factorisation
K plus proches voisins
Objetc2Vec (classification)
Segmentation sémantique