Calcul de mae avec utilisation de sample_weight

bonjour,
j’ai plusieurs questions sur le calcul de la mae en utilisant « sample_weight »
mae = tf.keras.losses.MeanAbsoluteError()

  1. je pensait que sample_weight permettait de pondérer les differents termes qui rentrent dans le calcul de la mae
    dans l’exemple suivant , mon calcul classique de mae est (0.5+0.5+0+1)/4=0.5

pour ce que j’avais compris, en mettant sample_weight à [0.7,0.3,0.1,0.1], je devrais avoir
mae=(0.70.5+0.30.5+0.10+0.11)/(2*(0.7+0.3+0.1+0.1)=0.25
Ce résultat n’est pas celui que j obtient en utilisant le mae et je ne comprends vraiment pas comment ça marche (après de longues recherches).
2) Je ne comprends pas non plus pourquoi quand je mets un sample_weight plus court que y_true (par exemple [0.7,0.3]), ça renvoie quand meme un résultat…
quelque chose m’échappe…


merci d’avance pour votre aide!!

Bonjour Gabriel,
Pour le dernier exemple, comme la taille de sample_weight coincide avec celle de y_pred et y_true la fontion mae va simplement pondérer les loss individuelles par les poids renseignés :

If sample_weight is a tensor of size [batch_size] , then the total loss for each sample of the batch is rescaled by the corresponding element in the sample_weight vector.
Cela correspond donc au calcul suivant :
Capture d'écran_20230130_111722
En revanche, si le paramètre sample_weight n’a pas la taille de y_pred, les coefficients renseignés vont directement s’appliquer aux prédictions de y_pred et non plus à la loss , comme le renseigne la documentation de cette méthode.
En espérant avoir répondu à votre question.

merci beaucoup @6910 pour la réponse. Pour la 2 eme partie de réponse, je ne comprends pas bien ce que cela signifie. Peux tu expliciter avec un exemple STP (par exemple en prenant le sample_weight=[0.7,0.3]). Merci d’avance

@6910 je me rends compte que peut etre je n’ai pas été assez clair dans ma derniere réponse : Quand tu dis :
« si le paramètre sample_weight n’a pas la taille de y_pred , les coefficients renseignés vont directement s’appliquer aux prédictions de y_pred et non plus à la loss »
Si je reprends mon exemple du début, y_pred=[[2.5,0.0,2,8]], comment vont s’appliquer les coeff de ‹ sample_weight › si par exemple sample_weight=[0.7,0.3]?
Merci d’avance pour la réponse