Rejoignez TensorFlow à Google I/O, du 11 au 12 mai. Inscrivez-vous maintenant

Réseau 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 de la connaissance de domaine dans le processus d'apprentissage par le sens commun ou inspiration politique des contraintes de forme . Cela se fait à l' aide d' une collection de couches KERAS qui peuvent satisfaire des contraintes telles que monotonicité, convexité et la confiance de par paires. La bibliothèque offre également facile à installer estimateurs en conserve .

notions

Cette section est une version simplifiée de la description dans Monotonic Calibré interpolée Tables Look-Up , JMLR 2016.

Treillis

Un réseau est une table de consultation interpolée qui peut rapprocher les relations entrées-sorties arbitraires dans vos données. Il chevauche une grille régulière sur votre espace d'entrée et apprend les valeurs pour la sortie dans les sommets de la grille. Pour un point de test \(x\), \(f(x)\) est interpolée de façon linéaire à partir des valeurs treillis entourant \(x\).

L'exemple simple ci - dessus est une fonction de 2 fonctions d'entrée et 4 paramètres:\(\theta=[0, 0.2, 0.4, 1]\), qui sont des valeurs dans les coins de l'espace d'entrée de la fonction; le reste de la fonction est interpolé à partir de ces paramètres.

La fonction \(f(x)\) peut capturer des interactions non linéaires entre les fonctions. Vous pouvez considérer les paramètres de réseau comme la hauteur des poteaux fixés dans le sol sur une grille régulière, et la fonction résultante est comme un tissu serré contre les quatre poteaux.

Avec \(D\) caractéristiques et 2 sommets le long de chaque dimension, un réseau régulier aura \(2^D\) paramètres. Pour adapter une fonction plus flexible, vous pouvez spécifier un réseau à grain plus fin sur l'espace des entités avec plus de sommets le long de chaque dimension. Les fonctions de régression sur réseau sont continues et infiniment dérivables par morceaux.

Étalonnage

Disons que le réseau échantillon précédent représente un bonheur utilisateur appris avec un café local suggéré calculée en utilisant les caractéristiques:

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

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

C'est souvent une bonne idée d'utiliser les quantiles des caractéristiques comme points clés d'entrée. Tensorflow treillis estimateurs en conserve peuvent régler automatiquement les points clés d'entrée à la fonction quantile.

Pour connaître les caractéristiques nominales, tensorflow Lattice fournit étalonnage catégorique (avec tfl.layers.CategoricalCalibration ) délimitant avec des résultats similaires à alimentation dans un réseau.

Ensembles

Le nombre de paramètres d'une couche de réseau augmente de façon exponentielle avec le nombre d'entités en entrée, ce qui ne permet pas une bonne mise à l'échelle vers des dimensions très élevées. Pour surmonter cette limitation, tensorflow Lattice offre des ensembles de réseaux qui combinent (moyenne) plusieurs petits réseaux, ce qui permet au modèle de croître de façon linéaire dans le nombre de caractéristiques.

La bibliothèque propose deux variantes de ces ensembles :

  • Au hasard minuscules Treillis (RTL): Chaque sous - modèle utilise un sous - ensemble aléatoire de caractéristiques (avec remplacement).

  • Cristaux: Les cristaux Algorithm premiers trains un modèle que les estimations autoradio prémonté interactions caractéristique deux à deux. Il organise ensuite l'ensemble final de telle sorte que les entités avec plus d'interactions non linéaires se trouvent dans les mêmes réseaux.

Pourquoi le treillis TensorFlow ?

Vous trouverez une brève introduction à tensorflow Lattice dans cette TF Blog post .

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

Utilisant des treillages grains fins, vous pouvez obtenir des fonctions complexes de façon arbitraire avec une couche de réseau unique. L'utilisation de plusieurs couches de calibrateurs et de réseaux 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 de ML flexibles telles que les DNN ou les forêts agissent souvent de manière inattendue et même sauvage dans des parties de l'espace d'entrée non couvertes par les données d'apprentissage. Ce comportement est particulièrement problématique lorsque des contraintes de politique ou d'équité peuvent être violées.

Même si les formes courantes de régularisation peuvent entraîner une extrapolation plus sensée, les régularisations 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 avoir un coût considérable pour la précision du modèle.

TF Lattice permet de continuer à utiliser des modèles flexibles, mais fournit plusieurs options pour injecter de la connaissance de domaine dans le processus d'apprentissage par le biais de sens commun ou de finalité politique sémantiquement significative des contraintes de forme :

  • Monotonie: Vous pouvez spécifier que la sortie ne devrait augmenter / diminuer par rapport à une entrée. Dans notre exemple, vous souhaiterez peut-être spécifier que l'augmentation de la distance jusqu'à un café ne devrait que diminuer la préférence prédite de l'utilisateur.

  • Convexité / Concavité: Vous pouvez spécifier que la forme de fonction peut être convexe ou concave. Mélangé à 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 vallée unique. Cela vous permet de représenter des fonctions qui ont une tache douce par rapport à une fonction.

  • Confiance par paires: Cette contrainte fonctionne sur une paire de caractéristiques et suggère que une caractéristique d'entrée reflète sémantiquement la confiance dans une autre fonction. Par exemple, un nombre plus élevé d'avis vous rend plus confiant dans le nombre d'étoiles moyen d'un restaurant. Le modèle sera plus sensible par rapport au classement par étoiles (c'est-à-dire qu'il aura une pente plus importante 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 réseau TensorFlow fournit un certain nombre de régulateurs pour contrôler la flexibilité et la fluidité de la fonction pour chaque couche.

  • Laplacien régularisateur: Les sorties du réseau / étalonnage sommets / keypoints sont régularisés vers les valeurs de leurs voisins respectifs. Il en résulte une fonction plus plate.

  • Hessian régularisateur: Cela pénalise la dérivée première de la couche d'étalonnage de PWL pour rendre la fonction plus linéaire.

  • Rides régularisateur: Cela pénalise la dérivée seconde de la couche d'étalonnage de PWL pour éviter des changements brusques de la courbure. Cela rend la fonction plus fluide.

  • Torsion régularisateur: Les sorties du réseau seront régularisés en vue de prévenir la torsion entre les fonctions. En d'autres termes, le modèle sera régularisé vers l'indépendance entre les contributions des caractéristiques.

Mélanger et assortir avec d'autres couches Keras

Vous pouvez utiliser des 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 en treillis ou PWL peuvent être utilisées au niveau de la dernière couche de réseaux plus profonds qui incluent des encastrements ou d'autres couches Keras.

Papiers

Tutoriels et documents API

Pour les architectures de modèle commun, vous pouvez utiliser des modèles KERAS premade ou Estimateurs en conserve . Vous pouvez également créer des modèles personnalisés en utilisant des couches TF treillis KERAS ou mélanger et assortir avec d' autres couches KERAS. Consultez les documents complets de l' API pour plus de détails.