Spec-Zone.ru › TensorFlow

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 Описывает способ репараметризации выборок из распределения.

В настоящее время это один из статических экземпляров: 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 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

Spec-Zone.ru

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