TensorFlow Lattice est une bibliothèque qui implémente des modèles de type treillis flexibles, contrôlés et interprétables. Elle permet d'intégrer des connaissances du domaine au processus d'apprentissage grâce à des contraintes de forme intuitives ou pilotées par des politiques. Ceci est réalisé à l'aide d'une collection de couches Keras capables de satisfaire des contraintes telles que la monotonie, la convexité et la confiance par paires. La bibliothèque fournit également des modèles prédéfinis faciles à configurer.
Concepts
Cette section est une version simplifiée de la description figurant dans Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.
Réseaux
Un treillis est une table de consultation interpolée qui peut approximer des relations entrée-sortie arbitraires dans vos données. Il superpose une grille régulière à votre espace d'entrée et apprend les valeurs de sortie aux sommets de la grille. Pour un point de test \(x\), \(f(x)\) est interpolée linéairement à partir des valeurs du réseau environnant \(x\).

L'exemple simple ci-dessus est une fonction avec 2 caractéristiques d'entrée et 4 paramètres :\(\theta=[0, 0.2, 0.4, 1]\), qui sont les valeurs de la fonction aux extrémités de l'espace d'entrée ; le reste de la fonction est interpolé à partir de ces paramètres.
La fonction \(f(x)\) Ce modèle permet de capturer les interactions non linéaires entre les éléments. On peut se représenter les paramètres du réseau comme la hauteur de poteaux plantés dans le sol selon une grille régulière, et la fonction résultante comme un tissu tendu contre ces quatre poteaux.
Avec \(D\) Avec 2 sommets le long de chaque dimension, un réseau régulier aura \(2^D\) Pour ajuster une fonction plus flexible, vous pouvez spécifier un treillis plus fin sur l'espace des caractéristiques, avec davantage de sommets le long de chaque dimension. Les fonctions de régression sur treillis sont continues et infiniment différentiables par morceaux.
Étalonnage
Supposons que le treillis d'exemple précédent représente le niveau de satisfaction d'un utilisateur, appris, concernant un café local suggéré, calculé à l'aide de caractéristiques :
- prix du café, dans une fourchette de 0 à 20 dollars
- distance à l'utilisateur, dans une plage de 0 à 30 kilomètres
Nous souhaitons que notre modèle apprenne à évaluer la satisfaction des utilisateurs grâce à la suggestion d'un café local. Les modèles TensorFlow Lattice peuvent utiliser des fonctions linéaires par morceaux (avec tfl.layers.PWLCalibration ) pour calibrer et normaliser les caractéristiques d'entrée dans la plage acceptée par le réseau : de 0,0 à 1,0 dans l'exemple ci-dessus. Les exemples suivants illustrent de telles fonctions de calibration avec 10 points clés :


Il est souvent judicieux d'utiliser les quantiles des caractéristiques comme points clés d'entrée. Les modèles prédéfinis de TensorFlow Lattice peuvent définir automatiquement les points clés d'entrée sur les quantiles des caractéristiques.
Pour les caractéristiques catégorielles, TensorFlow Lattice fournit un étalonnage catégoriel (avec tfl.layers.CategoricalCalibration ) avec une limite de sortie similaire pour alimenter un réseau.
Ensembles
Le nombre de paramètres d'une couche de réseau augmente exponentiellement avec le nombre de caractéristiques d'entrée, ce qui limite son passage à l'échelle aux très grandes dimensions. Pour pallier cette limitation, TensorFlow Lattice propose des ensembles de réseaux qui combinent (moyennent) plusieurs petits réseaux, permettant ainsi au modèle de croître linéairement avec le nombre de caractéristiques.
La bibliothèque propose deux variantes de ces ensembles :
Réseaux minuscules aléatoires (RTL) : Chaque sous-modèle utilise un sous-ensemble aléatoire de caractéristiques (avec remise).
Crystals : L’algorithme Crystals commence par entraîner un modèle de pré-apprentissage qui estime les interactions entre paires de caractéristiques. Il organise ensuite l’ensemble final de sorte que les caractéristiques présentant davantage d’interactions non linéaires se trouvent dans les mêmes réseaux.
Pourquoi TensorFlow Lattice ?
Vous trouverez une brève introduction à TensorFlow Lattice dans cet article du blog TF .
Interprétabilité
Étant donné que les paramètres de chaque couche correspondent à la sortie de cette couche, il est facile d'analyser, de comprendre et de déboguer chaque partie du modèle.
Modèles précis et flexibles
L'utilisation de réseaux à granularité fine permet d'obtenir des fonctions d'une complexité arbitraire avec une seule couche. En pratique, l'emploi de plusieurs couches de calibrateurs et de réseaux donne souvent d'excellents résultats et peut égaler, voire surpasser, les performances des modèles de réseaux de neurones profonds de taille similaire.
Contraintes de forme de bon sens
Les données d'entraînement réelles peuvent ne pas être suffisamment représentatives des données d'exécution. Les solutions d'apprentissage automatique flexibles, telles que les réseaux de neurones profonds ou les forêts d'arbres, ont souvent un comportement imprévisible, voire erratique, dans les parties de l'espace d'entrée non couvertes par les données d'entraînement. Ce comportement est particulièrement problématique lorsque les contraintes de politique ou d'équité risquent d'être enfreintes.

Bien que les formes courantes de régularisation puissent conduire à une extrapolation plus pertinente, les régulariseurs standards ne garantissent pas un comportement raisonnable du modèle sur l'ensemble de l'espace d'entrée, en particulier pour les entrées de grande dimension. Le passage à des modèles plus simples, au comportement plus contrôlé et prévisible, peut fortement dégrader la précision du modèle.
TF Lattice permet de continuer à utiliser des modèles flexibles, mais offre plusieurs options pour injecter des connaissances du domaine dans le processus d'apprentissage grâce à des contraintes de forme sémantiquement significatives, de bon sens ou axées sur des politiques :
- Monotonie : Vous pouvez spécifier que la sortie ne doit augmenter ou diminuer qu’en fonction d’une entrée. Dans notre exemple, vous pouvez indiquer qu’une distance accrue jusqu’à un café ne doit diminuer que la préférence prédite de l’utilisateur.




Convexité/Concavité : Vous pouvez spécifier que la forme de la fonction est convexe ou concave. Combinée à la monotonie, cette propriété peut contraindre la fonction à représenter des rendements décroissants par rapport à une caractéristique donnée.
Unimodalité : Vous pouvez spécifier que la fonction doit présenter un pic ou un creux unique. Cela vous permet de représenter des fonctions qui présentent un point optimal par rapport à une caractéristique donnée.
Confiance par paire : Cette contrainte s'applique à une paire de caractéristiques et suggère qu'une caractéristique reflète sémantiquement la confiance accordée à une autre. Par exemple, un nombre élevé d'avis renforce la confiance dans la note moyenne d'un restaurant. Le modèle sera plus sensible à la note (c'est-à-dire que sa pente sera plus forte) lorsque le nombre d'avis est plus élevé.
Flexibilité contrôlée avec régulateurs
En plus des contraintes de forme, TensorFlow lattice fournit un certain nombre de régulariseurs pour contrôler la flexibilité et la régularité de la fonction pour chaque couche.
Régularisation laplacienne : les sorties des sommets/points clés du réseau/de calibration sont régularisées par rapport aux valeurs de leurs voisins respectifs. Il en résulte une fonction plus plate .
Régularisateur hessien : Il pénalise la première dérivée de la couche d'étalonnage PWL pour rendre la fonction plus linéaire .
Régularisateur de rides : Ce correcteur pénalise la dérivée seconde de la couche d’étalonnage PWL afin d’éviter les variations brusques de courbure. Il lisse ainsi la fonction.
Régularisation de la torsion : Les sorties du réseau seront régularisées afin d’éviter la torsion entre les caractéristiques. Autrement dit, le modèle sera régularisé pour assurer l’indépendance des contributions des caractéristiques.
Combinez et associez avec d'autres calques Keras
Vous pouvez utiliser les couches TF Lattice en combinaison avec d'autres couches Keras pour construire des modèles partiellement contraints ou régularisés. Par exemple, les couches d'étalonnage Lattice ou PWL peuvent être utilisées à la dernière couche des réseaux profonds incluant des plongements lexicaux ou d'autres couches Keras.
Papiers
- Éthique déontologique par contraintes de forme monotones , Serena Wang, Maya Gupta, Conférence internationale sur l'intelligence artificielle et les statistiques (AISTATS), 2020
- Contraintes de forme pour les fonctions d'ensemble , Andrew Cotter, Maya Gupta, H. Jiang, Erez Louidor, Jim Muller, Taman Narayan, Serena Wang, Tao Zhu. Conférence internationale sur l'apprentissage automatique (ICML), 2019
- Contraintes de forme à rendements décroissants pour l'interprétabilité et la régularisation , Maya Gupta, Dara Bahri, Andrew Cotter, Kevin Canini, Advances in Neural Information Processing Systems (NeurIPS), 2018
- Réseaux de neurones profonds et fonctions partiellement monotones , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2017
- Fonctions monotones rapides et flexibles avec des ensembles de réseaux , Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2016
- Tables de consultation interpolées calibrées monotones , Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016
- Régression optimisée pour une évaluation efficace des fonctions , Eric Garcia, Raman Arora, Maya R. Gupta, IEEE Transactions on Image Processing, 2012
- Régression sur réseau , Eric Garcia, Maya Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2009
Tutoriels et documentation API
Pour les architectures de modèles courantes, vous pouvez utiliser les modèles prédéfinis de Keras . Vous pouvez également créer des modèles personnalisés à l'aide des couches Keras de TF Lattice ou les combiner avec d'autres couches Keras. Consultez la documentation complète de l'API pour plus de détails.