Cette page a été traduite par l'API Cloud Translation.
Switch to English

Treillis TensorFlow (TFL)

TensorFlow Lattice est une bibliothèque qui implémente des modèles basés sur des treillis flexibles, contrôlés et interprétables. La bibliothèque vous permet d'injecter des connaissances du domaine dans le processus d'apprentissage via des contraintes de forme de bon sens ou axées sur des politiques. Cela se fait en utilisant une collection de couches Keras qui peuvent satisfaire des contraintes telles que la monotonie, la convexité et la confiance par paires. La bibliothèque fournit également des estimateurs prédéfinis faciles à configurer.

Concepts

Cette section est une version simplifiée de la description dans les tableaux de recherche interpolés calibrés monotoniques , JMLR 2016.

Treillis

Un treillis est une table de recherche interpolée qui peut approximer des relations d'entrée-sortie arbitraires dans vos données. Il chevauche une grille régulière sur votre espace d'entrée et apprend des valeurs pour la sortie dans les sommets de la grille. Pour un point de test $ x $, $ f (x) $ est interpolé linéairement à partir des valeurs de réseau entourant $ 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 coins de l'espace d'entrée; le reste de la fonction est interpolé à partir de ces paramètres.

La fonction $ f (x) $ peut capturer des interactions non linéaires entre des entités. Vous pouvez considérer les paramètres du treillis comme la hauteur des pôles placés dans le sol sur une grille régulière, et la fonction qui en résulte est comme un tissu serré contre les quatre pôles.

Avec des entités $ D $ et 2 sommets le long de chaque dimension, un treillis régulier aura des paramètres $ 2 ^ D $. Pour adapter une fonction plus flexible, vous pouvez spécifier un treillis à grain plus fin sur l'espace d'entités avec plus de sommets le long de chaque cote. Les fonctions de régression en treillis sont continues et infiniment différentiables par morceaux.

Étalonnage

Disons que l'exemple de réseau précédent représente le bonheur d'un utilisateur appris avec un café local suggéré calculé à l'aide de fonctionnalités:

  • prix du café, compris entre 0 et 20 dollars
  • distance de l'utilisateur, entre 0 et 30 kilomètres

Nous voulons que notre modèle apprenne le bonheur des utilisateurs avec une suggestion de café local. Les modèles de treillis TensorFlow peuvent utiliser des fonctions linéaires par morceaux (avec tfl.layers.PWLCalibration ) pour calibrer et normaliser les entités d'entrée dans la plage acceptée par le treillis: 0,0 à 1,0 dans l'exemple de treillis ci-dessus. Les exemples suivants montrent des fonctions d'étalonnage avec 10 points-clés:

Il est souvent judicieux d'utiliser les quantiles des caractéristiques comme points-clés d'entrée. Les estimateurs prédéfinis TensorFlow Lattice peuvent définir automatiquement les points-clés d'entrée sur les quantiles de caractéristiques.

Pour les fonctionnalités catégoriques, TensorFlow Lattice fournit un étalonnage catégoriel (avec tfl.layers.CategoricalCalibration ) avec une délimitation de sortie similaire pour alimenter un treillis.

Ensembles

Le nombre de paramètres d'une couche de treillis augmente de façon exponentielle avec le nombre d'entités en entrée, donc ne s'adapte pas bien à des dimensions très élevées. Pour surmonter cette limitation, TensorFlow Lattice propose des ensembles de treillis qui combinent (en moyenne) plusieurs minuscules treillis, ce qui permet au modèle de croître linéairement en nombre d'entités.

La bibliothèque propose deux variantes de ces ensembles:

  • Random Tiny Lattices (RTL): chaque sous-modèle utilise un sous-ensemble aléatoire de fonctionnalités (avec remplacement).

  • Crystals : l'algorithme Crystals entraîne d'abord un modèle de pré - ajustement qui estime les interactions de caractéristiques par paires. Il organise ensuite l'ensemble final de telle sorte que les entités avec plus d'interactions non linéaires soient dans les mêmes réseaux.

Pourquoi TensorFlow Lattice?

Vous pouvez trouver une brève introduction à TensorFlow Lattice dans ce billet de blog TF .

Interprétabilité

Étant donné que les paramètres de chaque couche sont 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

En utilisant des treillis à grain fin, vous pouvez obtenir des fonctions arbitrairement complexes avec une seule couche de treillis. L'utilisation de plusieurs couches de calibrateurs et de treillis fonctionne souvent bien dans la pratique et peut égaler ou surpasser les modèles DNN de tailles similaires.

Contraintes de forme de sens commun

Les données d'entraînement du monde réel peuvent ne pas représenter suffisamment les données d'exécution. Les solutions ML flexibles telles que les DNN ou les forêts agissent souvent de manière inattendue et même brutale dans les parties de l'espace d'entrée non couvertes par les données d'apprentissage. Ce comportement est particulièrement problématique lorsque les politiques ou les contraintes d'équité peuvent être violées.

Même si les formes courantes de régularisation peuvent aboutir à une extrapolation plus judicieuse, les régulariseurs standard ne peuvent pas garantir un comportement raisonnable du modèle dans tout l'espace d'entrée, en particulier avec des entrées de grande dimension. Le passage à des modèles plus simples avec un comportement plus contrôlé et prévisible peut entraîner un coût élevé pour 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 via des contraintes de forme sémantiquement significatives, de bon sens ou axées sur les politiques:

  • Monotonicité : vous pouvez spécifier que la sortie ne doit augmenter / diminuer que par rapport à une entrée. Dans notre exemple, vous souhaiterez peut-être spécifier qu'une distance accrue par rapport à un café ne devrait diminuer que la préférence utilisateur prévue.

  • Convexité / Concavité : vous pouvez spécifier que la forme de la fonction peut être convexe ou concave. Mélangé avec la monotonie, cela peut forcer la fonction à représenter des rendements décroissants par rapport à une caractéristique donnée.

  • Unimodalité : vous pouvez spécifier que la fonction doit avoir un pic unique ou une vallée unique. Cela vous permet de représenter des fonctions qui ont un sweet spot par rapport à une fonction.

  • Confiance par paires: cette contrainte fonctionne sur une paire d'entités et suggère qu'une entité d'entrée reflète sémantiquement la confiance dans une autre entité. Par exemple, un nombre plus élevé d'avis vous rend plus confiant dans la note moyenne d'un restaurant. Le modèle sera plus sensible en ce qui concerne le classement par étoiles (c'est-à-dire aura une pente plus grande par rapport au classement) lorsque le nombre d'avis est plus élevé.

Flexibilité contrôlée avec les régularisateurs

En plus des contraintes de forme, le treillis TensorFlow fournit un certain nombre de régularisateurs pour contrôler la flexibilité et la régularité de la fonction pour chaque couche.

  • Régulariseur laplacien : Les sorties du treillis / des sommets / points-clés de calibration sont régularisées vers les valeurs de leurs voisins respectifs. Il en résulte une fonction plus plate .

  • Régulariseur de Hesse : Cela pénalise le premier dérivé de la couche d'étalonnage PWL pour rendre la fonction plus linéaire .

  • Régulateur de rides : Cela pénalise la deuxième dérivée de la couche d'étalonnage PWL pour éviter des changements soudains de courbure. Cela rend la fonction plus fluide.

  • Régulariseur de torsion : les sorties du treillis seront régularisées pour empêcher la torsion parmi les entités. En d'autres termes, le modèle sera régularisé vers l'indépendance entre les apports des fonctionnalités.

Mélanger et assortir avec d'autres couches 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, des couches d'étalonnage en treillis ou PWL peuvent être utilisées à la dernière couche de réseaux plus profonds qui incluent des plongements ou d'autres couches Keras.

Papiers

Tutoriels et documents sur l'API

Pour les architectures de modèles courantes, vous pouvez utiliser des modèles prédéfinis Keras ou des estimateurs prédéfinis . Vous pouvez également créer des modèles personnalisés à l'aide de couches TF Lattice Keras ou mélanger et assortir avec d'autres couches Keras. Consultez la documentation complète de l'API pour plus de détails.