0 votes
par dans Séquence 1
Bonjour,

dans ce slide, vous dites qu'on évalue la distance entre chaque point et la droite. Or ce n'est pas tout à fait ça. Car la distance devrait être le segment qui part du point et ferait un angle droit avec la droite. Là dans le slide c'est plutôt la distance entre le point et le point de la droite situé à la même abscisse. Ma première question est dont la suivante. Est-ce que le résultat serait le même si on considérait vraiment la distance entre chaque point et la droite ? Si oui ok. Si non pourquoi on ne considère pas la vraie distance alors ?

2ème question : pour la fonction d'erreur, pourquoi on prend le carré de la distance au lieu de prendre la valeur absolue ? ce ne serait pas plus rapide à calculer ?

Merci.

1 Réponse

+1 vote
par
sélectionné par
 
Meilleure réponse
Bonjour,

Je vais me permettre de répondre bien que je ne sois pas l'auteur de la présentation.

1) vous/tu as raison il ne s'agit pas de la "distance" entre le point (xi,yi) et la dite droite, mais plutôt de la distance entre yi la valeur observée en xi, et  f_hat(x_i) qui est la valeur de "y" du modèle calculée en xi. Disons que l'on cherche un modèle sous forme d'une fonction f(x)=y qui répond à la question: que vaut "y" pour un "x" donné. Le "x" est une observation (pouvant avoir plusieurs composantes que l'on nomme "features") et elle est certaine. Dans une modélisation dite bayésienne on pourrait plutôt y voir une probabilité d'observer X=x avec donc une vision statistique mais ne compliquons pas (pour le moment).

Donc il nous faut trouver "f" qui dépend de paramètres theta telles que "f_theta(x) = y" et l'on propose de déterminer theta de la façon à minimiser la fonction de coût ou risque (ou loss en anglais) définie par

loss(theta) = 1/N Sum_{i=1,...,N} d(yi, f_theta(xi))

où les (xi,yi ) sont les échantillons de training (nb. on peut oublier le 1/N pour la minimisation)

maintenant le choix de la fonction d(y1,y2) qui mesure la proximité entre "y1" et "y2" doit etre facile à deriver/différentier pour obtenir le gradient de la loss par rapport à theta. La Mean Square Error (MSE) est bien adaptée dans ce cas de régression

 d(yi, f_theta(xi)) =  (yi-f_theta(xi))^2    (si on a un simple scalaire en sortie sinon il faut prendre la norme L2)

Il n'y a aucun problème à dériver une telle fonction.

SI on avait pris la valeur absolue (la norme L1 pour un vecteur)

d(yi, f_theta(xi)) = |yi-f_theta(xi)|

on sait qu'elle a un pb de dérivée (cf |x| n'est pas dérivable en x=0).

Donc, on ne l'utilise pas dans la descente de gradient. Cependant, cela n'exclue pas de l'utiliser dans la phase de test en tant que métrique, car alors on calcule alors

loss(theta_hat) = 1/N_test Sum_{i:1...,N_test} d(yi, f_theta_hat(xi))

  (note que en phase de test on utilise les paramètres theta (notés theta_hat) qui sont les meilleurs sur le lot d'entrainement.

Voilà désolé si j'ai été un peu long.
par Vétéran du GPU 🐋 (48.7k points)
On peut aussi utiliser la norme L1 pour la descente de gradient. Elle n'est pas dérivable en 0 mais c'est le seul point où elle ne l'est pas et cet ensemble a une mesure nulle. Donc la norme L1 est dérivable presque sûrement.

C'est comme avec ReLU. ReLU n'est pas dérivable en 0 mais elle est presque sûrement dérivable (probabilité de tomber sur un point non dérivable est 0) donc on l'utilise quand même comme fonction d'activation.

En pratique, j'admets qu'on préfère quand même une méthode des moindres carrés. Notamment parce qu'elle est associée à un produit scalaire, qu'elle a une solution unique et qu'elle est plus stable (bien que plus sensible aux outliers). Plus d'infos ici: https://www.kaggle.com/code/residentmario/l1-norms-versus-l2-norms/notebook
par
Ne faudrait-il pas séparer l'usage de la norme L1 ou L2 comme regularisation par exemple pour contraindre les poids du réseau, de l'usage de la norme L1 pour la loss calculee avec la sortie du reseau et la vraie valeur. Qd on utilie la norme L1 en regularisation on espere que les poids ne soient pas tous nuls? qu'en pensez-vous?
par Vétéran du GPU 🐋 (48.7k points)
Oui effectivement l'usage est différent, bien que les problématiques de dérivabilité soient les mêmes puisqu'au fond la formule est la même.

En régularisation, la norme L1 cherche à faire en sorte que les poids ne soient pas trop importants, et essaie notamment d'éteindre les poids qui ne servent à rien (intéressant pour retirer les redondances), là où la norme L2 cherche à uniformiser les poids.

Une interprétation probabiliste de la régularisation est qu'avec une régularisation L2, on veut que les poids suivent une loi gaussienne alors qu'en régularisation L1 on veut que les poids suivent une loi de Laplace.

Pour l'optimisation, la fonction de perte L2 est intéressante pour les raisons de mon précédent message, ainsi que pour le fait qu'elle punit fortement les grosses erreurs (puisqu'elles sont élevées au carré dans la formule de la fonction).
par
Merci pour la réponse complète.
par
Merci !
...