tf.contrib.distributions.BetaWithSoftplusConcentration
Бета-распределение с преобразованием softplus для concentration1 и concentration0.
Наследуется от: Beta
tf.contrib.distributions.BetaWithSoftplusConcentration(
concentration1, concentration0, validate_args=False, allow_nan_stats=True,
name='BetaWithSoftplusConcentration'
)
| Атрибуты | |
|---|---|
allow_nan_stats | Python bool описывающий поведение, когда статистическое значение неопределено. Статистики возвращают +/- бесконечность, когда это имеет смысл. Например, дисперсия распределения Коши равна бесконечности. Однако иногда статистика неопределена, например, если плотность распределения не достигает максимума в области определения распределения, мода неопределена. Если среднее значение неопределено, то по определению дисперсия также неопределена. Например, среднее значение распределения Стьюдента для df = 1 неопределено (нет ясного способа сказать, что оно равно + или - бесконечности), поэтому дисперсия = E[(X - среднее значение)**2] также неопределена. |
batch_shape | Размерность одного выборки из одного индекса события, представленная как TensorShape. Может быть частично определена или неизвестна. Размерности пакет представляют индексы в независимых, но не идентичных параметризациях этого распределения. |
concentration0 | Параметр концентрации, связанный с 0 результатом. |
concentration1 | Параметр концентрации, связанный с 1 результатом. |
dtype | Размерность Tensor, обрабатываемых этим Distribution. |
event_shape | Размерность одного выборки из одного пакета, представленная как TensorShape. Может быть частично определена или неизвестна. |
name | Имя, добавляемое ко всем операциям, созданным этим Distribution. |
parameters | Словарь параметров, используемых для создания этого Distribution. |
reparameterization_type | Описание способа перепараметризации выборок из распределения. В настоящее время это один из статических экземпляров |
total_concentration | Сумма параметров концентрации. |
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]
Дополнительная документация из Beta:
Примечание:xдолжен иметь типself.dtypeи находиться в[0, 1].. Он должен иметь размерность, совместимую сself.batch_shape().
| Аргументы | |
|---|---|
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 Tensor с размерностью [B1, ..., Bn] представляющей n различные вычисления перекрестной энтропии (Шеннона). |
entropy
entropy(
name='entropy'
)
Энтропия Шеннона в натах.
event_shape_tensor
event_shape_tensor(
name='event_shape_tensor'
)
Размерность одной выборки из одного пакета, представленная как 1-мерный целочисленный 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.
Дополнительная документация из Beta:
Примечание:xдолжен иметь типself.dtypeи находиться в[0, 1].Он должен иметь форму, совместимую сself.batch_shape().
| Аргументы | |
|---|---|
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'
)
Логарифмическая плотность/вероятность.
Дополнительная документация из Beta:
Примечание:xдолжен иметь типself.dtypeи находиться в[0, 1].Он должен иметь форму, совместимую сself.batch_shape().
| Аргументы | |
|---|---|
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'
)
Мода.
Дополнительная документация из Beta:
Примечание: Мода не определена, когдаconcentration1 <= 1илиconcentration0 <= 1. Еслиself.allow_nan_statsестьTrue,NaNиспользуется для неопределённых мод. Еслиself.allow_nan_statsестьFalse, при попытке получить одну или несколько мод будет вызвано исключение.
param_shapes
@classmethod
param_shapes(
sample_shape, name='DistributionParamShapes'
)
Формы параметров, учитывая желаемую форму вызова sample().
Это метод класса, который описывает, какие аргументы ключ/значение требуются для создания данного Distribution экземпляра, чтобы получить определённую форму вызова sample().
Подклассы должны переопределять метод класса _param_shapes.
| Аргументы | |
|---|---|
sample_shape | Tensor или список/кортеж Python. Желаемая форма вызова sample(). |
name | имя для добавления в имена операций. |
| Возвращает | |
|---|---|
словарь, сопоставляющий имя параметра с формой Tensor |
param_static_shapes
@classmethod
param_static_shapes(
sample_shape
)
_param_shapes с фиксированными (т.е. TensorShape) формами.
Это метод класса, который описывает, какие аргументы ключ/значение требуются для создания данного Distribution экземпляра, чтобы получить определённую форму вызова sample(). Предполагается, что форма выборки известна статически.
Подклассы должны переопределить метод класса _param_shapes для возврата тензоров с постоянными значениями при подаче постоянных значений.
| Аргументы | |
|---|---|
sample_shape | TensorShape или список/кортеж Python. Желаемая форма вызова sample(). |
| Возвращает | |
|---|---|
словарь, сопоставляющий имя параметра с формой TensorShape |
| Возможные исключения | |
|---|---|
ValueError | если sample_shape является TensorShape и не полностью определён. |
prob
prob(
value, name='prob'
)
Плотность/масса вероятности.
Дополнительная документация из Beta:
Примечание:xдолжен иметь типself.dtypeи находиться в[0, 1].Он должен иметь форму, совместимую сself.batch_shape().
| Аргументы | |
|---|---|
value | float или double Tensor. |
name | Префикс Python str добавляется к именам операций, созданных этой функцией. |
| Возвращаемое значение | |
|---|---|
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 str добавляется к именам операций, созданных этой функцией. |
| Возвращаемое значение | |
|---|---|
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 для начального значения генератора псевдослучайных чисел (RNG). |
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 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/r1.15/api_docs/python/tf/contrib/distributions/BetaWithSoftplusConcentration