Spec-Zone.ru › TensorFlow 2.3

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, или если ни p, ни logits не переданы.
Атрибуты
allow_nan_stats Python bool описывающий поведение, когда статистика не определена.

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

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

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

Размерности пакета являются индексами независимых, нетождественных параметризаций этого распределения.

dtype Размерность DType обрабатываемых этим 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'
)

Форма одной выборки из одного индекса события в виде 1-мерного 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'.

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

cross_entropy

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

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 с формой [B1, ..., Bn] представляющее различные вычисления (энтропии Шеннона) кросс-энтропии.

entropy

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

entropy(
    name='entropy'
)

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

event_shape_tensor

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

event_shape_tensor(
    name='event_shape_tensor'
)

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

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

is_scalar_batch

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

is_scalar_batch(
    name='is_scalar_batch'
)

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

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

is_scalar_event

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

is_scalar_event(
    name='is_scalar_event'
)

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

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

kl_divergence

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

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

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

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 тензор Tensor формы sample_shape(x) + self.batch_shape со значениями типа self.dtype.

log_prob

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

log_prob(
    value, name='log_prob'
)

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

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

log_survival_function

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

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

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

mean(
    name='mean'
)

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

mode

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

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 форм.
END_OF_DOCUMENT_MARKER
Возвращает исключение
ValueError если sample_shape является TensorShape и не определён полностью.

prob

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

prob(
    value, name='prob'
)

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

Аргументы
value float или double Tensor.
name Префикс Python str к именам операций, созданных этой функцией.
Возвращает
prob тензор формы 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 str к именам операций, созданных этой функцией.
Возвращает
quantile тензор формы 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 тензор с добавленными измерениями sample_shape.

stddev

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

stddev(
    name='stddev'
)

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

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

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

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

Аргументы
name Префикс Python str к именам операций, созданных этой функцией.
Возвращает
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 str к именам операций, созданных этой функцией.
Возвращает
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 str к именам операций, созданных этой функцией.
Возвращает
variance Вещественный Tensor с формой, идентичной batch_shape + event_shape, то есть той же формой, что и self.mean().

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

Spec-Zone.ru

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