Construire une fonction de perte spécifique au problème

8

Description du problème

Je commence la construction d'un réseau pour un problème qui, selon moi, pourrait avoir une fonction de perte bien plus perspicace qu'une simple régression MSE.

Mon problème concerne la classification multi-catégories ( voir ma question sur SO pour ce que je veux dire par là), où il y a une distance définie ou une relation entre les catégories qui devrait être prise en compte.

Un autre point est que l'erreur ne doit pas être due au nombre de catégories de tir présentes. C'est-à-dire que l'erreur pour 5 catégories de tir chacune de 0,1, devrait être la même que 1 catégorie de tir de 0,1. (en tirant, je veux dire qu'ils sont non nuls ou supérieurs à un certain seuil)


Points clés

  • classification multi-catégories (plusieurs tirs à la fois)
  • relations entre les catégories
  • le nombre de catégories de tir ne devrait pas affecter la perte
    • entrez la description de l'image ici

Ma tentative

L'erreur quadratique moyenne semble être un bon point de départ:

entrez la description de l'image ici

Ceci considère simplement la catégorie par catégorie, qui est toujours valable dans mon problème mais manque une grande partie de l'image.

entrez la description de l'image ici

Voici ma tentative de rectifier l'idée de distance entre les catégories. Ensuite, je voudrais prendre en compte le nombre de catégories de tir ( appelez-le: v )

entrez la description de l'image ici


Ma question

J'ai une très faible formation en statistiques; en conséquence, je n'ai pas beaucoup d'outils dans ma ceinture pour aborder un problème comme celui-ci. Le sujet général de ce que je demande semble être "Lors de la formation d'une fonction de coût, comment procéder pour combiner plusieurs mesures de coût? Ou quelles techniques peut-on appliquer pour le faire?" . J'apprécierais également que tout défaut de mon processus de pensée soit exposé et amélioré.

J'apprécie qu'on m'apprenne pourquoi mes erreurs sont des erreurs, par opposition à ce que quelqu'un les corrige uniquement sans explication.

Si un élément de cette question manque de clarté ou pourrait être amélioré, faites-le moi savoir.

Aidan Gomez
la source
Aidan, il est bon de voir autant de réflexion consacrée à la création d'une fonction de perte spécifique au problème. Je serais enclin à voir cela comme un problème mathématique plutôt que comme un problème de statistiques. Vous recherchez une fonction de perte qui prend les matrices 2x5 aux nombres réels, et vous avez des idées fortes sur certains invariants que cette fonction doit satisfaire, ce qui impose donc des contraintes sur la forme fonctionnelle. Si vous pouviez expliquer la signification de vos matrices, je pourrais probablement offrir des conseils plus spécifiques pour la construction de votre fonction de perte.
David C. Norris,

Réponses:

2

Vous pouvez utiliser la perte de charnière qui est une limite supérieure de la perte de classification; c'est-à-dire qu'il pénalise le modèle si le label de la catégorie ayant le score le plus élevé est différent du label de la classe de vérité terrain.

Pour plus de détails sur la relation entre la perte de classification et la perte de charnière, vous pouvez lire la section 2 de cet article impressionnant de CNJ Yu et T. Joachims.

En résumé, il y a une perte de tâche , généralement désignée parΔ(yi,y^(xi)), qui mesure la pénalité pour prédire la production y^(xi) pour entrée xi lorsque la sortie attendue (vérité du sol) est yi. La perte de tâche pour la classification multiclasse est généralement définie commeΔ(yi,y^(xi))=1{yiy^(xi)}. Cependant, tant queΔ ne dépend que des deux labels y et y^, vous pouvez le définir comme vous le souhaitez. En particulier, on peut voirΔ comme arbitraire K×K matrice où K est le nombre de catégories et Δ(a,b) indique la pénalité de classer une entrée de catégorie a comme appartenant à la catégorie b.

Par exemple: input data:{(x1,y1),(x2,y2),(x3,y3)},xiRd,yiY={c1,c2,c3,c4}network predictions:y^(x1)=c2,y^(x2)=c1,y^(x3)=c3task loss matrix:[Δ(y1,y1)Δ(y1,y2)Δ(y1,y3)Δ(y1,y4)Δ(y2,y1)Δ(y2,y2)Δ(y2,y3)Δ(y2,y4)Δ(y3,y1)Δ(y3,y2)Δ(y3,y3)Δ(y3,y4)Δ(y4,y1)Δ(y4,y2)Δ(y4,y3)Δ(y4,y4)]=[0123101221013210]classification loss assuming y1=c4,y2=c1,y3=c4:Δ(y1,y^(x1))=Δ(c4,c2)=2Δ(y2,y^(x2))=Δ(c1,c1)=0Δ(y3,y^(x3))=Δ(c4,c3)=1

Sobi
la source
1
merci beaucoup pour la réponse. J'ai ajouté un exemple à votre question (peut être encore en examen par les pairs lorsque vous voyez ce commentaire). Pouvez-vous confirmer que mon interprétation est correcte?
Aidan Gomez
Je vois, cela est précieux dans un problème de style de classification, mais le mien est la régression (avec des étiquettes multidimensionnelles), où plusieurs catégories peuvent être "activées" en même temps. Cela semble être similaire à un argmax; pour chaque entrée, il considère uniquement la plus grande catégorie de sortie. Dans mon problème, on pourrait avoir une étiquette comme {1,0,1,1} où les catégories 0, 2, 3 sont toutes présentes dans les données mais pas la catégorie 1. Si mon réseau a deviné {0.8, 0, 0.6, 0.3}, ma perte ne devrait pas être la même qu'une supposition comme {0.8, 0, 0.7, 0.7}.
Aidan Gomez
Je crois toujours que ma réponse répond à votre question! Ce que j'ai expliqué s'appelle SVM structurel où l'espace d'étiquetteY(c'est-à-dire l'espace dans lequel vivent les étiquettes de vérité du sol) peut avoir n'importe quelle structure. Il me semble que ce que vous voulez peut être obtenu comme suit: considérez un problème de classification avecKcatégories; définirY={0,1}K. La seule chose est que la taille de votreΔ la matrice devient alors 2K×2K. Cependant, vous n'aurez peut-être pas besoin de spécifier la matrice. N'hésitez pas à demander plus de détails si cela semble répondre à votre question.
Sobi
Cela ressemble au chemin correct, pourriez-vous fournir un exemple simple comme nous l'avons fait pour le boîtier d'étiquette 1 dimension? Peut-être pour K = 2 ou 3
Aidan Gomez
Disons que pour une entrée x La bonne réponse est y=(0,1,1) mais vos classificateurs prédisent y^(x)=(0.1,0.9,0.8). Dans ce cas, je supposeΔ:{0,1}3×[0,1]3R. Vous pouvez définir la fonction de perte comme, par exemple,Δ(y,y^)=maxk=1K|y[k]y^[k]|; cela examine les prédictions du classificateur pour toutes les classes et renvoie la valeur de perte de la classe qui est la plus éloignée de sa valeur de vérité terrain correspondante.
Sobi