Для skewness in (-inf, inf) и tailweight in (0, inf), это преобразование является диффеоморфизмом вещественной прямой (-inf, inf). Обратное преобразование — X = g^{-1}(Y) = Sinh( ArcSinh(Y) / tailweight - skewness ).
Преобразование SinhArcsinh нормального распределения описано в статьях о распределениях sinh-arcsinh. Этот Bijector позволяет выполнить подобное преобразование для любого распределения, поддерживаемого на (-inf, inf).
Значение параметров
Если skewness = 0 и tailweight = 1, это преобразование является тождественным.
Положительное (отрицательное) значение skewness приводит к положительному (отрицательному) искажению.
Положительное искажение означает, что для одномодального X, центрированного в нуле, мода Y смещается вправо.
Положительное искажение означает, что положительные значения Y становятся более вероятными, а отрицательные — менее вероятными.
Более большое (меньшее) значение tailweight приводит к более толстым (тоньше) хвостам.
Более толстые хвосты означают, что большие значения |Y| становятся более вероятными.
Если X — это нормальное распределение с единичной дисперсией, tailweight < 1 приводит к распределению, «плоскому» около Y = 0, с очень крутым спадом в хвостах.
Если X — это нормальное распределение с единичной дисперсией, tailweight > 1 приводит к распределению, более острому в моде, с более тяжелыми хвостами.
Чтобы увидеть аргументацию относительно хвостов, обратите внимание, что для |X| >> 1 и |X| >> (|skewness| * tailweight)**tailweight, у нас есть Y approx 0.5 X**tailweight e**(sign(X) skewness * tailweight).
Args
skewness
Параметр искажения. Вещественное число Tensor. Значение по умолчанию — 0 типа float32.
tailweight
Параметр весовой функции хвостов. Положительное Tensor того же dtype что и skewness, и согласуемое shape. Значение по умолчанию — 1 типа float32.
validate_args
Python-переменная, указывающая, нужно ли проверять корректность аргументов.
name
Python-имя, присваиваемое операциям, управляемым этим объектом.
Атрибуты
dtype
тип данных Tensor преобразуемых этим распределением.
forward_min_event_ndims
Возвращает минимальное количество измерений, на которых работает bijector.forward.
graph_parents
Возвращает список graph_parents этого Bijector.
inverse_min_event_ndims
Возвращает минимальное количество измерений, на которых работает bijector.inverse.
is_constant_jacobian
Возвращает True, если матрица Якоби не зависит от x.
Примечание: Матрица Якоби либо постоянна для прямого и обратного преобразований, либо ни для одного.
name
Возвращает строковое имя этого Bijector.
skewness
skewness в: Y = Sinh((Arcsinh(X) + skewness) * tailweight).
tailweight
tailweight в: Y = Sinh((Arcsinh(X) + skewness) * tailweight).
validate_args
Возвращает True, если тензорные аргументы будут валидированы.
Tensor. Вход для вычисления определителя Якоби «прямого» преобразования.
event_ndims
Количество измерений в вероятностных событиях, преобразуемых. Должно быть больше или равно self.forward_min_event_ndims. Результат суммируется по последним измерениям, чтобы получить скалярный определитель Якоби для каждого события, т.е. имеет форму x.shape.ndims - event_ndims измерений.
name
Имя для этой операции.
Возвращает
Tensor, если этот bijector инъективный. Если не инъективный, это не реализовано.
Исключения
TypeError
если self.dtype указано и y.dtype не self.dtype.
NotImplementedError
если ни _forward_log_det_jacobian ни {_inverse, _inverse_log_det_jacobian} не реализованы, или это не инъективный bijector.
Обратите внимание, что forward_log_det_jacobian является отрицанием этой функции, вычисленной в g^{-1}(y).
Аргументы
y
Tensor. Вход для вычисления определителя обратного якобиана.
event_ndims
Число измерений в преобразуемых вероятностных событиях. Должно быть больше или равно self.inverse_min_event_ndims. Результат суммируется по последним измерениям, чтобы получить скалярный определитель якобиана для каждого события, т.е. он имеет форму y.shape.ndims - event_ndims измерений.
name
Имя для этой операции.
Возвращаемое значение
Tensor, если этот биектор инъективен. Если не инъективен, возвращает кортеж локальных логов определителей якобианов, log(det(Dg_i^{-1}(y))), где g_i является ограничением g на ith разбиение Di.