Skip to contents

Softmax for a vector x is defined as

Usage

softmax(x)

dsoftmax(x)

Arguments

x

A numeric vector or matrix

Value

softmax returns the softmax of x; rowwise if x is a matrix.

dsoftmax returns the Jacobi-matrix of softmax(x) at x. x must be a vector.

Details

\(s_i = \exp(x_i) / \sum_k \exp(x_k)\)

It satisfies sum(s) == 1.0 and can be used to smoothly enforce a sum constraint.

Examples

softmax(c(5, 5))
#> [1] 0.5 0.5
softmax(diag(nrow = 5, ncol = 6))
#>           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
#> [1,] 0.3521874 0.1295625 0.1295625 0.1295625 0.1295625 0.1295625
#> [2,] 0.1295625 0.3521874 0.1295625 0.1295625 0.1295625 0.1295625
#> [3,] 0.1295625 0.1295625 0.3521874 0.1295625 0.1295625 0.1295625
#> [4,] 0.1295625 0.1295625 0.1295625 0.3521874 0.1295625 0.1295625
#> [5,] 0.1295625 0.1295625 0.1295625 0.1295625 0.3521874 0.1295625