TensorFlow Probability è una libreria per il ragionamento probabilistico e l'analisi statistica in TensorFlow. Come parte dell'ecosistema TensorFlow, TensorFlow Probability fornisce l'integrazione di metodi probabilistici con reti profonde, inferenza basata su gradiente utilizzando la differenziazione automatica e scalabilità a grandi set di dati e modelli con accelerazione hardware (GPU) e calcolo distribuito.
Per iniziare con TensorFlow Probability, vedere la guida all'installazione e visualizzare i tutorial del notebook Python .
Componenti
I nostri strumenti di apprendimento automatico probabilistico sono strutturati come segue:
Livello 0: TensorFlow
Le operazioni numeriche, in particolare la classe LinearOperator
, consentono implementazioni prive di matrice che possono sfruttare una struttura particolare (diagonale, di rango basso, ecc.) Per un calcolo efficiente. È costruito e gestito dal team TensorFlow Probability e fa parte di tf.linalg
nel core TensorFlow.
Livello 1: elementi costitutivi statistici
- Distribuzioni (
tfp.distributions
): un'ampia raccolta di distribuzioni di probabilità e relative statistiche con semantica batch e broadcasting . - Biiettori (
tfp.bijectors
): trasformazioni reversibili e componibili di variabili casuali. I biiettori forniscono una ricca classe di distribuzioni trasformate, da esempi classici come la distribuzione log-normale a sofisticati modelli di apprendimento profondo come flussi autoregressivi mascherati .
Livello 2: costruzione del modello
- Distribuzioni congiunte (ad esempio,
tfp.distributions.JointDistributionSequential
): distribuzioni congiunte su una o più distribuzioni possibilmente interdipendenti. Per un'introduzione alla modellazione conJointDistribution
di TFP, controlla questo colab - Livelli probabilistici (
tfp.layers
): livelli della rete neurale con incertezza sulle funzioni che rappresentano, che estendono i livelli TensorFlow.
Livello 3: inferenza probabilistica
- Catena di Markov Monte Carlo (
tfp.mcmc
): Algoritmi per l'approssimazione degli integrali tramite campionamento. Include Hamiltonian Monte Carlo , Metropolis-Hastings a passeggiata casuale e la possibilità di creare kernel di transizione personalizzati. - Inferenza variazionale (
tfp.vi
): algoritmi per l'approssimazione degli integrali tramite ottimizzazione. - Ottimizzatori (
tfp.optimizer
): metodi di ottimizzazione stocastici, che estendono gli ottimizzatori TensorFlow. Include dinamiche di Langevin a gradiente stocastico . - Monte Carlo (
tfp.monte_carlo
): Strumenti per calcolare le aspettative Monte Carlo.
TensorFlow Probability è in fase di sviluppo attivo e le interfacce potrebbero cambiare.
Esempi
Oltre ai tutorial per notebook Python elencati nella navigazione, sono disponibili alcuni script di esempio:
- Autoencoder variazionali - Apprendimento della rappresentazione con un codice latente e inferenza variazionale.
- Vector-quantizzato Autoencoder apprendimento rappresentazione -Discrete con quantizzazione vettoriale.
- Reti neurali bayesiane: reti neurali con incertezza sul loro peso.
- Regressione logistica bayesiana : inferenza bayesiana per la classificazione binaria.
Segnala problemi
Segnala bug o richieste di funzionalità utilizzando il tracker dei problemi di TensorFlow Probability .