TensorFlow Probability é uma biblioteca para raciocínio probabilístico e análise estatística no TensorFlow. Como parte do ecossistema TensorFlow, o TensorFlow Probability fornece integração de métodos probabilísticos com redes profundas, inferência baseada em gradiente usando diferenciação automática e escalabilidade para grandes conjuntos de dados e modelos com aceleração de hardware (GPUs) e computação distribuída.
Para começar a usar o TensorFlow Probability, consulte o guia de instalação e veja os tutoriais do notebook Python .
Componentes
Nossas ferramentas probabilísticas de aprendizado de máquina são estruturadas da seguinte forma:
Camada 0: TensorFlow
As operações numéricas — em particular, a classe LinearOperator
— permitem implementações sem matriz que podem explorar uma estrutura específica (diagonal, classificação baixa, etc.) para computação eficiente. Ele é criado e mantido pela equipe de Probabilidade do TensorFlow e faz parte do tf.linalg
no núcleo do TensorFlow.
Camada 1: blocos de construção estatísticos
- Distribuições (
tfp.distributions
): Uma grande coleção de distribuições de probabilidade e estatísticas relacionadas com semântica de lote e transmissão . - Bijetores (
tfp.bijectors
): Transformações reversíveis e combináveis de variáveis aleatórias. Os bijetores fornecem uma rica classe de distribuições transformadas, desde exemplos clássicos como a distribuição log-normal até modelos sofisticados de aprendizado profundo, como fluxos autorregressivos mascarados .
Camada 2: Construção de modelo
- Distribuições conjuntas (por exemplo,
tfp.distributions.JointDistributionSequential
): distribuições conjuntas sobre uma ou mais distribuições possivelmente interdependentes. Para uma introdução à modelagem comJointDistribution
s do TFP, confira este colab - Camadas probabilísticas (
tfp.layers
): Camadas de rede neural com incerteza sobre as funções que representam, estendendo as camadas do TensorFlow.
Camada 3: Inferência Probabilística
- Cadeia de Markov Monte Carlo (
tfp.mcmc
): Algoritmos para aproximação de integrais via amostragem. Inclui o Monte Carlo hamiltoniano , Metropolis-Hastings aleatório e a capacidade de criar kernels de transição personalizados. - Inferência Variacional (
tfp.vi
): Algoritmos para aproximação de integrais por otimização. - Otimizadores (
tfp.optimizer
): métodos de otimização estocástica, estendendo os otimizadores do TensorFlow. Inclui Stochastic Gradient Langevin Dynamics . - Monte Carlo (
tfp.monte_carlo
): Ferramentas para calcular as expectativas de Monte Carlo.
TensorFlow Probability está em desenvolvimento ativo e as interfaces podem mudar.
Exemplos
Além dos tutoriais do notebook Python listados na navegação, há alguns scripts de exemplo disponíveis:
- Variational Autoencoders —Aprendizado de representação com um código latente e inferência variacional.
- Autoencoder quantizado por vetor —Aprendizado de representação discreta com quantização vetorial.
- Redes neurais bayesianas — Redes neurais com incerteza sobre seus pesos.
- Regressão Logística Bayesiana —Inferência bayesiana para classificação binária.
Relatar problemas
Relate bugs ou solicitações de recursos usando o rastreador de problemas de probabilidade do TensorFlow .