machine_learning_4.jpg

Cet article est une traduction de la page SciML.

SciML est une organisation pour les logiciels à code source libre créée afin d'unifier les progiciels pour l'apprentissage machine scientifique. Cela comprend le développement de logiciels de support à la simulation scientifique modulaire, tels que les solveurs d'équations différentielles, ainsi que les méthodologies de résolution de problèmes inverses et la découverte automatisée de modèles. En fournissant un ensemble d'outils avec une interface commune, SciML offre un écosystème modulaire, facilement extensible et très performant pour traiter une grande variété de simulations scientifiques.

Composantes essentielles

Résolution d'équations différentielles à hautes performances et à fonctions multiples

DifferentialEquations.jl est une bibliothèque pour résoudre les équations différentielles ordinaires (EDOs, ODE), les équations différentielles stochastiques (EDSs, SDE), les équations différentielles à retard (DDE), les équations différentielles algébriques (EDA) et les équations différentielles hybrides qui comprennent des modèles multi-échelles. L'implémentation modélisée permet la compatibilité avec des tableaux et des types de nombres arbitraires, ce qui assure la compatibilité avec les nombres à virgule flottante de précision arbitraire, les calculs basés sur les GPUs, l'arithmétique à contrôle unitaire et d'autres caractéristiques. DifferentialEquations.jl est conçu à la fois pour être performant sur les problèmes à grande et à petite échelle, et pour servir de référence en terme de haute performance.

Découverte et apprentissage de modèles fondés sur la physique

SciML contient un grand nombre de modules permettant d'automatiser le processus d'apprentissage et d'ajustement des modèles. Des outils tels que DiffEqParamEstim.jl et DiffEqBayes.jl fournissent le maximum de vraisemblance classique et l'estimation bayésienne pour les modèles basés sur des équations différentielles. DiffEqFlux.jl permet la création de réseaux neuronaux intégrés dans des équations différentielles (équations différentielles neuronales ou équations différentielles universelles) pour découvrir des équations dynamiques inconnues. DataDrivenDiffEq. jl estime les opérateurs de Koopman (DMD) et utilise des méthodes comme SInDy pour transformer les données de séries temporelles en LaTeX en équations différentielles, et ReservoirComputing.jl est adapté aux réseaux d'état d'écho qui apprennent à prédire la dynamique des systèmes chaotiques.

Une base d'utilisateurs « polyglottes »

Bien que majoritairement les outils pour SciML soient construits à l'aide du langage de programmation Julia, SciML s'est engagé à faire en sorte que ces méthodes puissent être utilisées par l'ensemble de la communauté scientifique. Des outils comme diffeqpy et diffeqr permettent de relier les solveurs de DifferentialEquations.jl à Python et R. SciML espére voir de nombreux autres développements dans ce sens dans un avenir proche.

Analyse de modèles assistée par ordinateur

Les modèles scientifiques ont généralement des structures comme la localité, ce qui entraîne une « rareté » dans les structures des programmes qui peut être exploitée pour une accélération majeure des performances. Le SciML construit un ensemble d'outils interconnectés pour générer du code de solveur numérique directement sur les modèles qui sont simulés. SparsityDetection.jl peut détecter automatiquement les modèles de rareté des Jacobiens et des Hessiennes à partir d'un code source arbitraire, tandis que ModelingToolkit.jl peut réécrire des modèles d'équations différentielles afin de réarranger les équations pour une meilleure stabilité et de paralléliser automatiquement le code. Ces outils se connectent ensuite à des paquets affiliés comme SparseDiffTools.jl pour accélérer la résolution avec DifferentialEquations.jl et l'apprentissage avec DiffEqFlux.jl.

Apprentissage machine et accélération du développement de modèles

SciML soutient le développement des derniers ensembles d'outils accélérés par ML pour l'apprentissage machine scientifique. Des méthodes telles que les réseaux neuronaux informés par la physique (PINNs, Physics-Informed Neural Networks) et les méthodes Deep BSDE pour résoudre 1000 équations différentielles partielles dimensionnelles sont produites dans la bibliothèque NeuralNetDiffEq.jl. Les méthodes d'accélération basées sur les substituts sont fournies par Surrogates.jl.

Structures de données scientifiques différenciées et simulateurs

L'écosystème SciML contient des outils de simulation scientifique pré-établis ainsi que des structures de données permettant d'accélérer le développement de modèles. Des outils comme LabelledArrays.jl et MultiScaleArrays.jl facilitent la construction de modèles scientifiques à grande échelle, tandis que d'autres outils comme NBodySimulator.jl fournissent des simulateurs en vraie grandeur.

Outils pour le développement accéléré d'algorithmes et la recherche

SciML est une organisation qui se consacre à la recherche de pointe dans le domaine des méthodes de simulation numérique et des méthodologies d'apprentissage machine scientifique. De nombreux outils de SciML automatisent le processus d'évaluation comparative et de test des nouvelles méthodologies afin de s'assurer qu'elles sont sûres et éprouvées, à la fois pour accélérer la traduction des méthodes aux publications et aux utilisateurs. Nous invitons l'ensemble de la communauté des chercheurs à utiliser nos outils tels que DiffEqDevTools.jl et notre vaste suite d'algorithmes enveloppés pour tester et déployer rapidement de nouveaux algorithmes.