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 com a Probabilidade do TensorFlow, consulte o guia de instalação e veja os tutoriais do notebook Python .
Componentes
Nossas ferramentas de aprendizado de máquina probabilísticas 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 particular (diagonal, baixa classificação, etc.) para um cálculo eficiente. Ele é criado e mantido pela equipe de Probabilidade do TensorFlow e faz parte do tf.linalg
no TensorFlow principal.
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 lote e semântica de transmissão . - Bijetores (
tfp.bijectors
): Transformações reversíveis e composíveis de variáveis aleatórias. Os bijetores fornecem uma classe rica 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 da 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 aproximar integrais via amostragem. Inclui Hamiltoniano Monte Carlo , metrópole-Hastings de passeio aleatório e a capacidade de construir kernels de transição personalizados. - Inferência
tfp.vi
(tfp.vi
): Algoritmos para aproximar integrais por meio de otimização. - Otimizadores (
tfp.optimizer
): métodos de otimização estocásticos, estendendo otimizadores TensorFlow. Inclui Gradiente Estocástico Langevin Dynamics . - Monte Carlo (
tfp.monte_carlo
): Ferramentas para calcular as expectativas de Monte Carlo.
A Probabilidade do TensorFlow está em desenvolvimento ativo e as interfaces podem mudar.
Exemplos
Além dos tutoriais do notebook Python listados na navegação, existem alguns exemplos de scripts disponíveis:
- Autoencoders Variacionais - Aprendizagem de representação com um código latente e inferência variacional.
- Autoencoder Vector-Quantized - Aprendizado de representação discreta com quantização vetorial.
- Redes Neurais Bayesianas - Redes neurais com incerteza sobre seus pesos.
- Bayesian Logistic Regression - Inferência bayesiana para classificação binária.
Reportar problemas
Relate bugs ou solicitações de recursos usando o rastreador de problemas de probabilidade do TensorFlow .