Для реализации softmax как биекции, вперёд преобразование добавляет значение к входу, а обратное удаляет эту координату. Добавляемая координата представляет собой точку отсчёта, например, softmax(x) = exp(x-c) / sum(exp(x-c)), где c — это неявная последняя координата.
На первый взгляд может показаться, что теорема об инвариантности области подразумевает, что это реализация не является биекцией. Однако добавленная размерность делает (прямое) изображение неограниченным, и теорема напрямую не применима.
Атрибуты
dtype
Тип данных Tensor преобразуемых с помощью этого распределения.
forward_min_event_ndims
Возвращает минимальное количество измерений, на которых bijector.forward работает.
graph_parents
Возвращает graph_parents этого Bijector в виде списка Python.
inverse_min_event_ndims
Возвращает минимальное количество измерений, на которых bijector.inverse работает.
is_constant_jacobian
Возвращает true, если матрица Якоби не зависит от x.
Примечание: Матрица Якоби либо постоянна для прямого и обратного преобразований, либо ни для чего.
name
Возвращает строковое имя этого Bijector.
validate_args
Возвращает True, если аргументы Tensor будут проверены.
Tensor. Вход для вычисления определителя якобиана "прямого" преобразования.
event_ndims
Количество измерений в преобразуемых вероятностных событиях. Должно быть больше или равно self.forward_min_event_ndims. Результат суммируется по последним измерениям для получения скалярного определителя якобиана для каждого события, т.е. имеет форму x.shape.ndims - event_ndims измерений.
name
Имя для данного op.
Возвращаемое значение
Tensor, если данный биектор инъективен. Если не инъективен, это не реализовано.
Исключения
TypeError
если self.dtype задано, и y.dtype не self.dtype.
NotImplementedError
если ни _forward_log_det_jacobian ни {_inverse, _inverse_log_det_jacobian} не реализованы, или это биектор, не являющийся инъективным.
Обратите внимание, что 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.