Je forme actuellement un réseau de neurones et je ne peux pas décider lequel utiliser pour implémenter mes critères d'arrêt précoce: perte de validation ou une métrique comme précision / f1score / auc / quoi que ce soit calculé sur l'ensemble de validation.
Dans mes recherches, je suis tombé sur des articles défendant les deux points de vue. Keras semble avoir par défaut la perte de validation mais j'ai également trouvé des réponses convaincantes pour l'approche opposée (par exemple ici ).
Quelqu'un a-t-il des instructions sur l'utilisation de préférence de la perte de validation et sur l'utilisation d'une métrique spécifique?
cross_entropy
perte est un candidat plus préférable queMSE
ouMAE
. Consultez la section Récapitulatif de cet article et ce post sur les statistiques .À mon avis, c'est subjectif et spécifique au problème. Vous devriez utiliser le facteur le plus important dans votre esprit comme mesure de conduite, car cela pourrait rendre vos décisions sur la façon de mieux cibler le modèle.
La plupart des mesures que l'on peut calculer seront corrélées / similaires à bien des égards: par exemple, si vous utilisez MSE pour votre perte, puis enregistrez MAPE (erreur moyenne moyenne en pourcentage) ou simple perte , elles vous donneront des courbes de perte comparables.L1
Par exemple, si vous déclarez un score F1 dans votre rapport / à votre patron, etc. (et en supposant que c'est ce qui compte vraiment pour eux), alors utiliser cette métrique pourrait être plus logique. Le score F1, par exemple, prend en compte la précision et le rappel , c'est-à-dire qu'il décrit la relation entre deux mesures plus fines .
En réunissant ces éléments, le calcul des scores autres que la perte normale peut être utile pour la vue d'ensemble et pour voir comment votre métrique finale est optimisée au cours des itérations de formation. Cette relation pourrait peut-être vous donner un aperçu plus approfondi du problème,
Cependant, il est généralement préférable d'essayer plusieurs options, car l'optimisation de la perte de validation peut permettre à l'entraînement de durer plus longtemps, ce qui peut éventuellement produire un score F1 supérieur . La précision et le rappel peuvent osciller autour de certains minima locaux, produisant un score F1 presque statique - vous arrêteriez donc l'entraînement. Si vous aviez optimisé la perte pure, vous auriez peut-être enregistré suffisamment de fluctuations de perte pour vous permettre de vous entraîner plus longtemps.
la source
Si vous formez un réseau profond, je vous recommande fortement de ne pas utiliser l'arrêt précoce. Dans le deep learning, ce n'est pas très courant. Au lieu de cela, vous pouvez utiliser d'autres techniques comme l'abandon pour bien généraliser. Si vous insistez là-dessus, le choix du critère dépend de votre tâche. Si vous avez des données déséquilibrées, vous devez utiliser le
F1
score et l'évaluer sur vos données de validation croisée. Si vous disposez de données équilibrées, essayez d'utiliser la précision de vos données de validation croisée. D'autres techniques dépendent fortement de votre tâche.Je vous encourage vivement à trouver un modèle qui correspond très bien à vos données et à abandonner après cela. C'est la chose la plus courante que les gens utilisent pour les modèles profonds.
la source