Quatrième étape : Apprentissage profond et réseaux de neurones
Manuel d'apprentissage profond open source combinant théorie, code et pratique, prenant en charge plusieurs implémentations de frameworks et offrant un parcours d'apprentissage complet de l'apprentissage profond, du débutant à l'avancé.
Présentation détaillée du cours Dive into Deep Learning (D2L)
Aperçu du cours
Dive into Deep Learning (D2L) est un manuel de deep learning (apprentissage profond) en open source qui vise à rendre le deep learning facile à comprendre et à apprendre. Ce livre combine concepts, contexte et code pour offrir aux lecteurs une ressource d'apprentissage complète sur le deep learning.
Contexte du cours
Il y a quelques années, il était rare de voir des scientifiques en deep learning développer des produits et services intelligents dans les grandes entreprises et les start-ups. À l'époque, l'apprentissage automatique ne faisait pas la une des journaux, et nos parents ne savaient pas ce que c'était. L'apprentissage automatique était alors une discipline académique de recherche fondamentale, dont l'importance industrielle se limitait à quelques applications pratiques, notamment la reconnaissance vocale et la vision par ordinateur.
Cependant, en quelques années seulement, le deep learning a étonné le monde, stimulant un développement rapide dans de nombreux domaines tels que la vision par ordinateur, le traitement du langage naturel, la reconnaissance vocale automatique, l'apprentissage par renforcement et la bio-informatique. Le succès du deep learning a même catalysé le développement de l'apprentissage automatique théorique et des statistiques.
Caractéristiques du manuel
1. Combinaison de médias diversifiés
- Combinaison de code, de mathématiques et de HTML : Intègre le code, les formules mathématiques et le contenu web sur une seule plateforme.
- Code exécutable : La plupart des chapitres contiennent des exemples de code exécutable.
- Mises à jour en temps réel : Prend en charge les mises à jour rapides et les contributions de la communauté via GitHub.
2. Méthode d'apprentissage : Apprendre en faisant
- Apprentissage instantané des concepts : Les concepts pertinents ne sont enseignés que lorsqu'ils sont nécessaires pour résoudre un problème pratique.
- Priorité à la pratique : Permet aux étudiants de ressentir la satisfaction d'entraîner leur premier modèle avant de se soucier des concepts plus ésotériques.
- Données réelles : Chaque chapitre suivant fournit plusieurs exemples de travail autonomes utilisant des ensembles de données réels.
3. Prise en charge de plusieurs frameworks
Le manuel prend en charge l'implémentation de plusieurs frameworks de deep learning :
- PyTorch (framework principal)
- TensorFlow
- MXNet
- JAX
Structure du contenu
Le manuel peut être divisé en trois parties principales :
Première partie : Fondations et prérequis
- Chapitre 1 : Introduction au deep learning
- Chapitre 2 : Prérequis (stockage et manipulation des données, opérations numériques, etc.)
- Chapitre 3 : Régression linéaire
- Chapitre 5 : Perceptron multicouche
- Couvre les concepts fondamentaux tels que la régression et la classification, les modèles linéaires, les perceptrons multicouches, le surapprentissage et la régularisation.
Deuxième partie : Techniques modernes de deep learning
- Chapitre 6 : Composants de calcul clés des systèmes de deep learning
- Chapitres 7-8 : Réseaux neuronaux convolutifs (CNN)
- Chapitres 9-10 : Réseaux neuronaux récurrents (RNN)
- Chapitre 11 : Mécanismes d'attention et Transformer
- Couvre les outils les plus puissants et polyvalents largement utilisés par les praticiens modernes du deep learning.
Troisième partie : Évolutivité, efficacité et applications (disponible en ligne)
- Chapitre 12 : Algorithmes d'optimisation
- Chapitre 13 : Performance de calcul
- Chapitre 14 : Applications de vision par ordinateur
- Chapitres 15-16 : Pré-entraînement de modèles de représentation linguistique et applications de traitement du langage naturel.
Caractéristiques de l'implémentation du code
Paquet principal et dépendances
Le manuel utilise le paquet d2l
pour éviter les répétitions inutiles ; ce paquet est léger et ne nécessite que les dépendances suivantes :
#@save
import collections
import hashlib
import inspect
import math
import os
import random
import re
import shutil
import sys
import tarfile
import time
import zipfile
from collections import defaultdict
import pandas as pd
import requests
from IPython import display
from matplotlib import pyplot as plt
from matplotlib_inline import backend_inline
d2l = sys.modules[__name__]
Dépendances d'implémentation PyTorch
#@save
import numpy as np
import torch
import torchvision
from PIL import Image
from scipy.spatial import distance_matrix
from torch import nn
from torch.nn import functional as F
from torchvision import transforms
Dépendances d'implémentation TensorFlow
#@save
import numpy as np
import tensorflow as tf
Dépendances d'implémentation JAX
#@save
from dataclasses import field
from functools import partial
from types import FunctionType
from typing import Any
import flax
import jax
import numpy as np
import optax
import tensorflow as tf
import tensorflow_datasets as tfds
from flax import linen as nn
from flax.training import train_state
from jax import grad
from jax import numpy as jnp
from jax import vmap
Public cible
Ce manuel s'adresse aux personnes suivantes :
- Étudiants (de premier ou deuxième cycle)
- Ingénieurs
- Chercheurs
qui cherchent à acquérir une solide maîtrise des techniques pratiques de deep learning.
Prérequis
- Une connaissance modérée de l'algèbre linéaire
- Des bases de calcul différentiel et intégral
- Des bases de la théorie des probabilités
- Des bases de la programmation Python
Ressources d'apprentissage
Ressources en ligne
- Site officiel : D2L.ai
- Dépôt GitHub : d2l-ai/d2l-en
- Forum de discussion : discuss.d2l.ai
- Autres versions linguistiques : Autres versions linguistiques
Modes d'accès
- Sous forme de code exécutable
- Livre physique
- PDF téléchargeable
- Version en ligne sur le site web
Tous les notebooks peuvent être téléchargés gratuitement sur le site D2L.ai et sur GitHub.
Avantages du manuel
- Gratuit et ouvert : Disponible gratuitement pour tous.
- Profondeur technique : Fournit la profondeur technique nécessaire pour devenir un scientifique en apprentissage automatique appliqué.
- Code exécutable : Montre comment résoudre des problèmes en pratique.
- Mises à jour rapides : Prend en charge les mises à jour rapides par les auteurs et la communauté.
- Soutien communautaire : Accompagné d'un forum interactif pour les discussions techniques et les questions-réponses.
Caractéristiques innovantes
- Probablement le premier livre publié en utilisant un flux de travail intégré.
- Combine une explication de qualité de manuel avec un code propre et exécutable de tutoriel pratique.
- Utilise GitHub pour partager le code source, des notebooks Jupyter mélangeant code, équations et texte.
- Utilise Sphinx comme moteur de rendu et Discourse comme plateforme de discussion.
Conseils d'apprentissage
- Créez un compte sur le forum de discussion.
- Installez Python sur votre ordinateur.
- Cherchez de l'aide et discutez via les liens du forum en bas de chaque chapitre.
- Apprenez en faisant, en utilisant pleinement le code exécutable.
- Participez aux discussions communautaires, échangez avec les auteurs et la communauté au sens large.
Ce manuel représente une étape importante dans l'éducation au deep learning, offrant aux apprenants une ressource complète, pratique et facilement accessible pour l'apprentissage du deep learning.