2017-02-05 1 views
1

Je comprends surtout comment fonctionne la validation croisée k-fold et j'ai commencé à l'implémenter dans mes scripts MATLAB, mais j'ai deux questions. Lorsque vous l'utilisez pour sélectionner des fonctions réseau (unités cachées, perte de poids précédente et aucune itération dans mon cas). Devrais-je réintroduire les poids après chaque 'fold', ou devrais-je juste nourrir mon prochain pli d'entraînement dans le réseau déjà formé (il a des poids qui ont été optimisés pour le pli précédent)?Cross-Validation K-fold - initialise le réseau après chaque pli ou non?

Il semble que ce dernier devrait donner des erreurs plus faibles car le pli précédent de données sera une bonne approximation de la suivante, et donc les poids seront plus proches que ceux initialisés aléatoirement à partir d'une distribution gaussienne. De plus, après avoir validé le réseau en utilisant la validation de k-fold et les hyper paramètres réseau choisis, et je veux commencer à utiliser le réseau, ai-je raison de penser que je devrais arrêter la validation par k-fold et une fois, en utilisant toutes les données disponibles?

Un grand merci pour toute aide.

Répondre

2

Oui, vous devez réinitialiser les poids après chaque pli, afin de commencer avec un réseau "vide". Si vous ne faites pas cela, alors chaque pli va "couler" l'un dans l'autre, et ce n'est pas ce que K-Fold CV est censé faire.

Après avoir trouvé les meilleurs hyperparamètres, oui, vous pouvez l'entrainer avec toutes les données disponibles. Rappelez-vous juste de garder quelques données de test de rétention pour les tests finaux.

+0

Merci beaucoup, c'est exactement ce que j'espérais entendre. – Archie