MSE como proxy da correlação de Pearson em problemas de regressão

8

TL; DR (muito longo, não leu):

Estou trabalhando em um problema de previsão de séries temporais, que formulo como um problema de regressão usando o Deep Learning (keras). Quero otimizar a correlação de Pearson entre minha previsão e os rótulos verdadeiros. Estou confuso pelo fato de que o uso do MSE como proxy realmente leva a melhores resultados (em termos de correlação) do que o uso direto da Pearson como uma função de perda. É uma prática recomendada usar métricas de correlação como funções de perda para aprendizado profundo? Se sim, por quê?

Versão mais longa:

Tenho uma tarefa de previsão de séries temporais: observo valores para etapas consecutivas no tempo e preciso prever o valor na etapa T + 1 . Como os valores geralmente estão em [ - 200 , 200 ] , estou tratando isso como um problema de regressão, que estou resolvendo usando o Deep Learning (keras).TT+1[200,200]

Minha pergunta é sobre a escolha de perda e métricas.

Meus dados têm rótulos verdadeiros principalmente em torno de com alguns valores extremos. Muitos dos valores extremos são errôneos e não quero mudar meu aprendizado para focar em acertá-los. Em outras palavras, quero ser capaz de captar a tendência geral (classificar corretamente o período de valores positivos versus negativos) e posso "conviver" com a previsão de 100 em vez de 200, por exemplo.[10,10]

Por esse motivo, acho que minha métrica de avaliação deve ser a correlação de Pearson entre os valores previstos e verdadeiros.

Agora, para a função de perda: idealmente, se eu quiser otimizar a alta correlação de Pearson, faria sentido usar isso como a função de perda, certo? Eu testei uma arquitetura simples que é meu "modelo de linha de base" duas vezes: uma vez usando o Pearson (calculado em um mini-lote) diretamente como minha função de perda e uma vez usando o MSE comum como proxy. Nos dois casos, acompanho o MSE e o Pearson em diferentes épocas e faço "paradas antecipadas" com base em um conjunto de validação.

Meus resultados:

  • MSE como uma perda: MSE 160, Pearson 0,7
  • Pearson como perda: MSE 250, Pearson 0,6

Entendo que o MSE mais alto para a perda de Pearson é o resultado do fato de que a otimização para correlação não tem escala, de modo que toda a previsão pode ser "desativada" por um fator que aumenta o MSE. Mas como é que o uso do MSE como proxy realmente se sai melhor em termos da correlação de Pearson? Existe algum motivo relacionado à otimização do motivo pelo qual a correlação de Pearson não deve ser usada como uma função de perda? Na verdade, vejo que, na prática, dificilmente é usado, mas gostaria de entender a razão por trás disso.

galoosh33
fonte

Respostas:

2

Esta é uma boa pergunta e, infelizmente, sem resposta por um longo tempo, parece que houve uma resposta parcial dada apenas alguns meses depois de você fazer essa pergunta aqui, que basicamente argumenta que a correlação é útil quando as saídas são muito barulhentas e talvez MSE de outra forma . Penso que, antes de tudo, devemos olhar para as fórmulas de ambos.

MSE(y,y^)=1ni=1n(yiyi^)2
R(y,y^)=i=1n(yiy¯)(yi^y¯^)i=1n(yiy¯)2i=1n(yi^y¯^)2

y¯^=y¯R2{yi,yi^} você pode ver que existem muitos relacionamentos entre os dois que não serão representados.

R2R2yR2

R2(y,y^)=1i=1n(yiy^)2i=1n(yiy¯)2


RR2RR2Ry^

JoeTheShmoe
fonte