Journal Revue (pas du tout exhaustive) de livres orientés machine learning / deep learning

Posté par  . Licence CC By‑SA.
16
21
avr.
2020

Chère linuxfrienne, cher linuxfrien,
voici une petite dizaine d'année que l'"IA" a commencé à diffuser hors de la sphère des scientifiques/développeurs/experts et a commencé à faire la une d'articles plus ou moins grand public.
Étant d'un naturel curieux et, profitant de cette période d'accalmie forcée, je me suis lancé dans lecture d'ouvrages dédiés à l'apprentissage automatique (machine learning) et l'apprentissage profond (deep learning, DL) en Python. Bon en fait j'ai commencé avant, mais on s'en fout.

À toutes fins utiles j'ai pensé partager ici mon ressenti sur ces différents ouvrages. Alors attention, je ne suis pas développeur professionnel et encore moins expert en "IA". De plus il existe une quantité pléthorique de tutoriels, sites web, vidéos, livres dédiés au ML et au DL. Tout ce que suit n'est que mon avis sur un nombre restreint de ressources, mais, cher lecteur, si tu as un profil analogue au mien, à savoir recherche académique + calcul scientifique + un goût prononcé pour le logiciel libre, alors ce qui suit pourrait t’intéresser. Je vais commencer par ceux traitant du machine learning, puis j'aborderai ceux traitant de deep learning.

PS: dans la mesure du possible j'essaye de fournir les liens vers les éditeurs des livres en question ou les sites web orignaux. Bien entendu, la plupart de ces ouvrages sont disponibles chez votre revendeur préféré.

  • "Data science handbook" par Jake VanderPlas (en anglais):
    Livre disponible à l'achat, mais l'auteur le met gracieusement à disposition sur son site, de même que son dépôt git contenant les notebooks Jupyter. Ce livre n'est pas à proprement parler focalisé sur le machine learning, mais ce sujet fait l'objet du dernier chapitre. Le reste de cet ouvrage est excellent pour acquérir les bases du calcul scientifique en Python. Pour ceux déjà familiers du domaine ça fait un bon ouvrage de référence, en complément du très exhaustif SciPy lecture notes. J’ajoute que l’auteur du livre tient également un blog Python de très bon niveau (même si celui-ci semble au point mort depuis 2018).

  • Machine Learning avec Scikit-Learn par Aurélien Géron (en français), ainsi que Deep Learning avec TensorFlow, du même auteur (en français) ; les deux ouvrages sont disponibles groupés dans une édition mise à jour (en anglais): Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. Je n'ai lu que le premier de ces livres, je ne m'exprimerai donc que sur celui-ci, à savoir celui traitant de la bibliothèque Scikit-Learn. Ici l'auteur propose une revue (non-exhaustive mais déjà très riche) des algorithmes de machine learning appliqués à plusieurs cas très concrets (notamment, mais pas exclusivement, les grands classiques tels que la reconnaissance des chiffres de la base MNIST et la classification des iris sur la base de la longueur et la largeur de pétales). Les notebooks sont très bien faits et disponibles sur le github de l'auteur. Ne pas se laisser déconcerter par les 2 premiers chapitres où l'auteur utilise les algorithmes sans en expliquer le fonctionnement, ce qui risque de donner une impression de boîte noire. L'auteur revient sur le fonctionnement des algorithmes dans les chapitres ultérieurs. Pour ma part je suis resté un peu sur ma faim sur les aspects mathématiques qui sont peu détaillés, mais je suis conscient qu'il est difficile de trouver un équilibre entre la théorie et l'application concrète des algorithmes dans un nombre de page donné, surtout lorsqu'il s'agit d'une bibliothèque aussi massive que Scikit-Learn. En dehors de cette réserve personnelle, ce livre permet rapidement de comprendre les bases du machine learning et de l'appliquer à des cas simples. Je recommande.

  • Data Science from Scratch par Joel Grus (en anglais). Ce livre est un tour de force dans son genre car, comme son nom l'indique l'auteur ré-implémente tous les algorithmes à partir de zéro en Python pur (!). Étant un habitué de NumPy j'ai abandonné la lecture au bout de 8 chapitres sur les 27, le python pur ne facilitant pas vraiment la lisibilité pour ce qui me concerne. De plus, la réutilisation des algorithmes en question reste limitée car chacun connaît les limites de Python pur en termes de performances. J'ai aussi des réserves sur le côté pédagogique de l'exercice en ce sens qu'il pousse à réinventer la roue plutôt que d'utiliser des bibliothèques bien établies. Je ne recommande pas.

Passons maintentant au deep-learning.
- Deep Learning with Python par François Chollet. L'auteur est le créateur de Keras qui est sans doute la bibliothèque la plus user-friendly pour débuter dans le deep-learning. Keras est en quelque sorte un front-end à d'autres bibliothèques de deep learning telles que TensorFlow ou Theanos. L'auteur a fait le choix délibéré de ne pas détailler les aspects mathématiques et présente le fonctionnement des algorithmes par l'exemple. Pour les maths il faudra aller voir ailleurs. J'y reviens ci-dessous. Là encore, les notebooks sont disponibles. Alors je n'irai pas par quatres chemins ; ce bouquin est tout simplement excellent: très pédagogique, les codes sont expliqués ligne par ligne, et la puissance de Keras est évidente. Chaque conclusion de chapitre et sous-chapitre résume les concepts clés à retenir. Des tableaux pratiques recensant quels algos utiliser dans quels cas sont éalement donnés. J'en suis au 2/3 et ça commence à se corser un peu (ça parle de traitement du langage, ce qui est un peu trop éloigné de mon domaine), mais j'ai bien l'intention d'aller jusqu'au bout. Je recommande.
- complément indispensable au livre précédent pour ceux qui souhaitent comprendre les fondements mathématiques, le livre en ligne Neural Networks and Deep Learning. Tout y est expliqué de façon très pédagogique: les fonctions d'activation, les fonctions de coûts, la rétro-propagation, les techniques de régularisation, jusqu'aux réseaux convolutifs. Les notebooks originaux sont dispos en version Python 2.7 et mis à jour en Python3. A lire absolument !
- j'ai découvert le site précédent en regardant les vidéos de l'excellente chaine 3blue1brown, en particulier la série dédiée aux réseaux de neurones.

En bonus, la bible du deep learning: https://www.deeplearningbook.org/
Pas (encore) lu mais c'est, paraît-il, un incontournable.

Bonne lecture :-)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.