TensorFlow Probability ist eine Bibliothek für probabilistisches Denken und statistische Analyse in TensorFlow. Als Teil des TensorFlow-Ökosystems bietet TensorFlow Probability die Integration probabilistischer Methoden in tiefe Netzwerke, gradientenbasierte Inferenz durch automatische Differenzierung und Skalierbarkeit für große Datenmengen und Modelle mit Hardwarebeschleunigung (GPUs) und verteilter Berechnung.
Informationen zum Einstieg in TensorFlow Probability finden Sie im Installationshandbuch und in den Python-Notebook-Tutorials .
Komponenten
Unsere probabilistischen Werkzeuge für maschinelles Lernen sind wie folgt aufgebaut:
Schicht 0: TensorFlow
Numerische Operationen - insbesondere die LinearOperator
Klasse - ermöglichen LinearOperator
Implementierungen, die eine bestimmte Struktur (Diagonale, niedriger Rang usw.) für eine effiziente Berechnung ausnutzen können. Es wird vom TensorFlow Probability-Team erstellt und gewartet und ist Teil von tf.linalg
im Kern von TensorFlow.
Schicht 1: Statistische Bausteine
- Verteilungen (
tfp.distributions
): Eine große Sammlung von Wahrscheinlichkeitsverteilungen und zugehörigen Statistiken mit Batch- und Broadcast- Semantik. - Bijektoren (
tfp.bijectors
): Reversible und zusammensetzbare Transformationen von Zufallsvariablen. Bijektoren bieten eine reiche Klasse transformierter Verteilungen, von klassischen Beispielen wie der logarithmischen Normalverteilung bis hin zu hoch entwickelten Deep-Learning-Modellen wie maskierten autoregressiven Flüssen .
Schicht 2: Modellbau
- Gemeinsame Verteilungen (z. B.
tfp.distributions.JointDistributionSequential
): Gemeinsame Verteilungen über eine oder mehrere möglicherweise voneinander abhängige Verteilungen. Eine Einführung in die Modellierung mit denJointDistribution
s von TFPJointDistribution
Sie in dieser Spalte - Probabilistische Schichten (
tfp.layers
): Neuronale Netzwerkschichten mit Unsicherheit über die Funktionen, die sie darstellen, erweitern TensorFlow-Schichten.
Schicht 3: Probabilistische Inferenz
- Markov-Kette Monte Carlo (
tfp.mcmc
): Algorithmen zur Approximation von Integralen durch Abtastung. Beinhaltet Hamiltonian Monte Carlo , Metropolis-Hastings mit zufälligen Schritten und die Möglichkeit, benutzerdefinierte Übergangskerne zu erstellen. - Variationsinferenz (
tfp.vi
): Algorithmen zur Approximation von Integralen durch Optimierung. - Optimierer (
tfp.optimizer
): Stochastische Optimierungsmethoden zur Erweiterung der TensorFlow-Optimierer. Beinhaltet stochastische Gradienten-Langevin-Dynamik . - Monte Carlo (
tfp.monte_carlo
): Tools zur Berechnung der Monte-Carlo-Erwartungen.
TensorFlow Probability befindet sich in der aktiven Entwicklung und die Schnittstellen können sich ändern.
Beispiele
Zusätzlich zu den in der Navigation aufgeführten Python-Notebook-Tutorials stehen einige Beispielskripte zur Verfügung:
- Variations-Autoencoder - Repräsentationslernen mit latentem Code und Variationsinferenz.
- Vektorquantisierter Autoencoder - Diskretes Darstellungslernen mit Vektorquantisierung.
- Bayesianische neuronale Netze - Neuronale Netze mit Unsicherheit über ihre Gewichte.
- Bayesianische logistische Regression - Bayesianische Inferenz für die binäre Klassifizierung.
Probleme melden
Melden Sie Fehler oder Funktionsanforderungen mithilfe des TensorFlow Probability Issue Trackers .