How to compute softmax and its gradient?

16 visualizaciones (últimos 30 días)
Raldi
Raldi el 8 de Mayo de 2017
Comentada: usama pervaiz el 22 de Nov. de 2017
I am creating a simple two layer neural network where the activation function of the output layer will be softmax.
I have this for creating softmax in a numerically stable way
function g = softmax(z)
dim = 1;
s = ones(1, ndims(z));
s(dim) = size(z, dim);
maxz = max(z, [], dim);
expz = exp(z-repmat(maxz, s));
g = expz ./ repmat(sum(expz, dim), s);
z is a matrix that contains all of the data calculated by the previous layer one row at a time.
In order to compute the derivative of this though I will need to use the Kronecker delta but I am not sure how to do it.
Can someone provide me with a vectorized implementation for computing it in Matlab?

Respuestas (0)

Categorías

Más información sobre Image Data Workflows en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by