Blog de recherche sur les vecteurs : réseaux neuronaux structurés pour l’estimation de la densité et l’inférence causale

22 janvier 2024

Recherche Insights2024 2024

Par Asic Q. Chen, Ruian Shi, Xiang Gao, Ricardo Baptista, Rahul G. Krishnan

Dans cet article de blogue, nous présentons StrNN, une méthode efficace pour injecter une structure de variables précédemment supposée dans des réseaux de neurones arbitraires via le masquage de poids. La nature modulaire de StrNN mène à des applications en estimation de densité, modélisation générative, inférence causale, et bien plus encore.

Basé sur l’article NeurIPS 2023 : Réseaux neuronaux structurés pour l’estimation de densité et l’inférence causale.

Pour faire tourner votre propre version de StrNN, trouvez notre paquet Python sur GitHub.

Figure 1 : StrNN injecte la structure en masquant les poids d’un réseau de neurones. En haut : Connexions StrNN (vert) comparées à un réseau entièrement connecté (gris). En bas : La factorisation binaire d’une matrice d’adjacence donne des masques de poids. Les poids masqués sont montrés en gris.

Bien que les réseaux de neurones soient des estimateurs universels de fonctions, il peut souvent être avantageux de restreindre la classe de fonctions qu’un réseau de neurones peut modéliser. Par exemple, dans l’article très cité de DeepSets 1 , Zaheer et al. se sont concentrés sur des fonctions invariantes par permutation, ce qui signifie que la sortie de la fonction reste inchangée peu importe l’ordre des entrées, afin de mieux gérer les données d’entraînement présentes en ensembles non ordonnés. Dans notre article, nous démontrons comment la structure dans les réseaux de neurones pourrait entraîner des invariances fonctionnelles bénéfiques dans d’autres applications. 

Un cas d’utilisation principal qui motive est l’estimation de la densité de probabilité, où nous utilisons des réseaux de neurones pour modéliser la densité de probabilité conjointe des variables aléatoires. Dans ce contexte, nous connaissons souvent déjà certains faits sur le processus de génération des données lui-même, notamment les relations d’indépendance entre les variables aléatoires. Nous arrivons habituellement à ces énoncés d’indépendance grâce à l’expertise du domaine ou à des algorithmes de découverte de structures. La structure de ces dépendances est couramment décrite à l’aide de réseaux bayésiens.

Plus généralement, nous utilisons une matrice d’adjacence pour modéliser des énoncés d’indépendance arbitraires pour les entrées et sorties. Si nous avons des données de dimension d, notre matrice d’adjacence est une A∈{0, 1}d × dA ij=0 si et seulement si xi⊥ xj | x{1, ..., i \ pa(i)} et Aij=1 sinon. Considérons un autoencodeur avec d entrées et sorties. Lorsque les sorties sont autorégressives par rapport aux entrées, A a tous les uns sous la diagonale et tous les zéros ailleurs. Des travaux existants comme le Masked Autoencoder for Density Estimation (MADE)2 ont exploité cette structure pour utiliser chaque nœud de sortie d’un autoencodeur afin de modéliser un facteur de probabilité marginal dans la règle de la chaîne de probabilité. Nous nous intéressons plutôt à des structures d’indépendance connues plus complexes, ce qui signifie que A est non seulement triangulaire inférieur, mais aussi clairsemé sous la diagonale, comme dans l’exemple montré à la Figure 1.

En s’inspirant de l’approche utilisée dans MADE, nous imposons la structure donnée par A en multipliant élémentaire les matrices de poids du réseau de neurones par des masques binaires. De cette façon, nous annulons certaines connexions dans le réseau afin qu’il n’y ait pas de chemins entre les entrées et sorties indépendantes selon A. Plus concrètement, pour un réseau de neurones jouet y=f(x) avec une seule couche cachée, multiplie élément par élément (noté ʘ) les matrices de poids W et V avec des masques binaires M, W et M V.

h(x) = g((W ʘM W)x+b), y = f((V ʘ MV)h(x)+c)

Pour injecter la structure prescrite par A, il suffit de trouver les matrices de masque appropriées MW et M V.

L’idée clé est alors que l’injection de structure dans un réseau de neurones se résume à un problème de factorisation matricielle binaire. Nous formulons formellement le problème comme suit : 

Given an adjacency matrix A∈{0,1 }d × d and a neural network with L hidden layers, each with h1, h2, …, hL (≥ d) hidden units, we want to factor A into mask matrices M1 {0, 1}h1×d, M2 {0, 1}h2xh1, …, ML {0, 1}d × hL such that A’ ~ A where A’ = ML × … × M2 × M1. We use the notation A’ ~ A to denote that matrices A’ and A share the same sparsity pattern, i.e.: exact same locations of zeros and non-zeros. (Overloading notation here – it doesn’t mean matrix similarity like in linear algebra!) Note that here A is a binary matrix and A’ is an integer matrix. We then mask the neural network’s hidden layers using M1, M2, …, ML through element-wise multiplication like in the above equation to obtain a Structured Neural Network (StrNN), which respects the independence constraints prescribed by A. The value of each entry A’ij thus corresponds to the number of connections flowing from input xj to output i in the StrNN.

La factorisation binaire matricielle est elle-même un problème NP-difficile. Bien qu’il existe beaucoup de littérature existante, elle se concentre surtout sur la recherche de facteurs de bas rang tout en minimisant les pertes lors de la reconstruction. Dans notre cas, nous avons besoin de zéro perte lors de la reconstruction si nous voulons respecter la structure donnée par A, donc nous devons trouver nos propres façons de factoriser.

L’identification est aussi un enjeu. Lorsque les tailles des couches cachées sont grandes, il existe de nombreux masques possibles avec la même matrice d’adjacence. Nous devons donc spécifier des objectifs d’optimisation, qui sont directement liés à l’architecture du réseau de neurones. Par exemple, dans cet article, nous testons principalement l’hypothèse selon laquelle maximiser le nombre de chemins restants dans notre réseau de neurones masqués conduit à une meilleure expressivité et généralisation. En s’appuyant sur cette idée, nous explorons deux objectifs. Le premier peut être vu dans l’équation 2 ci-dessous :

Il maximise la somme de toutes les entrées de A'. Comme nous l’avons mentionné plus tôt, cela équivaut à maximiser le total des chemins entre toutes les entrées et sorties dans le StrNN. Un deuxième objectif que nous considérons est l’équation 3 :

Ici, nous ajoutons un terme de pénalité de variance, afin que les chemins restants ne soient pas trop concentrés sur une seule sortie. Grâce à des évaluations empiriques de divers ensembles de données synthétiques, nous concluons que la pénalité supplémentaire de variance ne fait pas une différence significative dans la performance d’estimation de la densité de StrNN, donc nous adoptons l’Équation 2 comme objectif pour le reste du projet.

Nous passons maintenant aux méthodes de résolution du problème de factorisation matricielle binaire. Nous pouvons trouver des solutions exactes pour maximiser les équations 2 et 3 via la programmation entière, mais empiriquement, elle est prohibitivement lente pour les grandes dimensions d’entrée (par exemple : d ≥ 20). Par conséquent, nous proposons un algorithme avide simple et efficace qui approxime l’objectif d’optimisation (Équation 2) mais ne conserve aucune perte de reconstruction en ce qui concerne le schéma de rareté de la matrice d’adjacence A. Le pseudocode de notre algorithme est décrit dans l’Algorithme 1 de notre article, et nous fournissons ci-dessous une visualisation pour un exemple de matrice d’adjacence.

Figure 2 : Une illustration visuelle de l’algorithme 1 : nous visons à trouver des masques binaires appropriés à partir de la matrice d’adjacence A. À l’étape 1, nous remplissons le premier masque en copiant des lignes non nulles de A -en répétant si nécessaire, jusqu’à ce que toutes les lignes soient remplies. À l’étape 2, on remplit le deuxième masque dans le but de garder le plus de 1 possible. Prenons la dernière ligne par exemple : on initialise d’abord les lignes à tous les 1. On observe que dans la dernière rangée de A, il y a des 0 dans la première et la dernière colonne. Nous trouvons ensuite les emplacements uniques des 1 dans la première et la dernière colonne du premier masque, en les mettant à zéro dans la dernière ligne du second masque, de sorte que le produit des deux masques respecte toujours la parciune donnée par la dernière ligne de A. Nous répétons cette procédure pour toutes les rangées du deuxième masque.

Voyons maintenant quelques applications de StrNN.

La normalisation des flux est un cadre populaire pour l’estimation de la densité de probabilité et les tâches de modélisation générative. Il appartient à un sous-ensemble de modèles d’estimation de densité qui présentent le problème comme l’apprentissage de fonctions complexes entre des espaces de haute dimension. En particulier, le cadre de normalisation des flux apprend les applications inversibles entre une distribution de base simple et une distribution cible complexe. Cela permet une estimation de la vraisemblance simple et efficace ainsi qu’une génération d’échantillons. Il n’est donc pas difficile de comprendre pourquoi nous voudrions utiliser les dépendances conditionnelles connues entre les variables d’entrée lors de l’entraînement d’un flux. Nous le faisons en utilisant StrNN pour imposer des invariances fonctionnelles dans les réseaux d’écoulement.

La classe la plus naturelle d’écoulements de normalisation à étendre est celle des écoulements autorégressifs (ARF 3), qui impose une structure autorégressive entre les entrées et les sorties afin que la formule de changement de variable de probabilité, centrale au calcul des densités de probabilité, soit facile à calculer. En remplaçant les conditionneurs autorégressifs dans les ARF par StrNN, nous pouvons encoder des énoncés d’indépendance supplémentaires pour améliorer à la fois l’estimation de la vraisemblance et la qualité de génération des échantillons. Nous appelons cela le flux autorégressif structuré (StrAF), comme on le voit à la figure 3. Sur la base d’un raisonnement similaire, nous introduisons une structure à un écoulement de normalisation continue appelé FFJORD4 en utilisant StrNN pour paramétrer l’équation différentielle qui décrit la dynamique génératrice de données continues. La figure 4 montre une comparaison des échantillons générés par StrAF, StrCNF et les références.

Figure 3 : Le StrAF injecte une adjacence prescrite à chaque étape de flux à l’aide d’un conditionneur StrNN. La StrAF ne permute pas les variables latentes, ce qui permet de respecter la matrice d’adjacence tout au long du flux.
Figure 4 : Les échantillons générés par le modèle sont présentés en points bleus pour les dimensions sélectionnées au hasard. La densité de vérité fondamentale est visualisée par les contours orange.

Lors de l’injection de structure, StrAF et StrCNF héritent tous deux de l’efficacité de StrNN grâce à notre choix de masquage de poids. Plus précisément, la sortie du StrNN peut être calculée avec un seul passage avant à travers le réseau. En comparaison, les approches de masquage d’entrée comme la ligne de base Graphical NormalizingFlows 5 doivent effectuer d passages avant pour calculer la sortie d’un seul datum. Cela empêche non seulement l’application efficace du masquage d’entrée aux données de haute dimension, mais constitue aussi un obstacle à l’intégration de la méthode avec certaines architectures. Par exemple, FFJORD nécessite déjà de nombreuses évaluations de réseaux de neurones pour résoudre numériquement l’EDO définissant la carte de flux, donc effectuer d passes par évaluation est particulièrement inefficace. Cela fait de notre StrNN la manière la plus simple et la plus efficace d’injecter de la structure dans ce type d’écoulement continu.

Nous appliquons également la StrAF à l’estimation de l’effet causal. Nous nous appuyons sur des travaux antérieurs (Causal AutoregressiveFlows 6) qui modélisent les modèles d’équations structurelles comme des écoulements affines, ce qui mène à des théorèmes d’identification favorables. Dans la Figure 5, les résultats expérimentaux montrent que tirer parti de la structure d’indépendance exacte améliore la performance sur les requêtes interventionnelles et contrefactuelles pour de nombreuses variables.

Figure 5 : Évaluations des prédictions causales (à gauche : interventions; à droite : contrefactuels) sur des SEM à 5 et 10 variables réalisées par StrAF et CAREFL. La performance est mesurée par l’erreur quadratique moyenne totale correspondante avec un écart-type sur dix passages. (a) mesure l’erreur de la valeur attendue d’une variable sous différentes interventions, tandis que (b) calcule l’erreur en dérivant des valeurs contrafactuelles sous différents échantillons observés et requêtes.

Conclusion

Nous avons introduit le réseau neuronal structuré, un approximateur de fonction qui nous permet d’injecter une structure variable arbitraire par masquage de poids. Nous avons présenté le masquage des poids comme un problème de factorisation matricielle binaire et proposé divers algorithmes pour le résoudre. Nous avons appliqué des réseaux de neurones structurés à la normalisation des écoulements pour améliorer l’estimation de la densité et la modélisation générative, ce qui nous offre aussi un outil puissant pour modéliser les modèles d’équations structurelles pour l’estimation des effets causals.

Travaux futurs

Dans nos travaux, nous avons démontré l’avantage plug-and-play du StrNN en l’intégrant dans des architectures de flux pour effectuer l’estimation de la densité. De même, le StrNN peut aussi être facilement intégré à d’autres architectures SOTA existantes pour imposer une structure connue pour diverses tâches. Nous croyons que l’extension vers les modèles de diffusion, l’inférence variationnelle et même l’apprentissage supervisé pourraient être des pistes prometteuses pour de futurs travaux.

Références

[1] Zaheer, Manzil, Satwik Kottur, Siamak Ravanbakhsh, Barnabas Poczos, Russ R. Salakhutdinov et Alexander J. Smola. « Des couches profondes. » Dans Advances in neural information processing systems 30 (2017).

[2] Germain, Mathieu, Karol Gregor, Iain Murray et Hugo Larochelle. « Fabriqué : Autoencodeur masqué pour l’estimation de la distribution. » Dans la conférence internationale sur l’apprentissage automatique, pp. 881-889. PMLR, 2015.

[3] Huang, Chin-Wei, David Krueger, Alexandre Lacoste et Aaron Courville. « Flux autorégressifs neuronaux. » Dans la Conférence internationale sur l’apprentissage automatique, pp. 2078-2087. PMLR, 2018.

[4] Grathwohl, Will, Ricky TQ Chen, Jesse Bettencourt, Ilya Sutskever et David Duvenaud. « Ffjord : Dynamique continue libre pour des modèles génératifs réversibles et évolutifs. » Prépublication arXiv arXiv :1810.01367 (2018).

[5] Wehenkel, Antoine et Gilles Louppe. « Flux de normalisation graphique. » Dans la Conférence internationale sur l’intelligence artificielle et les statistiques, pp. 37-45. PMLR, 2021.

[6] Khemakhem, Ilyes, Ricardo Monti, Robert Leech et Aapo Hyvarinen. « Flux autorégressifs causaux. » Dans la conférence internationale sur l’intelligence artificielle et les statistiques, pp. 3520-3528. PMLR, 2021.

À lire aussi :

2026
Réflexions
Recherche
Recherche 2026

La nouvelle cartographie de l’invisible

Les femmes écrivent sur un tableau blanc. Il y a un homme à sa gauche qui regarde le tableau.
2025
Recherche
Recherche 2025

Les chercheurs en vecteurs font avancer les frontières de l’IA avec 80 articles au NeurIPS 2025

Logo vectoriel
2025
Réflexions

Une nouvelle étude révèle l’impact économique de 100 milliards de dollars de l’IA à travers le Canada, avec l’Ontario en tête