Avant-propos
Pourquoi ce livre ?
Les techniques de « Deep Learning », ou apprentissage profond en français, permettent d’inculquer des savoir-faire à des machines : reconnaître un visage sur une photo, identifier le chant d’un oiseau, estimer un cours futur pour une action en bourse, etc. Ces outils de l’intelligence artificielle utilisent des modèles de réseaux de neurones. Grâce à des algorithmes d’apprentissage, ils sont capables, avec l’exploitation de grandes quantités de données, d’adapter leur fonctionnement au comportement souhaité.
Jusqu’à il n’y a encore pas si longtemps, l’utilisation de ces modèles nécessitait une expertise en programmation et l’accès à des capacités importantes de calcul. Leur usage était donc réservé aux industriels et aux laboratoires de recherche. Mais avec l’apparition d’outils gratuits comme TensorFlow/Keras, l’augmentation de la puissance des ordinateurs, et la disponibilité des ressources sur le cloud (publications, données, capacités de calculs) l’accès à ces puissants outils s’est largement démocratisé. Ainsi, avec une connexion internet à haut débit, tout développeur, même au fin fond de la Lozère, dispose potentiellement des mêmes outils qu’une start-up dans la Silicon Valley ou qu’une entreprise du CAC 40 (l’indice boursier phare de la place de Paris) !
Si vous avez ce livre entre vos mains, c’est certainement que vous connaissez cet univers et que vous cherchez à en savoir plus. Sur internet, un nombre considérable de sites parle de ces sujets. Mais malheureusement, comme souvent, le mieux est l’ennemi du bien, et il est difficile de savoir par où commencer, surtout lorsqu’on débute. Même sur le site tensorflow.org, qui pourtant déborde d’exemples et d’explications sur TensorFlow et Keras, il est compliqué de s’y retrouver, tant les informations sont nombreuses (souvent en anglais) et avec des niveaux d’accès très disparates.
C’est pour cela que nous avons décidé d’écrire ce livre ! Notre objectif est de prendre le lecteur par la main pour le guider dans le monde des réseaux de neurones et de leur mise en œuvre avec les outils TensorFlow/Keras. Le contenu est construit pour être très progressif et pour s’appuyer sur l’écosystème...
À qui s’adresse cet ouvrage ?
Nous avons voulu que ce livre, écrit dans un but pédagogique, soit auto-suffisant : aucun prérequis n’est nécessaire, excepté quelques notions élémentaires en mathématique et des connaissances de base en langage Python, indispensables pour utiliser les bibliothèques TensorFlow/Keras.
Il s’adresse à toutes les personnes qui souhaitent découvrir et apprendre à utiliser l’outil TensorFlow/Keras pour développer des applications en machine learning. Le public visé est très large : l’étudiant qui souhaite compléter ses cours, l’ingénieur qui cherche à se former au deep learning, l’autodidacte curieux des nouvelles technologies ou encore le lycéen volontaire pour anticiper son futur cursus.
Aucune connaissance préalable en intelligence artificielle (IA) n’est nécessaire. Les différentes notions sur les réseaux de neurones sont introduites progressivement. À chaque fois les éléments théoriques sont expliqués avant leur mise en application avec l’écriture de lignes de code en Python. Les connaissances de base de ce langage sont nécessaires mais inutile d’être un spécialiste : tous les programmes du livre sont largement commentés, avec lorsque c’est utile des explications complémentaires.
Je voudrais terminer en rassurant le lecteur qui aurait gardé de mauvais souvenirs de ses cours de mathématique au lycée. Les notions indispensables pour comprendre...
Présentation des contenus
L’enchaînement des chapitres est conçu pour assurer une progressivité dans l’apprentissage. Il est donc recommandé de les lire dans l’ordre, excepté pour l’introduction sur la découverte de l’IA qui peut se consulter à tout moment. Pour qu’un changement de chapitre soit profitable, il est essentiel de maîtriser, au moins en partie, les notions qui y sont développées.
TensorFlow et Keras sont des bibliothèques Python qui mettent à disposition des classes et des fonctions. Pour faciliter les explications sur ces éléments, nous avons défini un format unique sous la forme d’un tableau. La figure ci-dessous détaille les différentes rubriques, en prenant l’exemple de la description de la fonction tf.image.resize() (où tf désigne le module TensorFlow) :

Exemple du tableau explicatif de la fonction tf.image.resize()
Pour approfondir un point précis, vous pouvez consulter la documentation disponible en ligne. Dans cet exemple, elle est accessible sur le site tensorflow.org, en sélectionnant le menu API puis la rubrique tf.image.
Certaines explications s’appuient sur des captures d’écran de sites internet, notamment celui de TensorFlow. Pour une meilleure compréhension, nous vous conseillons de consulter ces pages sur votre ordinateur simultanément à la lecture de ce livre (les informations pour y accéder sont toujours indiquées).
Malgré tout le soin apporté, il peut arriver que ces contenus, qui évoluent régulièrement, diffèrent de ceux reproduits dans le livre. Nous vous prions de bien vouloir nous en excuser par avance.
Les concepts sont illustrés à l’aide de nombreux exemples de code Python écrit avec TensorFlow/Keras. Au total, 42 Notebooks Jupyter sont accessibles à partir de l’onglet Compléments. Au début de chaque section accompagnée d’un programme, le nom du fichier (construit avec le numéro...
Programmes Python disponibles en téléchargement
Tous les notebooks de cet ouvrage ont été développés et testés avec Colab, la plateforme Cloud proposée par Google pour le développement et l’exécution d’applications de machine learning. Elle présente l’immense avantage de ne nécessiter qu’un navigateur internet sur une machine locale, ce qui évite de passer du temps à installer et à mettre à jour un environnement de développement. Tout fonctionne sur le cloud, avec des mises à jour administrées par Google. De plus, elle offre un accès à des ressources de calcul puissantes comme des GPU (Graphics Processing Unit) (les versions les plus puissantes sont payantes).
Pour débuter, nous vous conseillons d’expérimenter les programmes fournis avec cet ouvrage dans cet environnement Colab. Il suffit de disposer d’un compte Google et d’un navigateur, de préférence Google Chrome. Pour ceux qui ne sont pas familiers avec ces outils, toutes les explications sont fournies au début du chapitre Programmation d’un perceptron multicouche.
Pour la mise au point des programmes, nous avons utilisé Python en version 3.11.13 avec les modules ci-dessous, installés avec Colab :
-
google-colab -> v1.0.0
-
ipython -> v7.34.00
-
ipywidgets -> v7.7.1
-
keras -> v3.10.0
-
keras-tuner -> v1.4.7 (installation complémentaire)
-
matplotlib -> v3.10.0
-
medmnist -> v3.0.2 (installation complémentaire)
-
numpy -> v2.0.2
-
opencv-python -> v4.12.0.88
-
pandas -> v2.2.2
-
pillow -> v11.3.0
-
scikit-learn -> v1.6.1
-
tensorflow -> v2.19.0
-
tensorflow-datasets -> v4.9.9
Pour ceux qui préfèrent, il est possible d’utiliser un environnement de développement local comme PyCharm. Il faudra simplement installer les différents modules (excepté google-colab) et en particulier tensorflow. Pour les codes qui utilisent des données stockées sur Google Drive, certains chemins d’accès seront à modifier en fonction des emplacements où les fichiers sont stockés.
Certains programmes utilisent des formulaires interactifs pour modifier les valeurs de variables avec des objets graphiques (slider…). Cette facilité, spécifique à Colab, ne sera pas fonctionnelle dans d’autres environnements. Dans ce cas les valeurs des variables devront être modifiées directement dans le code.
Quelques mots sur l’auteur
Ingénieur de formation et titulaire d’un doctorat en informatique, j’ai toujours été passionné par les progrès technologiques. Par goût pour l’automobile (je suis né dans l’est de la France à côté de Sochaux, cœur historique d’une célèbre marque au lion…), j’ai mené toute ma carrière au sein de la direction de l’innovation du constructeur PSA Peugeot Citroën (groupe PSA, aujourd’hui intégré au groupe Stellantis).
Comme j’apprécie faire partager mes connaissances, j’ai également, depuis le début de mon activité professionnelle, exercé des charges d’enseignement en cycles d’ingénieur. Après avoir débuté par des cours sur la programmation et l’algorithmie, cela fait maintenant plus de 25 ans que j’enseigne l’intelligence artificielle.
Au travers de cette longue expérience, j’ai eu la chance de suivre les avancées considérables de cette discipline. L’IA n’est pas monolithique, mais se compose d’une multitude de techniques. Chacune s’applique à des problèmes particuliers : les algorithmes génétiques pour l’optimisation, la logique floue pour le contrôle-commande, l’algorithme A* pour la recherche de chemin optimal, etc., et les réseaux de neurones pour l’apprentissage automatique. Depuis quelques années, toute l’attention est portée sur ce dernier domaine car des progrès spectaculaires ont été réalisés.
Avec l’apparition en 2015 d’un outil comme TensorFlow/Keras, l’enseignement du machine learning a fortement évolué. Grâce à la puissance de l’outil et à sa facilité de prise en main, la mise en pratique des éléments théoriques d’un cours, est devenue possible sur des projets ambitieux. En intégrant pleinement ces outils dans mon contenu pédagogique, j’ai pu constater un réel intérêt des étudiants pour la discipline, car ils voyaient immédiatement les possibilités d’applications concrètes.
Pour la rédaction de cet ouvrage, je me suis fortement appuyé...
Les remerciements
Je tiens à remercier l’ensemble des personnes ayant participé de près ou de loin à l’écriture de cet ouvrage.
En premier lieu j’exprime mes remerciements les plus tendres à ma compagne Elisabeth, qui, dès le début, m’a soutenu quand je lui ai annoncé que je débutais l’écriture de ce livre. Ce soutien est resté constant tout au long de la rédaction, même si cela a parfois empiété sur nos loisirs.
Je suis également reconnaissant envers l’ensemble des élèves qui ont suivi mes enseignements à EPSI Paris. Au fil des années leurs questions et remarques, parfois inattendues, souvent pertinentes, m’ont permis de m’améliorer régulièrement. Le contenu de cet ouvrage bénéficie pleinement de plus de trente années d’enseignement devant une classe.
Souvent, pour faire comprendre un concept, un visuel est beaucoup plus efficace que de longues explications. C’est pourquoi, je n’oublie pas que je suis redevable aux nombreuses illustrations, libres de droit, disponibles sur Internet.
Merci enfin aux Éditions ENI, qui ont su me faire confiance, ainsi qu’à toute leur équipe, qui m’a accompagné depuis le premier rendez-vous téléphonique jusqu’à...