Como é possível que a perda de validação esteja aumentando enquanto a precisão da validação também aumenta

28

Estou treinando uma rede neural simples no conjunto de dados CIFAR10. Após algum tempo, a perda de validação começou a aumentar, enquanto a precisão da validação também aumentou. A perda e a precisão do teste continuam a melhorar.

Como isso é possível? Parece que, se a perda de validação aumentar, a precisão deverá diminuir.

PS Existem várias perguntas semelhantes, mas ninguém explicou o que estava acontecendo lá.insira a descrição da imagem aqui

Konstantin Solomatov
fonte
2
Você pode conferir algumas dicas para entender na minha resposta aqui: stats.stackexchange.com/questions/258166/...
ahstat
@ahstat Entendo como é tecnicamente possível, mas não entendo como isso acontece aqui.
Konstantin Solomatov
A 'ilustração 2' é o que eu e você experimentamos, que é uma espécie de super adaptação. Para o meu problema em particular, foi aliviado depois de embaralhar o conjunto.
ahstat 28/05
@ahstat Existem muitas maneiras de combater o overfitting. Por exemplo, eu posso usar a desistência. O que mais me interessa, qual é a explicação para isso. Ou seja, por que está aumentando tão gradualmente e apenas para cima.
Konstantin Solomatov

Respostas:

12

Com base na resposta de Ankur e no comentário abaixo, acho que o cenário a seguir é possível, embora não tenha provas disso. Dois fenômenos podem estar acontecendo ao mesmo tempo:

  1. Alguns exemplos com previsões limítrofes são melhor previstos e, portanto, sua classe de saída muda (por exemplo, uma imagem de gato prevista em 0,4 como um gato e 0,6 como um cavalo torna-se 0,4 como um cavalo e 0,6 como um gato). Graças a isso, a precisão aumenta enquanto a perda diminui.

  2. Alguns exemplos com previsões muito ruins continuam a piorar (por exemplo, uma imagem de gato prevista em 0,8 para ser um cavalo torna-se prevista em 0,9 para ser um cavalo) E / OU (mais provável, principalmente para multi-classe?) Alguns exemplos com muito boa as previsões pioram um pouco (por exemplo, uma imagem de gato prevista em 0,9 para ser um gato torna-se prevista em 0,8 para ser um gato). Com esse fenômeno, a perda aumenta enquanto a precisão permanece a mesma.

Portanto, se o fenômeno 2 aparecer em algum momento, em muitos exemplos (por exemplo, para uma classe específica que não é bem compreendida por algum motivo) e / ou com um aumento de perda mais forte do que a redução de perda que você ganha de 1., então você pode encontre-se no seu cenário.
Mais uma vez, talvez não seja isso o que está acontecendo, mas acho que poder apresentar tais cenários deve nos lembrar da relação às vezes escorregadia entre perda (entropia cruzada) e precisão.

Soltius
fonte
15

A precisão de um conjunto é avaliada apenas através da verificação cruzada da saída mais alta do softmax e da classe correta rotulada. Não depende de quão alta é a saída do softmax. Para tornar mais claro, aqui estão alguns números.

Suponha que existam 3 classes - cão, gato e cavalo. Para o nosso caso, a classe correta é cavalo . Agora, a saída do softmax é [0,9, 0,1]. Para esta perda ~ 0,37. O classificador irá prever que é um cavalo. Tome outro caso em que a saída softmax é [0,6, 0,4]. Perda ~ 0,6. O classificador ainda prevê que é um cavalo. Mas certamente, a perda aumentou. Então, é tudo sobre a distribuição de saída.

ANKUR SATYA
fonte
4
Observação: no seu exemplo, a precisão não muda. Ainda é 100%. Você tem um exemplo em que a perda diminui e a precisão também?
Hugh Perkins
1

Pela resposta de Ankur, parece-me que:

correctclassestotalclasses

enquanto

less

Tão...

Alta Precisão de Validação + Pontuação Alta Perda vs Alta Precisão de Treinamento + Pontuação Baixa Perda sugerem que o modelo pode estar em excesso nos dados de treinamento.

Inácio Ezeani
fonte
0

Muitas respostas se concentram no cálculo matemático, explicando como isso é possível. Mas eles não explicam por que isso acontece. E eles não podem sugerir como cavar mais para ficar mais claro.

Eu tenho 3 hipóteses. E sugira algumas experiências para verificá-las. Espero que ajude a explicar esse problema.

  1. A etiqueta é barulhenta. Compare as previsões falsas entre quando val_loss é mínimo e val_acc é máximo. Verifique se essas amostras estão rotuladas corretamente.
  2. [Menos provável] O modelo não possui aspecto de informação suficiente para ter certeza. Experimente com mais e maiores camadas ocultas.
  3. [Um palpite muito louco] Este é um caso em que o modelo tem menos certeza sobre certas coisas como sendo treinado por mais tempo. Tal situação acontece com humanos também. Quando alguém começa a aprender uma técnica, lhe é dito exatamente o que é bom ou ruim, o que é certo para certas coisas (alta certeza). Quando ele passa por mais casos e exemplos, percebe que algumas vezes uma borda pode ser desfocada (menos certa, maior perda), mesmo que ele possa tomar melhores decisões (mais precisão). E ele pode ter mais certeza quando se tornar um mestre depois de passar por uma enorme lista de amostras e muitas tentativas e erros (mais dados de treinamento). Portanto, neste caso, sugiro que a experiência de adicionar mais ruído aos dados de treinamento (não no rótulo) possa ser útil.

Não discuta sobre isso se você não concordar com essa hipótese. Será mais significativo fazer experimentos para verificá-los, não importa provar ou provar que estão errados.

Diansheng
fonte