


Une nouvelle recherche révèle le potentiel du Monte Carlo quantique à surpasser les réseaux neuronaux en dépassant les limites, et un sous-numéro de Nature détaille les derniers progrès.
Après quatre mois, un autre travail collaboratif entre ByteDance Research et le groupe de recherche de Chen Ji à l'École de physique de l'Université de Pékin a été publié dans les meilleures publications internationales Nature Communications : L'article "Vers l'état fondamental des molécules via diffusion Monte Carlo sur les réseaux de neurones 》La combinaison du réseau de neurones avec la méthode de diffusion Monte Carlo améliore considérablement la précision de calcul, l'efficacité et l'échelle du système de la méthode des réseaux de neurones dans les tâches liées à la chimie quantique, devenant ainsi le dernier SOTA.
- Lien papier :
https://www.nature.com/articles/s41467-023-37609-3 - Adresse du code :
https://github.com/bytedance/jaqmc
L'auteur applique la fonction d'onde d'essai basée sur le réseau neuronal à la méthode de diffusion Monte Carlo de surface de nœud fixe (Diffusion Monte Carlo, ou DMC), utilisé pour calculer avec précision des systèmes atomiques et moléculaires ayant différentes propriétés électroniques.
La méthode de diffusion Monte Carlo est l'une des méthodes couramment utilisées dans le domaine de la chimie quantique pour calculer avec précision l'énergie de l'état fondamental des molécules et des matériaux. En la combinant avec la méthode de diffusion Monte Carlo, les auteurs ont considérablement amélioré la précision et l’efficacité des calculs de la méthode SOTA du réseau neuronal en chimie quantique. De plus, l’auteur a également proposé une méthode d’extrapolation basée sur des relations linéaires empiriques, qui a grandement amélioré le calcul de l’énergie de liaison moléculaire. Dans l’ensemble, ce cadre informatique constitue une méthode de haute précision pour résoudre les problèmes quantiques à N corps, fournissant ainsi un outil plus puissant pour une compréhension approfondie des propriétés des molécules chimiques.
Méthode Quantum Monte Carlo basée sur un réseau neuronalDepuis 2018, plusieurs groupes de recherche ont appliqué les réseaux neuronaux à la méthode variationnelle de Monte Carlo (Variational Monte Carlo, ou VMC) [1,2,3], avec Grâce à la puissante capacité d'expression des réseaux neuronaux, une énergie moléculaire fondamentale plus précise est obtenue. Lorsque ces travaux ont été publiés en 2022, les travaux SOTA sur la méthode de Monte Carlo variationnelle basée sur les réseaux neuronaux étaient FermiNet [2] proposé par DeepMind en 2019, qui a permis d'obtenir des résultats très précis sur un système à plus petite échelle. Cependant, la précision de la méthode variationnelle de Monte Carlo est limitée par la capacité d'expression du réseau neuronal, et des problèmes de précision de plus en plus évidents se poseront lorsqu'il s'agira de systèmes plus grands. De plus, ce type de méthode converge très lentement lorsqu’il s’agit de systèmes plus grands, ce qui pose un énorme défi en termes de ressources informatiques.
En tant que l'un des algorithmes classiques de haute précision dans le domaine de la chimie quantique, la méthode de diffusion Monte Carlo présente de bonnes caractéristiques telles qu'une grande précision, une bonne parallélisabilité et convient aux calculs à grande échelle. De plus, la diffusion Monte Carlo peut briser les limites de la capacité d'expression des réseaux de neurones et utiliser des algorithmes de projection pour surpasser la précision de la méthode variationnelle de Monte Carlo.
Dans ce travail, l'auteur combine le réseau neuronal de SOTA (FermiNet) comme fonction d'onde d'essai avec la méthode de diffusion Monte Carlo. La nouvelle méthode de calcul améliore considérablement la précision et réduit le nombre d'étapes de calcul requises par rapport à FermiNet. Le logiciel de diffusion Monte Carlo conçu et mis en œuvre dans ce travail est compatible avec les réseaux neuronaux, les GPU et le parallèle. Il peut être combiné avec une large gamme de fonctions d'onde de réseau neuronal pour améliorer automatiquement sa précision et son efficacité.
Résultats de calcul1. Atomes
Lors de l'utilisation de réseaux de neurones pour effectuer des calculs quantiques de Monte Carlo sur de grands systèmes moléculaires, en raison des limitations de la puissance de calcul, la capacité d'expression du réseau de neurones qui peut être utilisé sera également limité à certaines restrictions. Pour simuler ce scénario, les auteurs ont utilisé seulement deux couches de réseaux neuronaux pour étudier les deuxième et troisième rangées d'atomes. Les résultats du calcul montrent qu'à mesure que le système s'agrandit, la précision de la méthode variationnelle de Monte Carlo devient de moins en moins bonne, tandis que l'amélioration de la précision apportée par la méthode de diffusion Monte Carlo devient de plus en plus évidente.
2. L'auteur a également vérifié l'efficacité de la méthode de diffusion Monte Carlo basée sur un réseau neuronal sur une série de systèmes moléculaires, notamment des molécules d'azote, du cyclobutadiène et des molécules d'eau doubles. Des améliorations significatives de la précision des calculs ont été observées sur tous les systèmes testés. 3. Anneau benzénique et anneau diphényle Avant la publication de cet ouvrage, la méthode de la fonction d'onde des réseaux neuronaux basée sur Monte Carlo variationnel dans le domaine de la chimie quantique n'avait traité que 30 électrons ou moins Petites molécules. Ce travail applique pour la première fois la méthode de la fonction d'onde du réseau neuronal à des systèmes comportant de 42 à 84 électrons, à savoir les cycles benzéniques et les cycles biphényle. Les résultats du calcul montrent que la méthode de diffusion Monte Carlo est nettement meilleure que la méthode variationnelle de Monte Carlo en termes de précision et peut atteindre une précision identique ou meilleure avec un ordre de grandeur en moins d'étapes de calcul.
4. Relation linéaire et méthode d'extrapolation
Lorsque l'auteur a étudié l'énergie correspondant aux différentes étapes de formation du réseau neuronal, des variations ont été trouvées dans de nombreux systèmes. les résultats de Monte Carlo et de diffusion Monte Carlo ont une relation empirique linéaire (figure de gauche ci-dessous). L'utilisation de cette relation linéaire pour extrapoler le calcul de l'énergie de dissociation du cycle biphényle a considérablement amélioré la précision du calcul et obtenu des résultats cohérents avec les expériences chimiques (image de droite ci-dessous).
Conclusion et perspectives
Ce travail montre que la méthode de Monte Carlo par diffusion basée sur les réseaux de neurones est supérieure à la méthode de Monte Carlo variationnelle tant en précision qu'en efficacité. Le code Monte Carlo de diffusion open source de l'auteur peut être rapidement combiné avec les réseaux de neurones constamment innovants [4,5] dans le domaine de la chimie quantique pour responsabiliser la communauté des chercheurs. De plus, la méthode de diffusion Monte Carlo peut également être combinée avec une série de méthodes telles que les réseaux de neurones périodiques [6] et les réseaux de neurones avec pseudopotentiels [7] qui traitent de solides réels pour améliorer les effets de calcul sur les tâches correspondantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La multiplication matricielle générale (GEMM) est un élément essentiel de nombreuses applications et algorithmes, et constitue également l'un des indicateurs importants pour évaluer les performances du matériel informatique. Une recherche approfondie et l'optimisation de la mise en œuvre de GEMM peuvent nous aider à mieux comprendre le calcul haute performance et la relation entre les systèmes logiciels et matériels. En informatique, une optimisation efficace de GEMM peut augmenter la vitesse de calcul et économiser des ressources, ce qui est crucial pour améliorer les performances globales d’un système informatique. Une compréhension approfondie du principe de fonctionnement et de la méthode d'optimisation de GEMM nous aidera à mieux utiliser le potentiel du matériel informatique moderne et à fournir des solutions plus efficaces pour diverses tâches informatiques complexes. En optimisant les performances de GEMM

WORD est un traitement de texte puissant. Nous pouvons utiliser Word pour éditer divers textes. Dans les tableaux Excel, nous maîtrisons les méthodes de calcul d'addition, de soustraction et de multiplicateurs. Ainsi, si nous avons besoin de calculer l'addition de valeurs numériques dans les tableaux Word, Comment soustraire le multiplicateur ? Puis-je utiliser uniquement une calculatrice pour le calculer ? La réponse est bien sûr non, WORD peut aussi le faire. Aujourd'hui, je vais vous apprendre à utiliser des formules pour calculer des opérations de base telles que l'addition, la soustraction, la multiplication et la division dans des tableaux dans des documents Word. Apprenons ensemble. Alors, aujourd'hui, permettez-moi de vous montrer en détail comment calculer l'addition, la soustraction, la multiplication et la division dans un document WORD ? Étape 1 : ouvrez un WORD, cliquez sur [Tableau] sous [Insérer] dans la barre d'outils et insérez un tableau dans le menu déroulant.

Comment utiliser la fonction count() de Python pour compter le nombre d'éléments dans une liste nécessite des exemples de code spécifiques. En tant que langage de programmation puissant et facile à apprendre, Python fournit de nombreuses fonctions intégrées pour gérer différentes structures de données. L'une d'elles est la fonction count(), qui peut être utilisée pour compter le nombre d'éléments dans une liste. Dans cet article, nous expliquerons en détail comment utiliser la fonction count() et fournirons des exemples de code spécifiques. La fonction count() est une fonction intégrée de Python, utilisée pour calculer un certain

Étant donné deux chaînes str_1 et str_2. Le but est de compter le nombre d'occurrences de la sous-chaîne str2 dans la chaîne str1 en utilisant une procédure récursive. Une fonction récursive est une fonction qui s'appelle dans sa définition. Si str1 est "Je sais que vous savez que je sais" et str2 est "savoir", le nombre d'occurrences est de -3 Comprenons à travers des exemples. Par exemple, entrez str1="TPisTPareTPamTP", str2="TP" ; sortie Countofoccurrencesofasubstringrecursi.

En C#, il existe une bibliothèque de classes Math, qui contient de nombreuses fonctions mathématiques. Il s'agit notamment de la fonction Math.Pow, qui calcule les puissances, ce qui peut nous aider à calculer la puissance d'un nombre spécifié. L'utilisation de la fonction Math.Pow est très simple, il suffit de spécifier la base et l'exposant. La syntaxe est la suivante : Math.Pow(base,exponent) ; où base représente la base et exponent représente l'exposant. Cette fonction renvoie un résultat de type double, c'est-à-dire le résultat du calcul de puissance. Allons

Introduction Le programme Java pour calculer l'aire d'un triangle à l'aide d'un déterminant est un programme concis et efficace qui peut calculer l'aire d'un triangle à partir des coordonnées de trois sommets. Ce programme est utile à toute personne qui apprend ou travaille avec la géométrie, car il montre comment utiliser les calculs arithmétiques et algébriques de base en Java, ainsi que comment utiliser la classe Scanner pour lire les entrées de l'utilisateur. Le programme demande à l'utilisateur les coordonnées de trois points du triangle, qui sont ensuite lues et utilisées pour calculer le déterminant de la matrice de coordonnées. Utilisez la valeur absolue du déterminant pour vous assurer que l'aire est toujours positive, puis utilisez une formule pour calculer l'aire du triangle et l'afficher à l'utilisateur. Le programme peut être facilement modifié pour accepter des entrées dans différents formats ou pour effectuer des calculs supplémentaires, ce qui en fait un outil polyvalent pour les calculs géométriques. rangs de déterminants

Python est un langage de programmation généraliste populaire. Il est utilisé dans divers secteurs, notamment les applications de bureau, le développement Web et l’apprentissage automatique. Heureusement, Python possède une syntaxe simple et facile à comprendre qui convient aux débutants. Dans cet article, nous utiliserons Python pour calculer la somme de la diagonale droite d'une matrice. Qu'est-ce qu'une matrice ? En mathématiques, nous utilisons un tableau ou une matrice rectangulaire pour décrire un objet mathématique ou ses propriétés. Il s'agit d'un tableau ou d'un tableau rectangulaire contenant des nombres, des symboles ou des expressions disposés en lignes et en colonnes. Par exemple -234512367574 Il s'agit donc d'une matrice de 3 lignes et 4 colonnes, exprimée sous la forme d'une matrice 3*4. Or, il y a deux diagonales dans la matrice, la diagonale primaire et la diagonale secondaire.

Nous montrerons comment calculer les scores totaux et les pourcentages à l'aide d'un programme Java. Le score total fait référence à la somme de tous les scores disponibles, tandis que le terme pourcentage fait référence au score calculé divisé par le score total et multiplié par le nombre obtenu 100. percent_of_marks=(obtained_marks/total_marks)×100 Exemple 1 Il s'agit d'un programme Java qui montre comment calculer les scores totaux et les pourcentages. //Programme Java pour démontrer comment les marques totales et les pourcentages sont calculés importjava.io.*;publicclassTotalMarks_
