NNfSiX icon indicating copy to clipboard operation
NNfSiX copied to clipboard

p006-Softmax-Activation in Javascript

Open fisher2470 opened this issue 2 years ago • 1 comments

Resolves an error on p005 and includes the JavaScript solution for p006

fisher2470 avatar Nov 14 '21 21:11 fisher2470

The "p006-Softmax-Activation in Javascript.js" implementation has a major problem in the Softmax class implementation. Instead of calculation "batch-by-batch", it just combines all values in a single array and calculates the percentage in this single array.

This is not the intended purpose of this class, and I suggest changing it to my implementation:

class Activation_Softmax {
    constructor () {}

    forward (inputs) {
        var exp_values = math.matrix(inputs._data.map(batch => batch.map(i => math.exp(i - math.max(batch)))));
        var probabilities = math.matrix(exp_values._data.map(batch => batch.map(i => i / math.sum(batch))));
        this.output = probabilities;
    }
}

Furthermore, it is advisable to only display the first 5 batches, as this is what the YouTube series does too.

console.log(activation2.output._data.slice(0,5));

The only issue I have is that all calculations assume a predefined matrix shape, which is 3 by whatever.

D4veDev avatar Aug 30 '22 16:08 D4veDev