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 gesetzt werden, 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.
Common-Sense-Formbeschränkungen
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 den 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.
Torsionsregularisierer : 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
- Deontologische Ethik durch monotone Formbeschränkungen , Serena Wang, Maya Gupta, Internationale Konferenz für künstliche Intelligenz und Statistik (AISTATS), 2020
- Formbeschränkungen für festgelegte Funktionen , Andrew Cotter, Maya Gupta, H. Jiang, Erez Louidor, Jim Müller, Taman Narayan, Serena Wang, Tao Zhu. Internationale Konferenz über maschinelles Lernen (ICML), 2019
- Abnehmende Renditeformbeschränkungen für Interpretierbarkeit und Regularisierung , Maya Gupta, Dara Bahri, Andrew Cotter, Kevin Canini, Fortschritte in neuronalen Informationsverarbeitungssystemen (NeurIPS), 2018
- Tiefe Gitternetzwerke und partielle monotone Funktionen , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, Fortschritte in neuronalen Informationsverarbeitungssystemen (NeurIPS), 2017
- Schnelle und flexible monotone Funktionen mit Gitterensembles , Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, Fortschritte in neuronalen Informationsverarbeitungssystemen (NeurIPS), 2016
- Monoton kalibrierte interpolierte Nachschlagetabellen, Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016
- Optimierte Regression für eine effiziente Funktionsbewertung , Eric Garcia, Raman Arora, Maya R. Gupta, IEEE-Transaktionen zur Bildverarbeitung, 2012
- Gitterregression , Eric Garcia, Maya Gupta, Fortschritte in neuronalen Informationsverarbeitungssystemen (NeurIPS), 2009
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 .