Comprendre le
DEEP LEARNING
Une introduction aux réseaux de neurones
Jean-Claude Heudin
Après des résultats spectaculaires, dont la victoire d’AlphaGo sur le meilleur joueur mondial de Go, le Deep Learning suscite autant d’intérêts que d’interrogations. Inspiré au départ par une métaphore biologique, celle du cerveau, le domaine des réseaux de neurones est devenu l’un des principaux axes de recherche de l’intelligence artificielle. Quel que soit le secteur d’activité, pas un seul en effet ne semble échapper aux applications du Deep Learning.
Quels sont les principes des réseaux de neurones ? Comment fonctionnent-ils ? Quand et pourquoi les utiliser ? Sont-ils simples à mettre en œuvre ? Qu’est-ce qu’on entend réellement par Deep Learning ?
Jean-Claude Heudin propose avec ce livre de répondre à ces questions. Dans un style direct et richement illustré, les explications sont abordables par le plus grand nombre, avec une mise en pratique au travers d’exemples. Pour comprendre le Deep Learning, nul besoin ici d’un fort niveau en mathématiques. Les principes de calcul sont réduits à des opérations simples et les exemples de programmation sont accessibles. Ce livre s’adresse à tous ceux qui souhaitent comprendre concrètement les enjeux du Deep Learning.
Jean-Claude Heudin est professeur et chercheur en Intelligence Artificielle. Il est titulaire d'un doctorat et d'une habilitation à diriger des recherches de l'Université Paris-Sud. Il est l’auteur de nombreux articles scientifiques au niveau international ainsi que plusieurs ouvrages dans les domaines de l’IA et des sciences de la complexité aux éditions Odile Jacob, puis Science eBook dont il est le fondateur. Il intervient régulièrement dans les médias et dans les conférences grand public à propos de l'IA et des robots.
Table des matières
- Épigraphe
- Introduction
- Chapitre 1 - Prédicteurs et classifieurs
- Un prédicteur simple
- Entraîner un prédicteur linéaire
- Résumé d’étape
- Un classifieur simple
- Entraîner un classifieur linéaire
- Les étapes de l’apprentissage
- Modérer l’apprentissage
- Résumé d’étape
- Vers des classifieurs non linéaires
- Résumé d’étape
- Références
- Chapitre 2 – Les réseaux de neurones
- Un opérateur non linéaire
- Le neurone formel
- Le binaire c’est bien, le numérique c’est mieux
- Résumé d’étape
- Un premier réseau de neurones formels
- La propagation des données
- Résumé d’étape
- Le calcul matriciel peut nous aider
- Un exemple de réseau à trois couches
- Résumé d’étape
- Références
- Chapitre 3 – L’apprentissage
- L’apprentissage dans un réseau à couches
- La rétropropagation de l’erreur
- Rétropropagation avec plusieurs couches
- Encore des matrices
- Résumé d’étape
- L’ajustement des poids synaptiques
- Descente dans la vallée de l’erreur
- Calcul du gradient de l’erreur
- Exemple de calcul du gradient
- Résumé d’étape
- Références
- Chapitre 4 – Programmer un réseau de neurones
- Pourquoi Javascript ?
- Le problème à résoudre
- Création et initialisation du réseau
- La propagation des données
- Test de propagation
- L’apprentissage
- Test de la rétropropagation
- Résumé d’étape
- Références
- Chapitre 5 – L’apprentissage profond
- Qu’est-ce que le Deep Learning ?
- Que s’est-il passé ?
- Extraire des caractéristiques
- L’importance des données
- Les progrès de l’apprentissage profond
- Résumé d’étape
- Les convolutions
- Les réseaux convolutifs
- Résumé d’étape
- Les applications du Deep Learning
- Le futur des réseaux de neurones
- Vers un cerveau artificiel ?
- Résumé d’étape
- Références
- Chapitre 6 – Le Deep Learning en pratique
- La librairie ConvNet.js
- Les classes de ConvNet.js
- Les couches d’entrée
- Les couches totalement connectées
- Les couches de sortie
- Les couches de convolution
- Les entraîneurs
- Un exemple simple de régression
- Un exemple simple de classification
- Un exemple de réseau convolutif profond
- Pour aller plus loin
- Références
- Annexe 1 – Page SimpleNet.html version 1
- Annexe 2 – Page SimpleNet.html version 2