Contrôle Continu (deep learning, 2020-2021, 7 décembre 2020)
Partie 1 : modèles convolutionnels
⚠️ Il est possible que le temps d'entrainement des modèles de c ette partie soit relativement long. Exécutez tout de même l'apprentissage pendant 10 epochs et n'hésitez pas à jeter un oeil aux questions suivantes pendant le déroulement de l'entrainement.
Question 1. Modifiez le code suivant pour vous assurer que les données CIFAR-10 sont correctement préparées pour être fournies en entrée à un modèle convolutionnel. Le jeu de données CIFAR-10 est un jeu de données de classification d'images, et les images d'entrée sont des images couleur de résolution 32x32.
Question 2. Implémentez le modèle suivant en keras. Si certains hyper-paramètres ne sont pas fournis dans ce schéma, vous êtes libres de les fixer à votre guise.
Question 3. On se demande si la dernière couche cachée est vraiment utile. Mettez en oeuvre une façon fiable de comparer les performances du modèle précédent et d'une variante sans cette couche cachée et concluez.
Question 4. Il est possible que vous ayez observé un léger sur-apprentissage avec le modèle de la question 2. Mettez en oeuvre un moyen de limiter ce sur-apprentissage et mesurer l'impact sur les performances de généralisation du modèle résultant.
Question 5. Utilisez un modèle ResNet50 pré-entrainé sur ImageNet auquel vous adjoindrez un classifieur de type régression logistique, pour ce problème CIFAR-10. Qu'observez-vous ? Comment pouvez-vous l'expliquer ? Que suggérez-vous pour y remédier ? (il n'est pas demandé d'implémenter la solution suggérée)
Partie 2 : modèles fully-connected
On s'intéresse dans la suite de cet énoncé au jeu de données Boston Housing. Le code suivant permet de charger ce jeu de données, il n'est pas nécessaire de le modifier.
Question 6. Implémentez un modèle de régression aux moindres carrés à une couche cachée. Vous prendrez soin de choisir une fonction d'activation pour votre couche de sortie qui soit cohérente avec les minimum et maximum de la variable à prédire. Entrainez ce modèle pendant 1000 epochs, avec des mini-batchs de taille 256.
Question 7. Même question avec un modèle à 3 couches cachées, contenant 200 neurones chacune. Ici, vous prendrez soin d'utiliser l'optimiseur Adam.
Question 8. Que remarquez vous ? Voyez vous un moyen simple d'obtenir un meilleur modèle que celui de la question précédente sans toucher à sa structure ? Si oui, mettez le en oeuvre.