smax: The softmax function.

View source: R/utils.r

smaxR Documentation

The softmax function.

Description

The softmax function: exponentiate a vector and then normalize.

Usage

smax(eta, g = NULL)

Arguments

eta

numeric array of the odds. The odds are de-meaned within each group.

g

a vector giving the group indices. If NULL, then we assume only one group is in consideration.

Details

Given vector \eta for a single group, essentially computes vector \mu defined by

\mu_i = \frac{\exp{\eta_i}}{\sum_j \exp{\eta_j}}.

Note that this computation should be invariant with respect to level shifts of the \eta, and thus we de-mean the odds first.

Value

the exponentiated data normalized. For the row-wise version, each row is soft maxed.

Note

This function can deal with overflow in a semi-coherent way.

Author(s)

Steven E. Pav shabbychef@gmail.com

See Also

normalize, inv_smax.

Examples

# we can deal with large values:
set.seed(2345)
eta <- rnorm(12,sd=1000)
smax(eta)

shabbychef/ohenery documentation built on Oct. 19, 2023, 12:08 p.m.