Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

TensorFlow-Gitter (TFL)

TensorFlow Lattice ist eine Bibliothek, die flexible, kontrollierte und interpretierbare gitterbasierte Modelle implementiert. Mit der Bibliothek können Sie Domänenwissen durch vernünftige oder richtliniengesteuerte Formbeschränkungen in den Lernprozess einbringen . Dies erfolgt mithilfe einer Sammlung von Keras-Ebenen , die Einschränkungen wie Monotonie, Konvexität und paarweises Vertrauen erfüllen können. Die Bibliothek bietet auch einfach einzurichtende Schätzer .

Konzepte

Dieser Abschnitt ist eine vereinfachte Version der Beschreibung in Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016.

Gitter

Ein Gitter ist eine interpolierte Nachschlagetabelle, die beliebige Eingabe-Ausgabe-Beziehungen in Ihren Daten approximieren kann. Es überlappt ein reguläres Raster mit Ihrem Eingabebereich und lernt Werte für die Ausgabe in den Scheitelpunkten des Rasters. Für einen Testpunkt $ x $ wird $ f (x) $ linear aus den Gitterwerten interpoliert, die $ x $ umgeben.

Das einfache Beispiel oben ist eine Funktion mit 2 Eingabemerkmalen und 4 Parametern: $ \ theta = [0, 0,2, 0,4, 1] $, die Werte der Funktion an den Ecken des Eingaberaums; Der Rest der Funktion wird aus diesen Parametern interpoliert.

Die Funktion $ f (x) $ kann nichtlineare Wechselwirkungen zwischen Merkmalen erfassen. Sie können sich die Gitterparameter als die Höhe der Pole vorstellen, die in einem regelmäßigen Raster in den Boden eingelassen sind, und die resultierende Funktion ist wie ein Stoff, der fest gegen die vier Pole gezogen wird.

Mit $ D $ -Features und 2 Eckpunkten entlang jeder Dimension hat ein reguläres Gitter $ 2 ^ D $ -Parameter. Um eine flexiblere Funktion anzupassen, können Sie ein feinkörnigeres Gitter über dem Feature-Space mit mehr Scheitelpunkten entlang jeder Dimension angeben. Gitterregressionsfunktionen sind kontinuierlich und stückweise unendlich differenzierbar.

Kalibrierung

Angenommen, das vorhergehende Beispielgitter repräsentiert ein erlerntes Benutzerglück mit einem vorgeschlagenen lokalen Café, das anhand der folgenden Funktionen berechnet wurde:

  • Kaffeepreis im Bereich von 0 bis 20 Dollar
  • Entfernung zum Benutzer im Bereich von 0 bis 30 Kilometern

Wir möchten, dass unser Modell die Benutzerzufriedenheit mit einem lokalen Coffeeshop-Vorschlag lernt. TensorFlow- tfl.layers.PWLCalibration können stückweise lineare Funktionen (mit tfl.layers.PWLCalibration ) verwenden, um die Eingabemerkmale auf den vom Gitter akzeptierten Bereich zu kalibrieren und zu normalisieren: 0,0 bis 1,0 im obigen Beispielgitter. Die folgenden Beispiele zeigen solche Kalibrierungsfunktionen mit 10 Schlüsselpunkten:

Es ist oft eine gute Idee, die Quantile der Features als Eingabe-Schlüsselpunkte zu verwenden. TensorFlow Lattice- Schätzer können die Eingabe-Schlüsselpunkte automatisch auf die Feature-Quantile setzen.

Für kategoriale Merkmale bietet TensorFlow Lattice eine kategoriale Kalibrierung (mit tfl.layers.CategoricalCalibration ) mit einer ähnlichen Ausgangsgrenze für die Einspeisung in ein Gitter.

Ensembles

Die Anzahl der Parameter einer Gitterschicht nimmt exponentiell mit der Anzahl der Eingabemerkmale zu und lässt sich daher nicht gut auf sehr hohe Dimensionen skalieren. Um diese Einschränkung zu überwinden, bietet TensorFlow Lattice Ensembles von Gittern an, die mehrere winzige Gitter (durchschnittlich) kombinieren, wodurch das Modell in der Anzahl der Merkmale linear wachsen kann.

Die Bibliothek bietet zwei Variationen dieser Ensembles:

  • Random Tiny Lattices (RTL): Jedes Submodell verwendet eine zufällige Teilmenge von Features (mit Ersetzung).

  • Kristalle : Der Kristallalgorithmus trainiert zunächst ein Voranpassungsmodell , das paarweise Merkmalsinteraktionen schätzt. Anschließend wird das endgültige Ensemble so angeordnet, dass Merkmale mit mehr nichtlinearen Wechselwirkungen in denselben Gittern liegen.

Warum TensorFlow Lattice?

Eine kurze Einführung in TensorFlow Lattice finden Sie in diesem TF-Blogbeitrag .

Interpretierbarkeit

Da die Parameter jeder Ebene die Ausgabe dieser Ebene sind, ist es einfach, jeden Teil des Modells zu analysieren, zu verstehen und zu debuggen.

Genaue und flexible Modelle

Mit feinkörnigen Gittern können Sie mit einer einzigen Gitterschicht beliebig komplexe Funktionen erhalten. Die Verwendung mehrerer Schichten von Kalibratoren und Gittern funktioniert in der Praxis häufig gut und kann DNN-Modelle ähnlicher Größe anpassen oder übertreffen.

Formbeschränkungen für den gesunden Menschenverstand

Die Trainingsdaten der realen Welt repräsentieren die Laufzeitdaten möglicherweise nicht ausreichend. Flexible ML-Lösungen wie DNNs oder Wälder wirken in Teilen des Eingaberaums, die nicht von den Trainingsdaten abgedeckt werden, häufig unerwartet und sogar wild. Dieses Verhalten ist besonders problematisch, wenn Richtlinien- oder Fairnessbeschränkungen verletzt werden können.

Obwohl gängige Formen der Regularisierung zu einer sinnvolleren Extrapolation führen können, können Standard-Regularisierer kein angemessenes Modellverhalten über den gesamten Eingaberaum garantieren, insbesondere bei hochdimensionalen Eingaben. Die Umstellung auf einfachere Modelle mit kontrolliertem und vorhersehbarem Verhalten kann die Modellgenauigkeit erheblich beeinträchtigen.

TF Lattice ermöglicht die weitere Verwendung flexibler Modelle, bietet jedoch verschiedene Optionen, um Domänenwissen durch semantisch bedeutsame, gesunder Menschenverstand oder politikgesteuerte Formbeschränkungen in den Lernprozess einzubringen:

  • Monotonie : Sie können festlegen, dass die Ausgabe nur in Bezug auf eine Eingabe erhöht / verringert werden soll. In unserem Beispiel möchten Sie möglicherweise angeben, dass eine größere Entfernung zu einem Café nur die vorhergesagte Benutzerpräferenz verringern soll.

  • Konvexität / Konkavität : Sie können festlegen, dass die Funktionsform konvex oder konkav sein kann. Gemischt mit Monotonie kann dies die Funktion zwingen, abnehmende Renditen in Bezug auf ein bestimmtes Merkmal darzustellen.

  • Unimodalität : Sie können festlegen, dass die Funktion einen eindeutigen Gipfel oder ein eindeutiges Tal haben soll. Auf diese Weise können Sie Funktionen darstellen, die in Bezug auf eine Funktion einen Sweet Spot aufweisen .

  • Paarweises Vertrauen : Diese Einschränkung gilt für zwei Features und legt nahe, dass ein Eingabe-Feature das Vertrauen in ein anderes Feature semantisch widerspiegelt. Eine höhere Anzahl von Bewertungen gibt Ihnen beispielsweise mehr Vertrauen in die durchschnittliche Sternebewertung eines Restaurants. Das Modell ist in Bezug auf die Sternebewertung empfindlicher (dh es hat eine größere Steigung in Bezug auf die Bewertung), wenn die Anzahl der Bewertungen höher ist.

Kontrollierte Flexibilität mit Regularisierern

Zusätzlich zu Formbeschränkungen bietet das TensorFlow-Gitter eine Reihe von Regularisierern, um die Flexibilität und Glätte der Funktion für jede Schicht zu steuern.

  • Laplace-Regularisierer : Die Ausgaben der Gitter- / Kalibrierungsscheitelpunkte / Schlüsselpunkte werden in Richtung der Werte ihrer jeweiligen Nachbarn reguliert. Dies führt zu einer flacheren Funktion.

  • Hessischer Regularisierer : Dies bestraft die erste Ableitung der PWL-Kalibrierungsschicht, um die Funktion linearer zu machen.

  • Wrinkle Regularizer : Dies bestraft die zweite Ableitung der PWL-Kalibrierungsschicht, um plötzliche Änderungen der Krümmung zu vermeiden. Dies macht die Funktion flüssiger.

  • Torsions-Regularisierer : Die Ausgänge des Gitters werden reguliert, um eine Torsion zwischen den Merkmalen zu verhindern. Mit anderen Worten, das Modell wird in Richtung Unabhängigkeit zwischen den Beiträgen der Merkmale reguliert.

Mischen und mit anderen Keras-Ebenen kombinieren

Sie können TF-Gitterebenen in Kombination mit anderen Keras-Ebenen verwenden, um teilweise eingeschränkte oder regulierte Modelle zu erstellen. Beispielsweise können Gitter- oder PWL-Kalibrierungsschichten auf der letzten Schicht tieferer Netzwerke verwendet werden, die Einbettungen oder andere Keras-Schichten enthalten.

Papiere

Tutorials und API-Dokumente

Für gängige Modellarchitekturen können Sie vorgefertigte Keras-Modelle oder vordefinierte Schätzer verwenden . Sie können auch benutzerdefinierte Modelle mit TF Lattice Keras-Ebenen erstellen oder mit anderen Keras-Ebenen mischen und abgleichen. Weitere Informationen finden Sie in den vollständigen API-Dokumenten .