Loss

Calculer la valeur de la fonction de perte.

double vector::Loss(
  const vector&       vect_true,     // vecteur de valeurs vraies
  ENUM_LOSS_FUNCTION  loss,          // fonction de perte
   ...                               // paramètre supplémentaire
   );
 
 
double matrix::Loss(
  const matrix&       matrix_true,   // matrice de valeurs vraies
  ENUM_LOSS_FUNCTION  loss,          // fonction de perte
   );
 
 
double matrix::Loss(
  const matrix&       matrix_true,   // matrice de valeurs vraies
  ENUM_LOSS_FUNCTION  loss,          // fonction de perte
  ENUM_MATRIX_AXIS    axis,          // axe
   ...                               // paramètre supplémentaire
   );

Paramètres

vect_true/matrix_true

 [in] Vecteur ou matrice de valeurs vraies.

loss

[in]  Fonction de perte de l'énumération ENUM_LOSS_FUNCTION.

axis

[in] Valeur de l'énumération ENUM_MATRIX_AXIS (AXIS_HORZ — axe horizontal, AXIS_VERT — axe vertical).

...

[in]  Le paramètre supplémentaire "delta" ne peut être utilisé que par la fonction de perte de Hubert (LOSS_HUBER)

Valeur de Retour

Valeur de type double.

Comment le paramètre 'delta' est utilisé dans la fonction de perte de Hubert (LOSS_HUBER)

   double delta = 1.0;
   double error = fabs(y - x);
   if(error<delta)
      loss = 0.5 * error^2;
   else
      loss = 0.5 * delta^2 + delta * (error - delta);

Note

Un réseau de neurones vise à trouver les algorithmes qui minimisent l'erreur sur l'échantillon d'apprentissage, pour lequel la fonction de perte est utilisée.

La valeur de la fonction de perte indique de combien la valeur prédite par le modèle s'écarte de la valeur réelle.

Différentes fonctions de perte sont utilisées en fonction du problème. Par exemple, l'erreur quadratique moyenne (MSE) est utilisée pour les problèmes de régression, et l'entropie croisée binaire (BCE) est utilisée à des fins de classification binaire.

Exemple d'appel de la fonction de perte Hubert :

   vector y_true = {0.01.00.00.0};
   vector y_pred = {0.60.40.40.6};
   double loss=y_pred.Loss(y_true,LOSS_HUBER);
   Print(loss);
   double loss2=y_pred.Loss(y_true,LOSS_HUBER,0.5);
   Print(loss2);
 
/* Résultat
   0.155
   0.15125
*/