Função de custo para regressão ordinal usando redes neurais

8

Qual é a melhor função de custo para treinar uma rede neural para executar a regressão ordinal , ou seja, prever um resultado cujo valor existe em uma escala arbitrária, em que apenas a ordem relativa entre valores diferentes é significativa (por exemplo: prever qual o tamanho do produto que o cliente solicitará : 'pequeno' (codificado como 0), 'médio' (codificado como 1), 'grande' (codificado como 2) ou 'extra-grande' (codificado como 3))? Estou tentando descobrir se existem alternativas melhores do que a perda quadrática (modelando o problema como uma regressão 'baunilha') ou a perda de entropia cruzada (modelando o problema como classificação).

xboard
fonte

Respostas:

6

Outra abordagem foi sugerida neste artigo para estimativa da idade do rosto:

https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Niu_Ordinal_Regression_With_CVPR_2016_paper.pdf

Esses caras usam vários classificadores binários para prever se um ponto de dados é maior que um limite e fazem isso para vários limites. Ou seja, no seu caso, a rede teria três saídas binárias correspondentes a

  • maior que 0
  • maior que 1
  • maior que 2.

Por exemplo, para "grande (2)" a verdade básica seria [1 1 0]. A função de custo final é uma soma ponderada das funções de custo de entropia cruzada individuais para cada classificador binário.

Isso tem a vantagem de ponderar inerentemente erros maiores, porque mais dos termos individuais de entropia de custos serão violados. Simplesmente fazer a classificação categórica dos resultados ordenados não possui inerentemente esse recurso.

Chrigi
fonte