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á.
neural-networks
deep-learning
conv-neural-network
overfitting
Konstantin Solomatov
fonte
fonte
Respostas:
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:
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.
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.
fonte
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.
fonte
Pela resposta de Ankur, parece-me que:
enquanto
Tão...
fonte
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.
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.
fonte