TorchLean : Formaliser les Réseaux de Neurones en Lean 4
Découvrez TorchLean, le framework Lean 4 qui formalise les réseaux de neurones pour une vérification IA rigoureuse et certifiable.

TorchLean : Quand les Réseaux de Neurones Deviennent des Objets Mathématiques Formels
Les réseaux de neurones sont partout. Ils pilotent nos systèmes de reconnaissance faciale, optimisent les processus industriels, et s'infiltrent désormais dans des domaines critiques comme la médecine ou l'aviation. Pourtant, une réalité troublante persiste en arrière-plan : la majorité des résultats de vérification et d'analyse sont produits en dehors de l'environnement de programmation qui définit et exécute le modèle.
Cette séparation crée un vrai problème. Les garanties formelles reposent souvent sur des conventions implicites : sémantique des opérateurs, layouts de tenseurs, prétraitement, et comportements subtils des nombres flottants. Vous prouverez peut-être qu'un réseau est robuste aux perturbations, mais avez-vous réellement prouvé que ce qui s'exécute en production correspond à ce que vous avez vérifié ?
C'est exactement ce problème que TorchLean tente de résoudre. Développé par une équipe de chercheurs, ce framework dans le proof assistant Lean 4 transforme les modèles appris en objets mathématiques de première classe, avec une sémantique unique et précise partagée entre exécution et vérification.
Dans cet article, nous verrons pourquoi cette approche est intéressante, comment elle fonctionne techniquement, et quelles implications elle a pour l'avenir de la vérification des systèmes basés sur l'IA.
Le Problème du Gap Sémantique
Ce Qui Se Passe en Pratique
Prenons un exemple concret. Vous développez un système de détection de défauts pour une ligne de production industrielle. Vous entraînez un réseau de neurones, vous le vérifiez avec un outil de bound propagation (IBP ou CROWN/LiRPA), et vous prouvez que les perturbations inférieures à un certain seuil ne modifieront pas la classification.
Problème résolu ? Pas exactement.
Votre vérification suppose une sémantique précise des opérations : que signifie exactement une convolution ? Comment sont gérés les bords du tenseur ? Quel modèle d'arrondi utilisez-vous pour les calculs en virgule flottante ?
Dans la pratique, ces détails sont souvent implicites. Le framework PyTorch exécute avec une certaine sémantique. Votre outil de vérification utilise potentiellement une abstraction différente. Et le code déployé en production ? Personne ne garantit vraiment qu'il correspond à l'un ou l'autre.
Les Conventions Implicites Qui Cachent des Pièges
Les sources d'incohérence sont nombreuses :
- Sémantique des opérateurs : PyTorch peut changer d'implémentation entre versions
- Layout des tenseurs : row-major vs column-major peut varier
- Prétraitement : les normalisations sont souvent externalisées
- Virgule flottante : IEEE-754 n'est pas toujours respecté strictement
Dans des systèmes non-critiques, ces variations sont acceptables. Dans des contextes safety-critical (avionique, médecine, énergie), elles sont inadmissibles.
TorchLean comble ce gap en ancrant tout dans une seule sémantique formelle, prouvée et exécutable.
TorchLean : Une Sémantique Unifiée
L'Idée Fondamentale
TorchLean repose sur un principe simple mais puissant : le modèle appris est un objet mathématique au même titre qu'une fonction ou un nombre réel. Pas une boîte noire exécutable, mais une entité définie formellement avec laquelle on peut raisonner.
Concrètement, TorchLean propose :
- Une API vérifiée style PyTorch avec modes eager et compilé
- Un IR SSA/DAG partagé avec tags d'opérateurs
- Une sémantique Float32 explicite via un kernel IEEE-754 binaire32 exécutable
- Des preuves de bound propagation avec certificats vérifiables
Tout cela vit dans Lean 4, un proof assistant puissant qui garantit la correction des preuves.
Pourquoi Lean 4 ?
Lean n'est pas choisi au hasard. C'est un theorem prover moderne qui combine :
- Un langage de programmation fonctionnel (ce qui permet d'écrire du code exécutable)
- Un système de preuves formelles (ce qui permet de prouver des théorèmes)
- Un meta-language puissant (ce qui permet de raisonner sur le code lui-même)
Cette combinaison est exactement ce qu'il faut pour formaliser des réseaux de neurones. Vous pouvez exécuter le réseau (comme en Python) et en même temps raisonner dessus (comme en mathématiques formelles).
Les Trois Piliers de TorchLean
1. API Vérifiée avec Modes Eager et Compilé
TorchLean reproduit l'API PyTorch familière mais avec une différence fondamentale : chaque opération est définie formellement. Vous écrivez du code qui ressemble à PyTorch, mais ce code a une sémantique mathématique précise.
Le framework supporte deux modes d'exécution :
- Mode eager : exécution immédiate, utile pour le debug et l'exploration
- Mode compilé : génération d'un graphe de calcul optimisé
Les deux lowers vers un IR SSA/DAG op-tagged partagé. C'est ce même IR qui est utilisé pour l'exécution et pour la vérification. Plus besoin de vérifier un modèle abstrait puis d'espérer que l'implémentation correspond.
2. Sémantique Float32 Explicite
C'est ici que TorchLean se distingue. Au lieu d'utiliser une abstraction floue des nombres réels, TorchLean implémente un kernel exécutable IEEE-754 binary32 avec des modèles d'arrondi proof-relevant.
Concrètement, cela signifie :
- Chaque opération Floating-point est modélisée précisément
- Les preuves utilisent le vrai comportement Float32
- Les coins sombres (NaN, infinis, dénormalisés) sont gérés formellement
Fini les surprises où une preuve mathématique s'effondre à cause d'un overflow non prévu.
3. Bound Propagation avec Certificats
TorchLean intègre des techniques de bound propagation directement dans l'écosystème Lean :
- IBP (Interval Bound Propagation) : approche classique, rapide mais conservative
- CROWN/LiRPA : approche par relaxation linéaire, plus précise
Chaque résultat de bound propagation produit un certificat vérifiable. Ce n'est pas une estimation : c'est une preuve formelle que certaines propriétés sont garanties.
Applications Concrètes
Robustesse Certifiée
La première application majeure est la vérification de robustesse. Étant donné un réseau et une entrée, peut-on garantir que toute perturbation inférieure à un seuil ne changera pas la classification ?
TorchLean permet de le prouver formellement. Le certificat généré est vérifiable par Lean lui-même. C'est-à-dire : la preuve que le réseau est robuste est mécanisée, revisitable et infalsifiable.
PINNs et Bornes Résiduelles Physiques
Les Physics-Informed Neural Networks (PINNs) intègrent des connaissances physiques dans l'entraînement du réseau. L'idée est de minimiser non seulement l'erreur sur les données, mais aussi la violation des équations physiques.
TorchLean permet de borner explicitement les résidus de ces équations physiques. Vous pouvez prouver, par exemple, que votre réseau de neurones satisfait certaines équations différentielles avec une précision garantie. Utile pour la simulation, le contrôle, ou tout système où la physique doit être respectée.
Contrôleurs Neuronaux Lyapunov
Dernière application majeure : la vérification de contrôleurs neuronaux style Lyapunov.
Un contrôleur Lyapunov est un contrôleur dont on peut prouver la stabilité via une fonction de Lyapunov. Avec des contrôleurs neuronaux, la vérification devient complexe car le réseau lui-même est non-linéaire.
TorchLean permet de vérifier formellement qu'un contrôleur neuronal respecte les critères de stabilité Lyapunov. C'est crucial pour la robotique, les systèmes de contrôle industriels, ou tout système où une instabilité peut avoir des conséquences dangereuses.
Le Théorème d'Approximation Universalisé
Au-delà des applications pratiques, TorchLean apporte un résultat théorique significatif : une version mécanisée du théorème d'approximation universal.
Le théorème d'approximation universal states que les réseaux de neurones à une couche cachée peuvent approximer n'importe quelle fonction continue sur un compact. C'est un résultat fondamental, souvent présenté de manière informelle dans les cours de machine learning.
L'équipe TorchLean a prouvé ce théorème directement dans Lean, avec tous les détails formels. Cela signifie :
- Le théorème est vérifié par le système de preuves
- Chaque étape est mécanisée
- Le résultat est réutilisable dans d'autres preuves
C'est un pas vers une bibliothèque formelle de résultats sur les réseaux de neurones, où chaque théorème important peut être prouvé et vérifié.
Conclusion
TorchLean représente une avancée significative dans la formalisation des systèmes d'apprentissage automatique. Au lieu de vérifier des abstractions lointaines de nos modèles, nous pouvons maintenant travailler avec une sémantique unifiée, exécutable et prouvable.
Les implications sont majeures pour les systèmes safety-critical. Dans des domaines comme l'aéronautique, le médical ou l'énergie, pouvoir certifier formellement qu'un réseau de neurones se comportera comme spécifié n'est plus un luxe : c'est une nécessité croissante.
Le chemin est encore long. Les performances doivent s'améliorer, la couverture des architectures doit s'étendre, et les outils doivent devenir plus accessibles. Mais la direction est claire : l'avenir de la vérification IA passe par la formalisation.
Et TorchLean montre que c'est possible dès aujourd'hui.