« No stop signs,
Speed limit,
Nobody's gonna slow me down »
-- **AC/DC**, *Highway to Hell*
L’efficacité exceptionnelle des réseaux de neurones les rend intéressant dans de nombreux domaines, en particulier celui de la conduite autonome. Mais est-ce bien raisonnable de leur faire autant confiance ?
Partie I. Classification des panneaux de signalisation
Partie II. Tromper le réseau : comment hacker un panneau STOP ?
Partie III. Des pistes pour se prémunir contre de telles attaques
- Étudier le fonctionnement d'un réseau de neurones basique (MLP).
- Mettre en place un MLP de classification des chiffres manuscrits de MNIST, sans framework en Python.
- Même chose en utilisant PyTorch.
- Étudier le fonctionnement des réseau neuronaux convolutifs (CNN).
- Mettre en place un CNN avec PyTorch pour la reconaîssance de MNIST.
- Mettre en place un CNN avec PyTorch pour la classification des panneaux (Réseau A).
- Trouver un réseau de classification des panneaux utilisé dans des voitures du commerce (Réseau B).
- Optionnel : Faire fonctionner ces réseaux dans une application iOS pour avoir des résultats en temps réel.
- Sur les réseaux collectés (A et B), essayer de tromper la reconaîssance de manière "naïve" (par ex. descente de gradient sur un panneau.)
- Étudier l'état de l'art dans ce domaine : examples adversaires et attaques black-box.
- Mettre en place ces attaques sur les trois réseaux.
- Étudier et comparer les résultats.
- Inventer et mettre en place un renforcement "naïf" contre de telles attaques.
- Collecter et expérimenter d'autres stratégies de renforcement existantes.
- Comparer le succès des attaques sur les trois réseaux, avec diverses techniques de renforcement mises en place.
- Conclure
- German Traffic Sign Recognition Benchmark (GTSRB)
- Arxiv Sanity Preserver (Recherche de publications)
- Glossaire complet et détaillé
- Comparaison des différents GANs
- Python 3
- numpy, matplotlib, PyTorch (torch), scikit-image, pandas, glob, joblib, wget, zipfile, shutil, tqdm