← RednBlue Étude de cas · novembre 2026

Ce que 400 tests adversariaux font à un ResNet18 standard

Nous avons passé un ResNet18 pré-entraîné sur ImageNet, tel qu'on le télécharge depuis torchvision, dans la suite Enterprise de RednBlue. Résultat : FAIL. Voici ce que cela veut dire, et pourquoi c'est le point de départ normal.

400tests notés
99tiennent
301cèdent
24.8%stabilité

Le protocole

  • Modèle : ResNet18 de torchvision, 1 000 classes, normalisation ImageNet détectée automatiquement.
  • Entrées : 10 images de test.
  • Suite : tier Enterprise, 10 attaques × 4 intensités (ε = 0,005 ; 0,01 ; 0,03 ; 0,10), soit 40 tests par image et 400 au total.
  • Attaques : bruit gaussien, perturbation haute fréquence, patch adversarial, FGSM, manipulation des canaux couleur, PGD, Carlini-Wagner, DeepFool, Square Attack, Auto-PGD.
  • Matériel : un GPU Tesla T4 (Google Colab), environ 1 min 50 s pour l'ensemble.
  • Version : CLI rednblue 4.0.0b1, barème 1.2.

Les résultats

Sur 400 tests, la prédiction du modèle n'a tenu que 99 fois. Sa stabilité est de 24,8 % (intervalle de confiance à 95 % : 20 à 30 %). Le serveur a recalculé la note de son côté et obtenu exactement le même résultat que le CLI.

La note est FAIL pour une raison précise : l'attaque FGSM a fait changer la prédiction sur toutes les images dès la plus petite intensité testée, ε = 0,005 (stabilité 0 %, seuil 10 %). Une perturbation de cette taille est invisible à l'œil nu.

Aucun certificat n'a été émis, comme prévu pour un FAIL.

Pourquoi c'est normal

Un modèle entraîné de façon classique optimise sa précision sur des images propres, pas sa résistance aux perturbations. La littérature le montre depuis 2014 : sans entraînement adversarial, les classifieurs standards cèdent à de très petites perturbations. Ce FAIL n'est donc pas un défaut de ResNet18 ; c'est la mesure honnête d'un modèle non durci, et la ligne de base à laquelle comparer une version améliorée.

Ce que ce test ne dit pas

  • 10 images, c'est un échantillon : l'intervalle de confiance l'indique.
  • Le run était sans étiquettes : on mesure si la prédiction change sous attaque, pas si elle est juste.
  • Les résultats sont déclarés par la machine qui a exécuté le test et notés par RednBlue ; ils ne sont pas rejoués indépendamment.

Le reproduire

pip install rednblue==4.0.0b1
export RNB_TOKEN=your_token
rnb preview --model resnet18.pth --input images/ --submit

Testez votre propre modèle de la même façon, en local.

Créer un compte Documentation