tf.compat.v1.distributions.Uniform
Равномерное распределение с параметрами low и high.
Наследует: Distribution
tf.compat.v1.distributions.Uniform(
low=0.0,
high=1.0,
validate_args=False,
allow_nan_stats=True,
name='Uniform'
)
Математические сведения
Функция плотности вероятности (pdf):
pdf(x; a, b) = I[a <= x < b] / Z Z = b - a
где
-
low = a, -
high = b, -
Z— нормирующая константа, и -
I[predicate]— индикаторная функция дляpredicate.
Параметры low и high должны иметь форму, поддерживающую широковещательную передачу (например, операция high - low является допустимой).
Примеры
# Without broadcasting:
u1 = Uniform(low=3.0, high=4.0) # a single uniform distribution [3, 4]
u2 = Uniform(low=[1.0, 2.0],
high=[3.0, 4.0]) # 2 distributions [1, 3], [2, 4]
u3 = Uniform(low=[[1.0, 2.0],
[3.0, 4.0]],
high=[[1.5, 2.5],
[3.5, 4.5]]) # 4 distributions
# With broadcasting: u1 = Uniform(low=3.0, high=[5.0, 6.0, 7.0]) # 3 distributions
| Аргументы | |
|---|---|
low | Тензор с плавающей запятой, нижняя граница выходного интервала. Должен иметь low < high. |
high | Тензор с плавающей запятой, верхняя граница выходного интервала. Должен иметь low < high. |
validate_args | bool Python, значение по умолчанию — False. Если True, параметры распределения проверяются на допустимость, хотя это может снизить производительность во время выполнения. Если False, недопустимые входные данные могут незаметно приводить к неверным результатам. |
allow_nan_stats | bool Python, значение по умолчанию — True. Если True, для обозначения неопределённого результата статистические характеристики (например, среднее, мода, дисперсия) используют значение «NaN». Если False, возникает исключение, когда одна или несколько характеристик элементов пакета не определены. |
name | Имя Python str, добавляемое в начало имён операций, созданных этим классом. |
| Возбуждает исключения | |
|---|---|
InvalidArgumentError | если low >= high и validate_args=False. |
| Атрибуты | |
|---|---|
allow_nan_stats | Параметр Python bool, описывающий поведение при неопределённой статистической характеристике. Статистические характеристики принимают значение +/- бесконечность, если это имеет смысл. Например, дисперсия распределения Коши равна бесконечности. Однако иногда статистическая характеристика не определена: например, если плотность вероятности распределения не достигает максимума в пределах его носителя, мода не определена. Если среднее не определено, то по определению не определена и дисперсия. Например, среднее распределения Стьюдента с df = 1 не определено (нет однозначного способа сказать, равно ли оно + или - бесконечности), поэтому дисперсия = E[(X - mean)**2] также не определена. |
batch_shape | Форма одной выборки из одного индекса события в виде TensorShape. Может быть определена частично или неизвестна. Размерности пакета являются индексами независимых, неидентичных параметризаций этого распределения. |
dtype | DType распределений Tensor, обрабатываемых этим Distribution. |
event_shape | Форма одной выборки из одного пакета в виде TensorShape. Может быть определена частично или неизвестна. |
high | Верхняя граница выходного интервала. |
low | Нижняя граница выходного интервала. |
name | Имя, добавляемое в начало имён всех операций, созданных этим Distribution. |
parameters | Словарь параметров, использованных для создания экземпляра этого Distribution. |
reparameterization_type | Описывает способ репараметризации выборок из распределения. В настоящее время это один из статических экземпляров: |
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 Tensor формы [B1, ..., Bn], представляющий n различных вычислений перекрёстной энтропии (Шеннона). |
entropy
entropy(
name='entropy'
)
Энтропия Шеннона в натах.
event_shape_tensor
event_shape_tensor(
name='event_shape_tensor'
)
Форма одной выборки из одного пакета в виде одномерного Tensor типа int32.
| Аргументы | |
|---|---|
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 определяется следующим образом:
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'
)
Мода.
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 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. |
range
range(
name='range'
)
high - low.
sample
sample(
sample_shape=(), seed=None, name='sample'
)
Создаёт выборки заданной формы.
Обратите внимание: вызов sample() без аргументов создаёт одну выборку.
| Аргументы | |
|---|---|
sample_shape | int32 Tensor размерности 0 или 1. Форма создаваемых выборок. |
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 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(). |
© 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/Uniform