Spec-Zone.ru › TensorFlow 2.9

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 Python bool, по умолчанию False. Когда True параметры распределения проверяются на соответствие, несмотря на то, что это может ухудшить производительность выполнения. Когда False недопустимые входные данные могут бесшумно привести к неверным результатам.
allow_nan_stats Python bool, по умолчанию True. Когда True, статистические данные (например, среднее, мода, дисперсия) используют значение "NaN" для обозначения того, что результат неопределен. Когда False, возникает исключение, если один или несколько элементов статистических данных неопределены.
name Python str имя, добавляемое в качестве префикса к операциям, созданным этим классом.
Исключения
InvalidArgumentError если low >= high и validate_args=False.
Атрибуты
allow_nan_stats Python bool, описывающий поведение при неопределенности статистических данных.

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

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

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

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

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

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

high Верхняя граница интервала вывода.
low Нижняя граница интервала вывода.
name Имя, добавляемое в качестве префикса ко всем операциям, созданным этим Distribution.
parameters Словарь параметров, используемых для создания этого Distribution.
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 тензор с формой 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 Вещественный тензор с формой [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 Вещественный тензор с формой [B1, ..., Bn], представляющий n различные вычисления (энтропии Шеннона) кросс-энтропии.

entropy

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

entropy(
    name='entropy'
)

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

event_shape_tensor

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

event_shape_tensor(
    name='event_shape_tensor'
)

Форма одного образца из одной партии как 1-мерный 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 тензор формы 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 тензор формы 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 добавленное к именам операций, созданных этой функцией.
Возвращаемое значение
тензор формы 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 имя для добавления к операциям.
Возвращаемое значение
словарь от имени параметра до его 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 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 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 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/versions/r2.9/api_docs/python/tf/compat/v1/distributions/Uniform

Spec-Zone.ru

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