Source code for bob.learn.boosting.ExponentialLoss

from .LossFunction import LossFunction

import numpy

[docs]class ExponentialLoss (LossFunction): """ The class implements the exponential loss function for the boosting framework."""
[docs] def loss(self, targets, scores): """The function computes the exponential loss values using prediction scores and targets. It can be used in classification tasks, e.g., in combination with the StumpTrainer. Keyword parameters: targets (float <#samples, #outputs>): The target values that should be reached. scores (float <#samples, #outputs>): The scores provided by the classifier. Returns (float <#samples, #outputs>): The loss values for the samples, always >= 0 """ return numpy.exp(-(targets * scores))
[docs] def loss_gradient(self, targets, scores): """The function computes the gradient of the exponential loss function using prediction scores and targets. Keyword parameters: targets (float <#samples, #outputs>): The target values that should be reached. scores (float <#samples, #outputs>): The scores provided by the classifier. Returns loss (float <#samples, #outputs>): The gradient of the loss based on the given scores and targets. """ loss = numpy.exp(-(targets * scores)) return -targets * loss