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.
validation_split
: Flutue entre 0 e 1. A fração dos dados de treinamento a serem usados como dados de validação. O modelo separará essa fração dos dados de treinamento, não treinará nele e avaliará a perda e quaisquer métricas de modelo nesses dados no final de cada época. Os dados de validação são selecionados das últimas amostras nos dados x e
y fornecidos, antes da reprodução aleatória.
validation_data
: tupla (x_val, y_val) ou tupla (x_val, y_val, val_sample_weights) na qual avaliar a perda e quaisquer métricas de modelo no final de cada época. O modelo não será treinado nesses dados. Isso substituirá validation_split.
Como você pode ver
fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None)
fit
O método usado em Keras
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 por val_loss
se você tiver definido verbose como 1
; além disso, como a documentação especifica claramente, você pode usar validation_data
ou validation_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.
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).