Processing math: 100%
Fonctions de coût et Machine Learning
FFoonnccttiioonnss ddee ccooûûtt eett MMaacchhiinnee LLeeaarrnniinngg

Fonctions de coût et Machine Learning

[dcb name=mathjax]



Franck Jeannot – Janvier 2018 – Q489 – v1.1

Article : [PDF]

Introduction

Les termes de fonction de coût, fonction de perte et de fonction objectif sont très utilisés dans de multiples domaines et sont tous étroitement liés. Dans cet article on se concentre plus sur les usages adaptés au machine learning.

Fonction de coût

On considère un ensemble de test avec M comme le nombre d’occurrences et une fonction de coût J avec θ0,θ1 comme paramètres et une fonction hypothèse de format hθ(x)=θ0+θ1x. On considère aussi dans un contexte de machine learning, x(i) représentant les “variables d’entrée” et y(i) les “sorties” de la fonction. On peut alors considérer : J(θ0,θ1)=12MMi=1(hθ(x(i))y(i))2

On nomme aussi cette approche la “Méthode des moindre carrés”.1 On note X l’espace des valeurs d’entrée et Y l’espace des valeurs de sorties avec X=Y=R.
Pour décrire un problème de Machine Learning supervisé, de manière formelle, on considère que, étant donné un jeu de test, pour “apprendre”, la fonction h:XY de telle manière que h(x) permet une bonne prédiction des valeurs y. Pour des raisons historiques dans le domaine du Machine Learning, on appelle hypothèse la fonction h (même si ce terme n’est pas parfaitement adapté). Dans le cas d’une progression linéraire, la fonction de coût va permettre de déterminer la meilleure approximation linéaire des données disponibles.

La fonction hypothèse s’écrit : hθ(x)=θ0+θ1x avec θi appelés paramètres. Il s’agira de choisir θ0,θ1 de telle manière que hθ(x) est proche de y dans nos jeux de données (x,y).

En synthèse cela revient à Minimiser avec θ0,θ1 et donc de minimiser la différence des carrés entre la sortie de l’hypothèse et la valeur réelle (hθ(x)y)2.

On a donc respectivement : Minimiser θ0,θ112MMi=1(hθ(x(i))y(i))2

hθ(x(i))=θ0+θix(i)

J(θ0,θ1)=12MMi=1(hθ(x(i))y(i))2

Progression linéaire : exemple et simplifications

On considère un jeu de données simplifié (croix noires) : (1,1)(2,2)(3,3) et les représentations graphiques θ1=1 (ligne bleue) et θ1=0.5 (ligne verte) :

Hypothèse 1 : hθ(x)=θ0+θ1x

  • Paramètres : θ0,θ1
  • Fonction de coût : J(θ0,θ1)=12mmi=1(hθ(x(i))y(i))2
  • Objectif : minimiser θ0,θ1 J(θ0,θ1)

Hypothèse 2 : hθ(x)=θ1x

  • Paramètres : θ1
  • Fonction de coût : J(θ1)=12mMi=1(hθ(x(i))y(i))2
  • Objectif : minimiser θ1 J(θ1)

Pour θ1=1, J(θ1)=12m(02+02+02) so J(1)=0
Pour θ1=0.5, et le jeu de données (1,1)(2,2)(3,3), on a :

J(0.5)=12mmi=1(h1(x(i))y(i))2=1233i=1(h1(x(i))y(i))2=16[(h1(x(1))y(1))2+(h1(x(2))y(2))2+(h1(x(3))y(3))2)]=16[(0.51)2+(21)2+(1.53)2)]=16[(0.5)2+(1)2+(1.5)2)]=16[0.25+1+2.25]=3.560.583

Revue des termes

D’un point de vue sémantique les termes fonction de perte et fonction de coût sont plus ou moins synonymes et il n’existe pas de convention parfaite de distinction. La fonction de perte (loss function2) est généralement une fonction définie sur un point de données, une prédiction et une étiquette, et mesure la pénalité.3 Des exemples sont :4

  • square loss l(f(xi|θ),yi)=(f(xi|θ)yi)2, utilisé en régression linéaire,5
  • hinge loss6 l(f(xi|θ),yi)=max(0,1f(xi|θ)yi) utilisé en SVM (Support Vector Machine7)

Une fonction de coût est souvent un terme plus général. Il peut par exemple être composé de sommes de fonctions de pertes et des régularisations. Par exemple :

  • Méthode des moindres carrés (Mean Squared Error) MSE(θ)=1NNi=1(f(xi|θ)yi)2
  • SVM cost function SVM(θ)=θ2+CNi=1ξi (prononcer xi pour ξ)(comporte des contraintes additionnelles : ξ, C, training set…etc )

  1. https://fr.wikipedia.org/wiki/M%C3%A9thode_des_moindres_carr%C3%A9s

  2. https://en.wikipedia.org/wiki/Loss_function

  3. http://www.statsoft.fr/concepts-statistiques/glossaire/f/fonction-perte.html

  4. https://en.wikipedia.org/wiki/Loss_functions_for_classification

  5. https://web.stanford.edu/class/cs221/lectures/learning1.pdf

  6. https://en.wikipedia.org/wiki/Hinge_loss

  7. https://en.wikipedia.org/wiki/Support_vector_machine