Depuis notre post précédent, nous avons approfondi les raisons derrière l’utilisation d’une fonction Sigmoïde pour la régression logistique plutôt qu’une fonction linéaire normale. Dans ce post, nous allons continuer à partager sur la fonction de coût.
La fonction de coût est importante car elle nous donne les erreurs de nos prédictions et par la suite, est nécessaire pour notre algorithme d’apprentissage. Concrètement, nous aimons minimiser les erreurs de nos prédictions, c’est-à-dire minimiser la fonction de coût. Idéalement, si toutes nos erreurs sont nulles, cela revient à jouer à un jeu de fléchettes dans lequel toutes nos fléchettes atteindraient le centre de la cible. De l’autre côté de l’argument, si nos erreurs sont très élevées, cela signifie que nos valeurs prédites manquent toutes les vraies valeurs observées, c’est-à-dire que nos fléchettes manquent en général le millefeuille.
Bien que nous aimions avoir des erreurs nulles lorsque nous exécutons notre fonction de coût avec nos valeurs hypothétiques (prédiction parfaite pour chaque valeur), cela pourrait ne pas être un bon scénario étant donné que cela pourrait conduire à un phénomène appelé « variance élevée ». Nous toucherons plus à ce sujet dans des écrits ultérieurs.
Pour revenir à la formulation de la fonction de perte, une fonction de perte typique serait de minimiser la somme des erreurs au carré, c’est-à-dire .
Cette fonction, cependant, peut donner lieu à de multiples optimas locaux pendant le processus d’optimisation, ce qui signifie que votre solution optimisée pourrait ne pas être la plus optimisée (il y a une chance qu’il y ait une meilleure solution). Idéalement, nous voulons que la solution optimisée soit le minimum global, plutôt que le minimum local.
Comme on le voit dans le diagramme ci-dessus, on pourrait initialiser par inadvertance les paramètres et les optimiser au minimum local sans atteindre le « vrai » minimum global. Par conséquent, la fonction de perte susmentionnée ne serait pas idéale à utiliser pour nous.
Que pourrait être notre fonction de perte alors ?
Une fonction de perte couramment utilisée pour la régression logistique est la suivante :
Notez que j’ai utilisé coût et perte de manière interchangeable mais pour ceux qui sont habitués aux conférences d’Andrew Ng, la « fonction de perte » est pour un seul exemple d’entraînement alors que la « fonction de coût » prend la moyenne sur tous les exemples d’entraînement.
Pour voir pourquoi cette fonction de perte a du sens : En supposant que y = 1, et en se concentrant sur l’équation supérieure, -log(h⊖(x)), nous voulons qu’elle soit très négative car il s’agit d’une fonction de perte (Rappelons que nous voulons minimiser la fonction de perte comme objectif). Par conséquent, h⊖(x) sera grande. Cela dit, rappelez-vous que h⊖(x) est limitée à la valeur maximale de 1 en raison de la fonction Sigmoïde qui contraint la valeur hypothétique estimée entre 0 et 1 :
h⊖(x) = ŷ = σ(z)
Hence, lorsque y=1, nous avons la fonction de perte minimisée à l’extrême lorsque ŷ = 1. Une prédiction parfaite qui a peu ou pas de perte/coût encouru.
À l’inverse, si y = 0, et en se concentrant sur la partie inférieure de l’équation, -log(1- h⊖(x)). Nous aimons que cela soit très négatif en raison de notre objectif de minimisation des pertes. Par conséquent, 1- h⊖(x) serait très grand, et le corollaire de cela serait que h⊖(x) serait très petit. Cependant, rappelons que h⊖(x) est limitée à la valeur minimale de 0 en raison de la fonction sigmoïde rendant la valeur hypothétique estimée entre 0 et 1.
Heure, lorsque y=0, nous avons la fonction de perte minimisée à l’extrême lorsque ŷ = 0. Une prédiction parfaite qui n’a que peu ou pas de perte/coût encouru.
Les graphiques correspondants illustreront les points ci-dessus :