MCPcopy Create free account
hub / github.com/EdwardRaff/JSAT / SoftmaxLoss

Class SoftmaxLoss

JSAT/src/jsat/lossfunctions/SoftmaxLoss.java:13–47  ·  view source on GitHub ↗

The Softmax loss function is a multi-class generalization of the LogisticLoss Logistic loss. @author Edward Raff

Source from the content-addressed store, hash-verified

11 * @author Edward Raff
12 */
13public class SoftmaxLoss extends LogisticLoss implements LossMC
14{
15
16 private static final long serialVersionUID = 3936898932252996024L;
17
18 @Override
19 public double getLoss(Vec processed, int y)
20 {
21 return -Math.log(processed.get(y));
22 }
23
24 @Override
25 public void process(Vec pred, Vec processed)
26 {
27 if(pred != processed)
28 pred.copyTo(processed);
29 MathTricks.softmax(processed, false);
30 }
31
32 @Override
33 public void deriv(Vec processed, Vec derivs, int y)
34 {
35 for(int i = 0; i < processed.length(); i++)
36 if(i == y)
37 derivs.set(i, processed.get(i)-1);//-(1-p)
38 else
39 derivs.set(i, processed.get(i));//-(0-p)
40 }
41
42 @Override
43 public CategoricalResults getClassification(Vec processed)
44 {
45 return new CategoricalResults(processed.arrayCopy());
46 }
47}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected