softmax function

Softmax transform

Softmax transform

The softmax transform is a multivariate generalisation of the logit transform. softmax() maps a vector of K1K-1 values on the real line to a KK-simplex (i.e. values between 0 and 1, that sum to 1). inv_softmax()

provides the inverse transform, mapping a KK-simplex vector to a vector of K1K-1 real values.

softmax(x) inv_softmax(p)

Arguments

  • x: K1K-1 vector of reals
  • p: KK vector simplex

Returns

softmax() returns a vector of length KK that is a simplex. inv_softmax() returns a vector of reals of length K1K-1.

Examples

x <- c(-1, 3, -0.5, 2) (p <- softmax(x)) sum(p) inv_softmax(p)