TD Apprentissage

Author

Augustin Chevallier

1 Applications directes

1.1 Exercice 1: Différentiation automatique

  1. Différentier la fonction \[f(x) = x^3 + 2x \, sin(x)\] en \(x = 2\) et \(x = 4\).
  2. Calculer le gradient de la fonction \[g(x,y) = x + y + xy + sin(x)sin(y)\] en \((x,y) = (0,0)\) et \((x,y) = (1,4)\).
  3. Minimiser la fonction \(u(x) = (x-1)^2 cos(x)\) avec une descente de gradient. Y-a-t-il plusieurs minimums locaux (tracer la fonction!) ?
  4. Minimiser la fonction \(v(x,y) = (x+1)^2 + y^2 + cos(x)*y^2\) avec une descente de gradient en partant du point \((1.5,2.6)\)?

1.2 Exercice 2: Chargement d’un dataset

  1. Charger le dataset FashionMNIST.
  2. Afficher le premier élément du dataset ainsi que le label associé.
  3. Séparer le dataset en un dataset de test et d’entraînement.
  4. Créer un dataloader avec une taille de batch de 8.
  5. Afficher les données du premier batch.

1.3 Exercice 3: Apprentissage

  1. Créer le modèle défini dans le premier cours:
    • une première couche cachée de 512 paramètres
    • une deuxième couche cachée de 512 paramètres
    • on utilise la fonction d’activation RELU
  2. Choisir et définir une fonction de coût.
  3. Effectuer une descente de gradient stochastique pour le dataset de l’exo 2.
  4. Tester les prédictions du modèle sur le dataset de test.

2 Approfondir

2.1 Exercice 4: apprendre la fonction sinus

Le but de cet exercice est d’apprendre la fonction \(sin\) entre \(-10\) et \(10\).

  1. Créer un réseau de neurones avec 1 couche cachée de 10 neurones.
  2. Créer un dataset d’entraînement à partir de la fonction \(sin\).
  3. Apprendre la fonction \(sin\). En cas de problèmes, essayer de rajouter des neurones dans la couche cachée, de changer le learning rate ou encore le nombre d’epochs.

2.2 Exercice 5: influence des paramètres

Reprendre le code de l’exercice 3.

  1. Étudier l’influence de la taille du batch sur la qualité de l’apprentissage. Pour cela, on affichera la précision atteinte en fonction du temps de calcul.
  2. Étudier l’influence du learning rate.
  3. Essayer l’algorithme d’apprentissage Adam.