Perte logistique multinomiale vs (entropie croisée vs erreur carrée)

9

J'ai observé que Caffe (un cadre d'apprentissage en profondeur) a utilisé la couche de perte Softmax SoftmaxWithLoss comme couche de sortie pour la plupart des échantillons de modèle .

Pour autant que je sache, la couche de perte Softmax est la combinaison de la couche de perte logistique multinomiale et de la couche Softmax .

De Caffe, ils ont dit que

Le calcul du gradient de la couche de perte Softmax est plus stable numériquement

Cependant, cette explication n'est pas la réponse que je veux, l'explication consiste simplement à comparer la combinaison de la couche de perte logistique multinomiale et de la couche de perte Softmax au lieu de couche par couche. Mais pas comparer avec un autre type de fonction de perte.

Cependant, j'aimerais en savoir plus sur les différences / avantages / inconvénients de ces 3 fonctions d'erreur qui sont la perte logistique multinomiale , l' entropie croisée (CE) et l' erreur carrée (SE) dans une perspective d'apprentissage supervisé. Des articles de soutien?

karfai
la source
1
Juste un indice: je suppose que vous obtiendrez une réponse plus rapide si vous ajoutez la balise "caffe" à vos questions. Le publier également sur stackoverflow au lieu de stackexchange pourrait lui donner plus d'attention).
mcExchange
1
La combinaison rend le gradient facile à calculer, tout simplement y-t. willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

Réponses:

11

J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

12Ni=1Nxi1xi222.

Par conséquent, il est généralement utilisé pour minimiser l'utilisation de certaines erreurs de construction.

EDIT: @MartinThoma La formule ci-dessus de perte logistique multinomiale est juste pour le cas binaire, pour le cas général, elle devrait être , où K est le nombre de catégories.J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]

beahacker
la source
2
Dans Caffe, MultinomialLogisticLoss est , alors qui a tort ici? 1Nn=1Nlog(pn,ln)
moi
Pas mal, est des variables binaires, au final, il peut être réduit dans votre formulation. yi
beahacker
Je pensais que la perte logistique multinomail était sans le deuxième sommet, doncJ(θ)=1m[i=1my(i)loghθ(x(i))]
Martin Thoma
1
@MartinThoma Ma formule est juste pour le cas binaire, pour le cas général, elle devrait êtreJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker
@beahacker Pourriez-vous s'il vous plaît me dire pourquoi la deuxième sommation n'est pas incluse dans le cas multinominal comme l'a souligné Martin Thoma. J'essaie de comprendre pourquoi cela se fait comme ça. Pourriez-vous au moins m'indiquer une ressource à examiner.
Nandeesh
2

J'aimerais en savoir plus quelles sont les différences / avantages / inconvénients de ces 3 fonctions d'erreur qui sont la perte logistique multinomiale, l'entropie croisée (CE) et l'erreur carrée (SE) dans une perspective d'apprentissage supervisé?

La perte logistique multinomiale est en fait la même que l'entropie croisée. Regardez cette fonction (la fonction de coût dans softmax ): où m est le numéro d'échantillon, K est le numéro de classe.

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

La fonction d'indicateur ( ) détermine si le ci-dessous est 0 ou 1 dans la définition d'entropie croisée , qui est étiquetée comme un chaud dans les données d'apprentissage, et est la probabilité conditionnelle du softmax (q (x) comme indiqué ci-dessous). 1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

Et MSE est principalement pour la situation où la fonction de lien est la fonction d'unité (la distribution de réponse suit une distribution normale), la régression linéaire standard, tandis que l'entropie croisée est normalement pour où la fonction de lien est la fonction logit. Voici une comparaison impressionnante à laquelle vous pouvez vous référer.

Des articles de soutien?

À l'exception de ceux des liens, recommandez-vous celui-ci illustrant celui-ci: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md

Lerner Zhang
la source