Eu tenho um modelo de rede neural profunda e preciso treiná-lo no meu conjunto de dados, que consiste em cerca de 100.000 exemplos, meus dados de validação contêm cerca de 1000 exemplos. Como leva tempo para treinar cada exemplo (cerca de 0,5s para cada exemplo) e para evitar o excesso de ajustes, eu gostaria de aplicar uma parada antecipada para evitar cálculos desnecessários. Mas não tenho certeza de como treinar corretamente minha rede neural com paradas precoces, várias coisas que ainda não entendo:
Qual seria uma boa frequência de validação? Devo verificar meu modelo nos dados de validação no final de cada época? (O tamanho do meu lote é 1)
É o caso de as primeiras épocas produzirem resultados piores antes de começar a convergir para um valor melhor? Nesse caso, devemos treinar nossa rede por várias épocas antes de verificar se há uma parada precoce?
Como lidar com o caso em que a perda de validação pode subir e descer? Nesse caso, a parada precoce pode impedir que meu modelo aprenda mais, certo?
Agradeço antecipadamente.
fonte
Respostas:
Não há regra de ouro, é bastante comum calcular o erro de validação após cada época. Como a sua validação é muito menor do que o seu conjunto de treinamento, não diminui muito o treinamento.
sim
Você poderia, mas a questão é quantas épocas você deve pular. Portanto, na prática, na maioria das vezes as pessoas não pulam nenhuma época.
As pessoas normalmente definem uma paciência, ou seja, o número de épocas a serem esperadas antes da parada antecipada, se não houver progresso no conjunto de validação. A paciência geralmente é definida entre 10 e 100 (10 ou 20 é mais comum), mas realmente depende do seu conjunto de dados e da sua rede.
Exemplo com paciência = 10:
fonte
patience
antes que o modelo pare antes (o 'melhor' sem melhorias adicionais)?Recentemente, me deparei com um artigo intitulado "Parada antecipada - mas quando?" por Lutz Prechelt que tem muitos ótimos exemplos de como usar as paradas precoces com explicações claras do que cada um faz e fórmulas para eles.
Espero que dê uma olhada nisso possa ajudar.
fonte
Para adicionar outras excelentes respostas, você também pode - não parar. Eu costumo:
É claro que isso só faz sentido quando você não paga por minuto (ou o custo é pequeno o suficiente) e quando você pode interromper o treinamento manualmente. O lado positivo é que é muito mais fácil determinar o menor erro de validação em retrospectiva.
fonte