How to compute softmax and its gradient?

9 visualizzazioni (ultimi 30 giorni)
Raldi
Raldi il 8 Mag 2017
Commentato: usama pervaiz il 22 Nov 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?

Risposte (0)

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by