Neural network preconditioning of large linear systems - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Rapport (Rapport Technique) Année : 2023

Neural network preconditioning of large linear systems

Préconditionnement par réseaux de neurones pour des systèmes linéaires de grande taille

Résumé

We report research results on the training and use of an artificial neural network for the preconditioning of large linear systems. The aim is to solve a large linear system, which is a discretisation of a Helmholtz differential equation, as quickly as possible using a preconditioned Krylov-like iterative method such as Flexible GMRES. The implementations are written in Python and are divided into two main repositories: one for the Flexible GMRES algorithm, and another for learning neural networks. Currently, a preconditioning matrix is built column by column by solving a set of large sparse block structured least squares problems. This method is relatively easy to implement, but suffers from high computational cost and consequently high energy consumption. Furthermore, although we are considering a parametrized family of linear systems, we have to recalculate a preconditioner each time the parameters change. Since a neural network aims to approximate a complex functional dependence of any kind, it is a natural idea to use it to build a parameter invariant preconditioner to speed up convergence. We will present in detail a different approach to learning the neural network, along with several architectures that have been tested in this work. We will show with some examples that the naive approach of building a preconditioner in an unsupervised way suffers from the lack of knowledge of the data distribution of the Krylov basis vectors that appear during the FGMRES iterations. As a result, this paper demonstrates a particular iterative algorithm for learning a network. The main difficulty in implementing this type of algorithm stems from the fact that the differentiation of several iterative steps becomes numerically unstable and leads to the explosion of gradients. To overcome this difficulty, we use a replay buffer during training, which is a known approach from the reinforcement learning domain where it is used to collect experience for an agent parameters update. We will detail the different learning strategies where the replay buffer is used and explicitly show its advantages and any numerical challenges that arise. We will also present the implementation details of different learning strategies and neural network architectures.
Nous présentons des résultats de recherche sur la formation et l’utilisation d’un réseau neuronal artificiel pour le préconditionnement de grands systèmes linéaires. L’objectif est de résoudre un grand système linéaire, qui est une discrétisation d’une équation différentielle de Helmholtz, aussi rapidement que possible en utilisant une méthode itérative préconditionnée de type Krylov telle que Flexible GMRES. Les implémentations sont écrites en Python et sont divisées en deux dépôts principaux : l’un pour l’algorithme Flexible GMRES et l’autre pour l’apprentissage des réseaux neuronaux. Actuellement, une matrice de préconditionnement est construite colonne par colonne en résolvant un ensemble de problèmes de moindres carrés struc- turés par blocs. Cette méthode est relativement facile à mettre en œuvre, mais elle souffre d’un coût de calcul élevé et, par conséquent, d’une forte consommation d’énergie. En outre, bien que nous considérions une famille paramétrée de systèmes linéaires, nous devons recalculer un préconditionneur chaque fois que les paramètres changent. Étant donné qu’un réseau neuronal vise à approximer une dépendance fonctionnelle complexe de tout type, il est naturel de l’utiliser pour construire un préconditionneur invariant par rapport aux paramètres afin d’accélérer la convergence. Nous présenterons en détail une approche différente de l’apprentissage du réseau neuronal, ainsi que plusieurs architectures qui ont été testées dans le cadre de ce travail. En conséquence, ce document démontre un algorithme itératif particulier pour l’apprentissage d’un réseau. La principale difficulté dans la mise en œuvre de ce type d’algorithme provient du fait que la différenciation de plusieurs étapes itératives devient numériquement instable et conduit à l’explosion des gradients. Pour surmonter cette difficulté, nous utilisons un tampon de relecture pendant l’apprentissage, qui est une approche connue dans le domaine de l’apprentissage par renforcement où il est utilisé pour collecter de l’expérience pour une mise à jour des paramètres de l’agent. Nous détaillerons les différentes stratégies d’apprentissage dans lesquelles le tampon de relecture est utilisé et nous montrerons explicitement ses avantages et les défis numériques qui se posent. Nous présenterons également les détails de la mise en œuvre des différentes stratégies d’apprentissage et architectures de réseaux neuronaux.
Fichier principal
Vignette du fichier
rt_0518.pdf (2.61 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04254315 , version 1 (24-10-2023)

Licence

Paternité

Identifiants

  • HAL Id : hal-04254315 , version 1

Citer

Maksym Shpakovych. Neural network preconditioning of large linear systems. RT-0518, Inria Centre at the University of Bordeaux. 2023, pp.36. ⟨hal-04254315⟩
173 Consultations
232 Téléchargements

Partager

Gmail Facebook X LinkedIn More