Qual é a diferença entre val_loss
e loss
durante o treinamento em Keras?
Por exemplo
Epoch 1/20
1000/1000 [==============================] - 1s - loss: 0.1760, val_loss: 0.2032
Em alguns sites, li que na validação o abandono não estava funcionando.
machine-learning
deep-learning
keras
Vladimircape
fonte
fonte
dropout
seja, não éNone
), o abandono é aplicado apenas durante o treinamento (ou seja, nenhum abandono é aplicado durante a validação). Dessa forma, uma das diferenças entre perda de validação (val_loss
) e perda de treinamento (loss
) é que, ao usar o abandono, a perda de validação pode ser menor que a perda de treinamento (geralmente não esperada nos casos em que o abandono não é usado).Respostas:
val_loss
é o valor da função de custo para seus dados de validação cruzada e a perda é o valor da função de custo para seus dados de treinamento. Nos dados de validação, os neurônios que usam o abandono não descartam neurônios aleatórios. O motivo é que, durante o treinamento, usamos o abandono escolar, a fim de adicionar algum ruído para evitar o excesso de ajuste. Durante o cálculo da validação cruzada, estamos na fase de recall e não na fase de treinamento. Usamos todos os recursos da rede.Graças a um de nossos queridos amigos, cito e explico o conteúdo daqui que é útil.
Como você pode ver
fit
O método usado emKeras
possui um parâmetro denominado validation_split, que especifica a porcentagem de dados usados para avaliar o modelo que é criado após cada época. Após avaliar o modelo usando essa quantidade de dados, isso será relatado porval_loss
se você tiver definido verbose como1
; além disso, como a documentação especifica claramente, você pode usarvalidation_data
ouvalidation_split
. Os dados de validação cruzada são usados para investigar se o seu modelo se ajusta demais aos dados ou não. É isso que podemos entender se nosso modelo tem capacidade de generalização ou não.fonte