É bom usar a função de perda de entropia cruzada com rótulos flexíveis?

10

Eu tenho um problema de classificação em que os pixels serão rotulados com rótulos flexíveis (que denotam probabilidades) em vez de rótulos rígidos 0,1. No início, com 0,1 pixel rígido rotulando a função de perda de entropia cruzada (sigmoidCross entropyLossLayer da Caffe) estava obtendo resultados decentes. Tudo bem usar a camada de perda de entropia cruzada sigmóide (da Caffe) para esse problema de classificação suave?

saikat
fonte
Estou procurando uma função de entropia cruzada que possa lidar com rótulos com valor real. Por favor, deixe-me saber se você souber uma resposta aqui
Amir

Respostas:

27

A resposta é sim, mas você precisa defini-la da maneira certa.

pq

H(p,q)=yp(y)logq(y)

pqx0y0

yI{y=y0}logq(yx0)=logq(y0x0)

I{}

No caso de rótulos 'flexíveis' como você mencionou, os rótulos não são mais identidades de classe em si, mas probabilidades em duas classes possíveis. Por esse motivo, você não pode usar a expressão padrão para a perda de log. Mas, o conceito de entropia cruzada ainda se aplica. De fato, parece ainda mais natural nesse caso.

ys(x)x

p(yx)={s(x)E se y=11-s(x)E se y=0 0

O classificador também fornece uma distribuição por classes, considerando a entrada:

q(yx)={c(x)E se y=11-c(x)E se y=0 0

c(x)x

pq{0 0,1}

H(p,q)=-p(y=0 0x)registroq(y=0 0x)-p(y=1x)registroq(y=1x)=-(1-s(x))registro(1-c(x))-s(x)registroc(x)

Essa é a expressão para um único ponto de dados observado. A função de perda seria a média em todos os pontos de dados. Obviamente, isso também pode ser generalizado para a classificação multiclasse.

user20160
fonte
3
Continuo voltando à lucidez dessa resposta.
auro