Spec-Zone.ru › TensorFlow

tf.compat.v1.distributions.Bernoulli

Распределение Бернулли.

Наследуется от: Distribution

tf.compat.v1.distributions.Bernoulli(
    logits=None,
    probs=None,
    dtype=tf.dtypes.int32,
    validate_args=False,
    allow_nan_stats=True,
    name='Bernoulli'
)

Распределение Бернулли с параметром probs, т.е. вероятностью события 1 (по сравнению с событием 0).

Аргументы
logits N-мерный Tensor, представляющий логарифм шансов события 1. Каждый элемент в Tensor параметризует независимое распределение Бернулли, где вероятность события равна sigmoid(logits). Должен быть передан только один из logits или probs.
probs N-мерный Tensor, представляющий вероятность события 1. Каждый элемент в Tensor параметризует независимое распределение Бернулли. Должен быть передан только один из logits или probs.
dtype Тип образцов события. По умолчанию: int32.
validate_args Python bool, по умолчанию False. При проверке параметров распределения True на корректность, несмотря на возможную деградацию производительности во время выполнения. При False некорректные входные данные могут повлечь за собой неявные ошибочные результаты.
allow_nan_stats Python bool, по умолчанию True. Когда True, статистические данные (например, среднее значение, мода, дисперсия) используют значение "NaN" для обозначения того, что результат не определен. Если False, возникает исключение, если один или несколько элементов статистических данных в наборе не определены.
name Python str, добавляемый в качестве префикса к именам операций, создаваемых этим классом.
Исключения
ValueError Если переданы p и logits, или ни то, ни другое.
Атрибуты
allow_nan_stats Python bool, описывающий поведение, когда статистический показатель не определен.

Статистики возвращают +/- бесконечность, когда это имеет смысл. Например, дисперсия распределения Коши равна бесконечности. Однако иногда статистический показатель не определен, например, если функция плотности распределения не достигает максимума в области определения распределения, мода не определена. Если среднее значение не определено, то по определению дисперсия также не определена. Например, среднее значение для распределения Стьюдента при df = 1 не определено (нет ясного способа сказать, что это либо + бесконечность, либо - бесконечность), поэтому дисперсия = E[(X - среднее значение)**2] также не определена.

batch_shape Форма одного образца из одного индекса события в виде TensorShape.

Может быть частично определена или неизвестна.

Измерения набора — это индексы для независимых, но не идентичных параметризаций этого распределения.

dtype DType Tensor, обрабатываемых этим Distribution.
event_shape Форма одного образца из одного набора данных в виде TensorShape.

Может быть частично определена или неизвестна.

logits Логарифм шансов события 1 (по сравнению с 0).
name Имя, добавляемое в качестве префикса ко всем операциям, создаваемым этим Distribution.
parameters Словарь параметров, используемых для создания этого Distribution.
probs Вероятность события 1 (по сравнению с 0).
reparameterization_type Описывает, как образцы из распределения перепараметризуются.

В настоящее время это один из статических экземпляров distributions.FULLY_REPARAMETERIZED или distributions.NOT_REPARAMETERIZED.

validate_args Python bool, указывающий на то, что, возможно, дорогостоящие проверки включены.

Методы

batch_shape_tensor

Просмотр исходного кода

batch_shape_tensor(
    name='batch_shape_tensor'
)

Форма одного образца из одного индекса события в виде одномерного Tensor.

Измерения набора — это индексы для независимых, но не идентичных параметризаций этого распределения.

Аргументы
name имя, присваиваемое операции
Возвращаемое значение
batch_shape Tensor.

cdf

Просмотр исходного кода

cdf(
    value, name='cdf'
)

Функция кумулятивного распределения.

Учитывая случайную величину X, функция кумулятивного распределения cdf:

cdf(x) := P[X <= x]
Аргументы
value float или double Tensor.
name Python str, добавляемое в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
cdf Tensor формы sample_shape(x) + self.batch_shape с значениями типа self.dtype.

copy

Просмотр исходного кода

copy(
    **override_parameters_kwargs
)

Создает глубокую копию распределения.

Примечание: распределение копии может по-прежнему зависеть от исходных аргументов инициализации.
Аргументы
**override_parameters_kwargs Словарь строк/значений аргументов инициализации для переопределения новыми значениями.
Возвращаемое значение
distribution Новый экземпляр type(self), инициализированный на основе объединения self.parameters и override_parameters_kwargs, т.е. dict(self.parameters, **override_parameters_kwargs).

covariance

Просмотр исходного кода

covariance(
    name='covariance'
)

Ковариация.

Ковариация (возможно) определяется только для распределений, не являющихся скалярными событиями.

Например, для распределения с длиной k, векторного значения, она вычисляется как

Cov[i, j] = Covariance(X_i, X_j) = E[(X_i - E[X_i]) (X_j - E[X_j])]

где Cov — (набор) k x k матрица, 0 <= (i, j) < k, и E обозначает математическое ожидание.

В качестве альтернативы для не векторных многомерных распределений (например, матричнозначных, Вишарта) Covariance возвращает (набор) матриц при некотором векторизовании событий, т.е.

Cov[i, j] = Covariance(Vec(X)_i, Vec(X)_j) = [as above]

где Cov — (набор) k' x k' матриц, 0 <= (i, j) < k' = reduce_prod(event_shape), и Vec — некоторая функция, отображающая индексы размерностей событий этого распределения в индексы вектора длиной k'.

END_OF_DOCUMENT_MARKER
Аргументы
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
covariance Вещественное число с плавающей точкой Tensor формы [B1, ..., Bn, k', k'], где первые n измерения — координаты пакета, а k' = reduce_prod(self.event_shape).

Перекрёстная энтропия

Просмотр исходного кода

cross_entropy(
    other, name='cross_entropy'
)

Вычисляет перекрёстную энтропию (по Шеннону).

Обозначим данное распределение (self) как P, а распределение other — как Q. Предполагая, что P, Q абсолютно непрерывны относительно друг друга и допускают плотности p(x) dr(x) и q(x) dr(x), перекрёстная энтропия (по Шеннону) определяется следующим образом:

H[P, Q] = E_p[-log q(X)] = -int_F p(x) log q(x) dr(x)

где F обозначает область значений случайной величины X ~ P.

Аргументы
other Экземпляр tfp.distributions.Distribution.
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
cross_entropy self.dtype Tensor с формой [B1, ..., Bn], представляющей собой n различных вычислений перекрёстной энтропии (по Шеннону).

Энтропия

Просмотр исходного кода

entropy(
    name='entropy'
)

Энтропия Шеннона в натах.

Вектор формы события

Просмотр исходного кода

event_shape_tensor(
    name='event_shape_tensor'
)

Форма одного образца из одного пакета в виде 1-мерного целочисленного вектора int32 Tensor.

Аргументы
name имя, которое нужно дать операции
Возвращаемое значение
event_shape Tensor.

Является ли пакет скаляром

Просмотр исходного кода

is_scalar_batch(
    name='is_scalar_batch'
)

Указывает, что batch_shape == [].

Аргументы
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
is_scalar_batch Скаляр bool Tensor.

Является ли событие скаляром

Просмотр исходного кода

is_scalar_event(
    name='is_scalar_event'
)

Указывает, что event_shape == [].

Аргументы
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
is_scalar_event Скаляр bool Tensor.

Расхождение Кульбака—Лейблера

Просмотр исходного кода

kl_divergence(
    other, name='kl_divergence'
)

Вычисляет расхождение Кульбака—Лейблера.

Обозначим данное распределение (self) как p, а распределение other — как q. Предполагая, что p, q абсолютно непрерывны относительно эталонной меры r, расхождение Кульбака—Лейблера определяется следующим образом:

KL[p, q] = E_p[log(p(X)/q(X))]
         = -int_F p(x) log q(x) dr(x) + int_F p(x) log p(x) dr(x)
         = H[p, q] - H[p]

где F обозначает область значений случайной величины X ~ p, H[., .] обозначает перекрёстную энтропию (по Шеннону), а H[.] обозначает энтропию (по Шеннону).

Аргументы
other Экземпляр tfp.distributions.Distribution.
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
kl_divergence self.dtype Tensor с формой [B1, ..., Bn], представляющей собой n различные вычисления расхождения Кульбака—Лейблера.

Логарифм кумулятивной функции распределения

Просмотр исходного кода

log_cdf(
    value, name='log_cdf'
)

Логарифм кумулятивной функции распределения.

Для случайной величины X кумулятивная функция распределения cdf определяется следующим образом:

log_cdf(x) := Log[ P[X <= x] ]

Зачастую для log_cdf(x) можно использовать численный приближённый метод, который даёт более точный результат, чем просто взятие логарифма от cdf, когда x << -1.

Аргументы
value float или double Tensor.
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
logcdf тензор формы sample_shape(x) + self.batch_shape со значениями типа self.dtype.

Логарифм функции плотности/массы вероятности

Просмотр исходного кода

log_prob(
    value, name='log_prob'
)

Логарифм функции плотности/массы вероятности.

Аргументы
value float или double Tensor.
name Python str добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
log_prob тензор формы sample_shape(x) + self.batch_shape со значениями типа self.dtype.

Логарифм функции выживания

Просмотр исходного кода

log_survival_function(
    value, name='log_survival_function'
)

Логарифм функции выживания.

Для случайной величины X функция выживания определяется следующим образом:

log_survival_function(x) = Log[ P[X > x] ]
                         = Log[ 1 - P[X <= x] ]
                         = Log[ 1 - cdf(x) ]

Зачастую для логарифма функции выживания можно использовать различные численные приближения, которые более точны, чем 1 - cdf(x), когда x >> 1.

Аргументы
value float или double Tensor.
name Python str добавленное к именам операций, созданных этой функцией.
Tensor с формой sample_shape(x) + self.batch_shape со значениями типа self.dtype.

Среднее значение

Просмотр исходного кода

mean(
    name='mean'
)

Среднее значение.

Мода

Просмотр исходного кода

mode(
    name='mode'
)

Режим.

Дополнительная документация из Bernoulli:

Возвращает 1, если prob > 0.5, и 0 в противном случае.

param_shapes

Просмотреть исходный код

@classmethod
param_shapes(
    sample_shape, name='DistributionParamShapes'
)

Формы параметров, заданных желаемой формой вызова sample().

Это метод класса, описывающий требуемые пары «ключ-значение» для создания экземпляра данного Distribution, чтобы получить определённую форму для вызова sample() этого экземпляра.

Подклассы должны переопределить метод класса _param_shapes.

Аргументы
sample_shape Tensor или список/кортеж Python. Желаемая форма вызова sample().
name имя для добавления префикса к операциям.
Возвращаемое значение
словарь dict имени параметра к формам Tensor.

param_static_shapes

Просмотреть исходный код

@classmethod
param_static_shapes(
    sample_shape
)

param_shapes со статическими (т.е. TensorShape) формами.

Это метод класса, описывающий требуемые пары «ключ-значение» для создания экземпляра данного Distribution, чтобы получить определённую форму для вызова sample() этого экземпляра. Предполагается, что форма выборки статически известна.

Подклассы должны переопределить метод класса _param_shapes, чтобы возвращать тензоры с постоянными значениями при подаче постоянных значений.

Аргументы
sample_shape TensorShape или список/кортеж Python. Желаемая форма вызова sample().
Возвращаемое значение
словарь dict имени параметра к TensorShape.
Исключения
ValueError если sample_shape представляет собой TensorShape и не полностью определён.

prob

Просмотреть исходный код

prob(
    value, name='prob'
)

Функция плотности/массы вероятности.

Аргументы
value float или double Tensor.
name Строка Python, добавляемая в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
prob тензор Tensor формы sample_shape(x) + self.batch_shape со значениями типа self.dtype.

quantile

Просмотреть исходный код

quantile(
    value, name='quantile'
)

Функция квантиля. Также известна как «обратная функция распределения» или «функция процентиля».

Для случайной переменной X и p in [0, 1], quantile:

quantile(p) := x such that P[X <= x] == p
Аргументы
value float или double Tensor.
name Строка Python, добавляемая в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
quantile тензор Tensor формы sample_shape(x) + self.batch_shape со значениями типа self.dtype.

sample

Просмотреть исходный код

sample(
    sample_shape=(), seed=None, name='sample'
)

Генерирует выборки заданной формы.

Обратите внимание, что вызов sample() без аргументов сгенерирует одну выборку.

Аргументы
sample_shape 0D или 1D int32 Tensor. Форма генерируемых выборок.
seed Целое число Python для генерации псевдослучайных чисел.
name имя для операции.
Возвращаемое значение
samples тензор Tensor с добавленными измерениями sample_shape.

stddev

Просмотреть исходный код

stddev(
    name='stddev'
)

Среднеквадратическое отклонение.

Среднеквадратическое отклонение определяется как,

stddev = E[(X - E[X])**2]**0.5

где X — случайная величина, связанная с этим распределением, E обозначает математическое ожидание, и stddev.shape = batch_shape + event_shape.

Аргументы
name Строка Python, добавляемая в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
stddev Вещественный тензор Tensor с формой, идентичной форме batch_shape + event_shape, т.е. с той же формой, что и self.mean().

survival_function

Просмотреть исходный код

survival_function(
    value, name='survival_function'
)

Функция выживания.

Для случайной переменной X функция выживания определяется как:

survival_function(x) = P[X > x]
                     = 1 - P[X <= x]
                     = 1 - cdf(x).
Аргументы
value float или double Tensor.
name Строка Python, добавляемая в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
тензор Tensor формы sample_shape(x) + self.batch_shape со значениями типа self.dtype.

variance

Просмотреть исходный код

variance(
    name='variance'
)

Дисперсия.

Дисперсия определяется как,

Var = E[(X - E[X])**2]

где X — случайная величина, связанная с этим распределением, E обозначает математическое ожидание, и Var.shape = batch_shape + event_shape.

Аргументы
name Строка Python, добавляемая в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
variance Вещественный тензор Tensor с формой, идентичной форме batch_shape + event_shape, т.е. с той же формой, что и self.mean().

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/distributions/Bernoulli

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API