Spec-Zone.ru › TensorFlow 2.4

tf.compat.v1.distributions.Exponential

Экспоненциальное распределение.

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

tf.compat.v1.distributions.Exponential(
    rate, validate_args=False, allow_nan_stats=True, name='Exponential'
)

Экспоненциальное распределение параметризуется параметром события rate.

Математические подробности

Функция плотности вероятности (pdf) равна,

pdf(x; lambda, x > 0) = exp(-lambda x) / Z
Z = 1 / lambda

где rate = lambda и Z — нормирующая константа.

Экспоненциальное распределение является частным случаем гамма-распределения, т.е.

Exponential(rate) = Gamma(concentration=1., rate)

Экспоненциальное распределение использует параметр rate или «обратную шкалу», которую можно интуитивно представить как,

X ~ Exponential(rate=1)
Y = X / rate
Аргументы
rate Вещественный тензор, эквивалентный 1 / mean. Должен содержать только положительные значения.
validate_args Python bool, по умолчанию False. При True параметрах распределения проверяются на валидность, несмотря на возможные ухудшения производительности во время выполнения. При False недопустимые входные данные могут беззвучно привести к неправильным результатам.
allow_nan_stats Python bool, по умолчанию True. При True, статистические данные (например, среднее значение, мода, дисперсия) используют значение «NaN», чтобы указать, что результат не определен. При False, возникает исключение, если один или несколько из элементов набора статистических данных не определены.
name Python str имя, добавляемое в качестве префикса к операциям, созданным этим классом.
Атрибуты
allow_nan_stats Python bool описывающий поведение при неопределенном значении статистики.

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

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

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

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

concentration Параметр концентрации.
dtype DType Tensor обработанных этим Distribution.
event_shape Размер одного образца из одной партии в виде TensorShape.

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

name Имя, добавляемое в качестве префикса ко всем операциям, созданным этим Distribution.
parameters Словарь параметров, используемых для создания экземпляра этого Distribution.
rate Параметр скорости.
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' вектора.

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

entropy

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

entropy(
    name='entropy'
)

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

event_shape_tensor

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

event_shape_tensor(
    name='event_shape_tensor'
)

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

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

is_scalar_batch

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

is_scalar_batch(
    name='is_scalar_batch'
)

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

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

is_scalar_event

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

is_scalar_event(
    name='is_scalar_event'
)

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

Аргументы
name Python-строка, добавляемая в префикс к именам операций, созданных этой функцией.
Возвращаемое значение
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-строка, добавляемая в префикс к именам операций, созданных этой функцией.
Возвращаемое значение
kl_divergence тензор self.dtype с формой [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-строка, добавляемая в префикс к именам операций, созданных этой функцией.
Возвращаемое значение
logcdf тензор Tensor с формой sample_shape(x) + self.batch_shape со значениями типа self.dtype.

log_prob

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

log_prob(
    value, name='log_prob'
)

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

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

mean

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

mean(
    name='mean'
)

Математическое ожидание.

mode

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

mode(
    name='mode'
)

Мода.

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

Мода гамма-распределения равна (shape - 1) / rate при shape > 1, и NaN в противном случае. Если self.allow_nan_stats равно False, будет выброшено исключение вместо возвращения NaN.

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'
)

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

Аргументы
value float или double Tensor.
name Python str добавляется к именам операций, созданных этой функцией.
Возвращаемое значение
prob a 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 a 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 a 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/r2.4/api_docs/python/tf/compat/v1/distributions/Exponential

Spec-Zone.ru

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