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 gradienti utilizzando la differenziazione automatica e scalabilità su set di dati e modelli di grandi dimensioni con accelerazione hardware (GPU) e calcolo distribuito.
Per iniziare con TensorFlow Probability, consulta la guida all'installazione e visualizza i tutorial del notebook Python .
Componenti
I nostri strumenti probabilistici di machine learning sono strutturati come segue:
Livello 0: TensorFlow
Le operazioni numeriche , in particolare la classe LinearOperator
, consentono implementazioni prive di matrice che possono sfruttare una particolare struttura (diagonale, di basso rango, 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 statistiche correlate con semantica batch e broadcast . - Bijectors (
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 deep learning come i 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, dai un'occhiata a questa collaborazione - Livelli probabilistici (
tfp.layers
): livelli di rete neurale con incertezza sulle funzioni che rappresentano, che estendono i livelli di 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 con camminata 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 stocastica, estensione degli ottimizzatori TensorFlow. Include la dinamica Langevin del 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 del notebook Python elencati nella navigazione, sono disponibili alcuni script di esempio:
- Autocodificatori variazionali: apprendimento della rappresentazione con un codice latente e inferenza variazionale.
- Codificatore automatico quantizzato vettoriale: apprendimento della rappresentazione discreta con quantizzazione vettoriale.
- Reti neurali bayesiane : reti neurali con incertezza sui loro pesi.
- 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 .