TensorFlow Probability — это библиотека для вероятностных рассуждений и статистического анализа в TensorFlow. Являясь частью экосистемы TensorFlow, TensorFlow Probability обеспечивает интеграцию вероятностных методов с глубокими сетями, вывод на основе градиента с использованием автоматического дифференцирования и масштабируемость до больших наборов данных и моделей с аппаратным ускорением (GPU) и распределенными вычислениями.
Чтобы начать работу с TensorFlow Probability, см. руководство по установке и просмотрите учебные пособия по Python .
Компоненты
Наши вероятностные инструменты машинного обучения структурированы следующим образом:
Слой 0: TensorFlow
Численные операции , в частности класс LinearOperator
, позволяют реализовать безматричные реализации, которые могут использовать определенную структуру (диагональную, низкоранговую и т. д.) для эффективных вычислений. Он создается и поддерживается командой TensorFlow Probability и является частью tf.linalg
в ядре TensorFlow.
Уровень 1: Статистические строительные блоки
- Распределения (
tfp.distributions
): большая коллекция вероятностных распределений и связанных статистических данных с пакетной и широковещательной семантикой. - Биекторы (
tfp.bijectors
): обратимые и составные преобразования случайных величин. Биекторы обеспечивают богатый класс преобразованных распределений, от классических примеров, таких как логарифмически нормальное распределение, до сложных моделей глубокого обучения, таких как маскированные авторегрессионные потоки .
Уровень 2: построение модели
- Совместные дистрибутивы (например,
tfp.distributions.JointDistributionSequential
): Совместные дистрибутивы для одного или нескольких, возможно, взаимозависимых дистрибутивов. Для ознакомления с моделированием с помощью TFPJointDistribution
ознакомьтесь с этой коллаборацией . - Вероятностные слои (
tfp.layers
): слои нейронной сети с неопределенностью в отношении функций, которые они представляют, расширяющие слои TensorFlow.
Уровень 3: вероятностный вывод
- Цепь Маркова Монте-Карло (
tfp.mcmc
): алгоритмы аппроксимации интегралов с помощью выборки. Включает гамильтониан Монте-Карло , случайные блуждания Метрополис-Гастингс и возможность создавать собственные переходные ядра. - Вариационный вывод (
tfp.vi
): Алгоритмы аппроксимации интегралов посредством оптимизации. - Оптимизаторы (
tfp.optimizer
): методы стохастической оптимизации, расширяющие оптимизаторы TensorFlow. Включает стохастическую градиентную динамику Ланжевена . - Монте-Карло (
tfp.monte_carlo
): Инструменты для вычисления ожиданий Монте-Карло.
Вероятность TensorFlow находится в активной разработке, и интерфейсы могут измениться.
Примеры
В дополнение к учебникам по блокнотам Python , перечисленным в навигации, доступны несколько примеров сценариев:
- Вариационные автоэнкодеры — обучение представлению со скрытым кодом и вариационным выводом.
- Vector-Quantized Autoencoder — Обучение дискретному представлению с векторным квантованием.
- Байесовские нейронные сети — нейронные сети с неопределенностью относительно их весов.
- Байесовская логистическая регрессия — Байесовский вывод для бинарной классификации.
Сообщить о проблемах
Сообщайте об ошибках или запросах функций с помощью трекера проблем TensorFlow Probability .