Parada antecipada em perda de validação ou precisão?

10

Atualmente, estou treinando uma rede neural e não consigo decidir qual usar para implementar meus critérios de Parada Antecipada: perda de validação ou métricas como precisão / f1score / auc / o que for calculado no conjunto de validação.

Em minha pesquisa, encontrei artigos defendendo ambos os pontos de vista. Keras parece padrão para a perda de validação, mas também encontrei respostas convincentes para a abordagem oposta (por exemplo, aqui ).

Alguém tem instruções sobre quando usar preferencialmente a perda de validação e quando usar uma métrica específica?

qmeeus
fonte

Respostas:

5

TLDR; Monitore a perda e não a precisão

Vou responder minha própria pergunta, pois acho que as respostas recebidas não entenderam o assunto e alguém pode ter o mesmo problema um dia.

Primeiro, deixe-me esclarecer rapidamente que o uso de paradas precoces é perfeitamente normal ao treinar redes neurais (consulte as seções relevantes no livro Deep Learning de Goodfellow et al., A maioria dos artigos sobre DL e a documentação do retorno de chamada de EarlyStopping de keras).

Agora, com relação à quantidade a ser monitorada: prefira a perda à precisão. Por quê? A perda quantifica a certeza do modelo sobre uma previsão (basicamente, tendo um valor próximo a 1 na classe certa e próximo a 0 nas outras classes). A precisão apenas explica o número de previsões corretas. Da mesma forma, qualquer métrica que utilize previsões concretas em vez de probabilidades tem o mesmo problema.

Obviamente, quaisquer que sejam as métricas que você escolher, elas devem ser calculadas em um conjunto de validação e não em um conjunto de treinamento (caso contrário, você estará perdendo completamente o objetivo de usar o EarlyStopping em primeiro lugar)

qmeeus
fonte
Se os valores estiverem entre 0 e 1, a cross_entropyperda é um candidato mais preferível que MSEou MAE. Confira a seção Wrap-Up deste artigo e esta postagem sobre estatísticas .
Esmailian 19/04/19
@Esmailian, não é uma questão de preferência; para problemas de classificação , MSE e MAE simplesmente não são apropriados.
Desertnaut 02/09/19
4

Na minha opinião, isso é subjetivo e específico do problema. Você deve usar o que for o fator mais importante em sua mente como a métrica de condução, pois isso pode tomar suas decisões sobre como alterar o modelo mais focado.

A maioria das métricas calculadas será correlacionada / similar de várias maneiras: por exemplo, se você usar o MSE para sua perda, gravando MAPE (erro médio percentual médio) ou perda simples , elas fornecerão curvas de perda comparáveis.eu1 1

Por exemplo, se você reportar uma pontuação de F1 no seu relatório / para seu chefe etc. (e supondo que é com isso que eles realmente se importam), usar essa métrica pode fazer mais sentido. O escore F1, por exemplo, leva em conta a precisão e o recall , ou seja, descreve a relação entre duas métricas mais refinadas .

Reunindo essas coisas, calcular pontuações diferentes da perda normal pode ser bom para a visão geral e para ver como sua métrica final é otimizada ao longo das iterações de treinamento. Esse relacionamento talvez possa lhe dar uma visão mais profunda do problema,

Geralmente, é melhor tentar várias opções, no entanto, a otimização para a perda de validação pode permitir a execução do treinamento por mais tempo, o que eventualmente também pode produzir uma pontuação F1 superior . Precisão e recall podem influenciar alguns mínimos locais, produzindo uma pontuação F1 quase estática - para que você pare de treinar. Se você estivesse otimizando para a perda pura, pode ter registrado flutuação suficiente na perda para permitir que você treine por mais tempo.

n1k31t4
fonte
Por que o uso da perda de validação permitiria treinamento por mais tempo do que o uso de métricas? Além disso, você pode elaborar a diferença entre as duas opções? Você vê um caso em que seria uma má idéia usar uma métrica em vez da perda?
Qmeeus
@ id-2205 - veja minha resposta editada.
N1k31t4
ponto interessante! Atualmente, estou usando a precisão para paradas precoces, mas tentarei usar a perda de validação. Eu não espero nenhuma mudança no processo de treinamento! Obrigado pela sua resposta
qmeeus
1

Atualmente, estou treinando uma rede neural e não consigo decidir qual usar para implementar meus critérios de Parada Antecipada: perda de validação ou métricas como precisão / f1score / auc / o que for calculado no conjunto de validação.

Se você estiver treinando uma rede profunda, eu recomendo que você não use a parada antecipada. No aprendizado profundo, isso não é muito usual. Em vez disso, você pode empregar outras técnicas, como desistir para generalizar bem. Se você insistir nisso, a escolha do critério depende da sua tarefa. Se você tiver dados desequilibrados, deverá empregar a F1pontuação e avaliá-la nos seus dados de validação cruzada. Se você tiver dados balanceados, tente usar a precisão nos dados de validação cruzada. Outras técnicas dependem muito da sua tarefa.

É altamente recomendável que você encontre um modelo que se encaixe muito bem aos seus dados e que desista depois disso. Essa é a coisa mais comum que as pessoas usam para modelos profundos.

meios de comunicação
fonte
2
Também estou usando a evasão. No entanto, não consigo encontrar uma razão pela qual a parada antecipada não deve ser usada ...
qmeeus
A parada precoce tenta resolver problemas de aprendizagem e de generalização. Por outro lado, desistir apenas tenta superar o problema de generalização.
Mídia
11
Você não responde à minha pergunta ... Não nego o fato de que o abandono é útil e deve ser usado para proteger contra o excesso de ajuste, não posso concordar mais sobre isso. Minha pergunta é: por que você diz que a parada antecipada não deve ser usada com a RNA? (cf sua primeira frase: Se você está treinando uma rede profunda, eu recomendo que você não use parada cedo.)
qmeeus
Você leu meu último comentário? Responde exatamente à sua pergunta. É uma citação famosa do pr. Ng em sua aula de aprendizado profundo, segundo curso. O último caso é uma tarefa mais fácil devido a não se esforçar para resolver várias tarefas simultaneamente.
Mídia
3
E, para encontrá-lo e encontrar o conjunto correto de hiperparâmetros, estou empregando algum tipo de pesquisa de grade direcionada com parada antecipada pelas razões que expliquei acima. O ponto foi retirado e, após selecionar o modelo final e treiná-lo, não usarei a parada antecipada. Obrigado por esta discussão interessante e para lhe conselhos
qmeeus