Si un MLP a 3 neurones d’entrée, 4 neurones dans une couche cachée, et 2 neurones dans la couche de sortie, combien a-t-il de paramètres (sans compter les biais) ?
Réponse : 3×4 + 4×2 = 20.
Donnez le nom d’une fonction de coût pour la régression.
Réponse : Erreur quadratique moyenne (MSE).
Donnez le nom d’une fonction de coût pour la classification.
Réponse : Entropie croisée (Cross-Entropy).
Comment s’appelle l’algorithme qui ajuste les paramètres du réseau pour minimiser la perte ?
Réponse : Descente de gradient.
Ma descente de gradient diverge. Comment le voir et que faire sur le learning rate ?
Réponse : La courbe de perte augmente/oscille ; il faut diminuer le learning rate.
Comment s’appelle la descente de gradient qui met à jour les paramètres après chaque exemple ?
Réponse : Stochastic Gradient Descent (SGD) pur.
Comment s’appelle la descente de gradient qui met à jour à partir de petits sous-ensembles d’exemples ?
Réponse : Descente de gradient en mini-batch.
Comment s’appelle l’algorithme qui permet de calculer efficacement les gradients dans un réseau ?
Réponse : Backpropagation (Rétropropagation).
Sur quelle règle mathématique repose la backpropagation ?
Réponse : La règle de la dérivation en chaîne (Chain rule).
Qu’est-ce qu’il faut avoir effectué avant de lancer la backpropagation ?
Réponse : Un forward pass en stockant les valeurs intermédiaires.
Quelle structure de données représente le déroulement du calcul pour le forward et le backward ?
Réponse : Un graphe de calcul.
Dans PyTorch, quelle classe étend-on pour définir un modèle de réseau de neurones ?
Réponse :nn.Module.
Comment s’appelle une itération complète sur tout le jeu de données d’entraînement ?
Réponse : Une epoch.
Pourquoi a-t-on besoin d’une fonction d’activation non linéaire dans un MLP ?
Réponse : Sinon la composition de couches resterait une simple transformation linéaire (manque de puissance de représentation).
À quoi sert le biais b dans un neurone ?
Réponse : À décaler l’activation indépendamment des entrées (déplacer la frontière de décision).
Donnez la formule de sortie d’un perceptron pour une entrée x, des poids w et un biais b.
Réponse :ŷ = g(wᵀx + b).
Pour une couche de M neurones, des entrées de taille N et un batch de m exemples, quelles sont les dimensions usuelles de W et X (format PyTorch) ?
Réponse :X∈ℝ^{m×N} et W∈ℝ^{M×N} (produisant XWᵀ).
Donnez la dérivée de la fonction sigmoïde.
Réponse :σ′(x) = σ(x)[1−σ(x)].
Donnez la dérivée de tanh.
Réponse :1 − tanh²(x).
Donnez la dérivée (presque partout) de ReLU.
Réponse :0 si x < 0, 1 si x > 0.
À quoi sert la fonction softmax en sortie d’un classifieur multiclasse ?
Réponse : Transformer des logits bruts en une distribution de probabilités (somme à 1).
Quelle règle de décision applique-t-on après un softmax pour prédire la classe finale ?
Réponse : L’argmax.
Pour une classification binaire, quelle perte utilise-t-on avec une sortie sigmoïde ?
Réponse : Entropie croisée binaire (BCE).
Quelle variante de la BCE faut-il privilégier quand on manipule directement des logits en PyTorch ?
Réponse :nn.BCEWithLogitsLoss.
Dans un classifieur binaire linéaire, quelle équation caractérise la frontière de décision quand σ(z)=0,5 ?
Réponse :z = 0.
Écrivez la mise à jour des poids en descente de gradient (avec un pas η).
Réponse :W ← W − η · ∂J/∂W.
Quel est l'effet visuel d’un learning rate trop grand sur la courbe de perte ?
Réponse : Des oscillations fortes ou une divergence (la perte augmente vers l'infini).
Laquelle des variantes suivantes utilise toutes les données à chaque mise à jour ? A) SGD B) Mini-batch C) Batch complet
Réponse : C) Batch complet.
Quel est l’avantage principal de la vectorisation (matrices) pour le forward pass ? A) Simplicité mathématique B) Accélération par calcul parallèle C) Plus de précision numérique
Réponse : B) Accélération par calcul parallèle sur GPU.
Pourquoi stocke-t-on les valeurs intermédiaires du forward dans le graphe de calcul ?
Réponse : Pour pouvoir les réutiliser lors de la dérivation en chaîne (calcul des gradients locaux).
En PyTorch, comment active-t-on le calcul automatique des gradients pour un tenseur spécifique ?
Réponse :requires_grad=True à la création, ou .requires_grad_().
Quelle méthode déclenche la rétropropagation du gradient à partir d’un scalaire de perte en PyTorch ?
Réponse :loss.backward().
Après l’appel à backward(), où PyTorch stocke-t-il les gradients des paramètres ?
Réponse : Dans l’attribut .grad de chaque tenseur paramètre.
Dans la boucle d'entraînement PyTorch, quelle méthode appelle-t-on pour réinitialiser les gradients avant le backward pass ?
Réponse :optimizer.zero_grad().
Que se passe-t-il si vous oubliez d'appeler optimizer.zero_grad() ?
Réponse : PyTorch accumule (additionne) les nouveaux gradients aux anciens gradients des batchs précédents.
Pourquoi doit-on appeler model.eval() avant d'évaluer le modèle sur l'ensemble de test ?
Réponse : Pour désactiver les comportements spécifiques à l'entraînement (comme le Dropout ou la mise à jour des statistiques de BatchNorm).
Pourquoi utilise-t-on le bloc with torch.no_grad(): lors de l'évaluation ?
Réponse : Pour désactiver le suivi du graphe de calcul, ce qui économise de la mémoire VRAM et accélère l'inférence.
Dans un DataLoader, pourquoi configure-t-on shuffle=True pour l'entraînement mais shuffle=False pour la validation ?
Réponse : Le mélange réduit la corrélation des batchs et stabilise le gradient en entraînement. En validation, l'ordre n'affecte pas l'évaluation globale.
Quelle commande Slurm permet de soumettre un script de calcul non interactif en arrière-plan ?
Réponse :sbatch.
Comment s'appelle l'argument permettant de logger une valeur scalaire (comme la perte) dans TensorBoard avec PyTorch ?
Réponse :writer.add_scalar("Tag", valeur, step).
Comment détecte-t-on visuellement un sur-apprentissage (overfitting) sur les courbes TensorBoard ?
Réponse : La perte d'entraînement continue de baisser tandis que la perte de validation stagne puis remonte (forme en U).
Que sont les logits ? A) Des probabilités normalisées B) Des scores non bornés avant softmax/sigmoïde C) Des labels encodés
Réponse : B) Des scores non bornés avant normalisation.