Comment augmenter les données et valider le train?

14

Je fais la classification d'images en utilisant l'apprentissage automatique.

Supposons que j'ai des données d'entraînement (images) et que je vais diviser les données en ensembles d'apprentissage et de validation. Et je veux aussi augmenter les données (produire de nouvelles images à partir des images originales) par des rotations aléatoires et une injection de bruit. L'augmentation se fait hors ligne.

Quelle est la bonne façon d'augmenter les données?

  1. Divisez d'abord les données en ensembles de formation et de validation, puis effectuez une augmentation des données sur les ensembles de formation et de validation.

  2. Divisez d'abord les données en ensembles de formation et de validation, puis effectuez l'augmentation des données uniquement sur l'ensemble de formation.

  3. Effectuez d'abord une augmentation des données sur les données, puis divisez les données en un ensemble de formation et de validation.

yangjie
la source
1
«Augmentation des données» a plusieurs sens; il serait utile de modifier votre question pour clarifier la vôtre, ou simplement pour donner un exemple.
Scortchi - Réintégrer Monica
Si vous prévoyez de faire TTA, l'augmentation doit être appliquée à l'ensemble de validation comme à l'ensemble de test.
abby yorker du

Réponses:

18

Divisez d'abord les données en ensembles de formation et de validation, puis effectuez une augmentation des données sur l'ensemble de formation.

Vous utilisez votre ensemble de validation pour essayer d'estimer le fonctionnement de votre méthode sur des données du monde réel, elle ne doit donc contenir que des données du monde réel. L'ajout de données augmentées n'améliorera pas la précision de la validation. Au mieux, cela dira quelque chose sur la façon dont votre méthode répond à l'augmentation des données et, au pire, ruinera les résultats de la validation et l'interprétabilité.

burk
la source
Je suis assez curieux de savoir quelque chose dans votre réponse. Si mon critère pour arrêter la formation d'un CNN réduit la perte de validation, pensez-vous que l'augmentation des données sur les données de validation est un bon choix?
fou
1
Non, je pense toujours que cela "ruinerait les résultats de la validation et l'interprétabilité", car la précision de la validation n'est plus un bon proxy pour la précision des nouvelles données invisibles si vous augmentez les données de validation.
burk
nous n'avons donc pas du tout besoin d'appliquer l'augmentation des données sur les données de validation et de test?
Aadnan Farooq A
@AadnanFarooqA Non. Vous devez normalement effectuer les mêmes opérations sur vos données de test et de validation que vous avez l'intention de faire sur vos données invisibles lorsque vous utilisez votre modèle pour les prévisions.
burk
1
@AadnanFarooqA Normalement, vous devez simplement appliquer une augmentation sur les données d'entraînement, après la division.
burk
4

ne faites jamais 3, car vous obtiendrez des fuites. par exemple, supposons que l'augmentation est un décalage d'un pixel vers la gauche. si la scission ne prend pas en compte l'augmentation, vous pouvez obtenir des échantillons de données très similaires à la fois dans le train et la validation.

eyaler
la source
0

L'augmentation des données signifie l'ajout de données / informations externes aux données existantes qui sont analysées.

Ainsi, comme toutes les données augmentées seraient utilisées pour l'apprentissage automatique, le processus suivant serait mieux adapté:

Faire une augmentation des données -> Fractionnement des données

Dawny33
la source
Merci pour la réponse. Est-il correct qu'un échantillon et l'échantillon augmenté, qui est assez similaire à celui d'origine, soient répartis dans des ensembles différents?
yangjie
Vous voulez dire les données existantes comme un ensemble de formation et les données augmentées comme un ensemble de validation? Ensuite, NON
Dawny33
Le fractionnement est aléatoire, donc je veux dire que si je fais une augmentation des données puis que je divise les données, il est probable que certaines données existantes (pas toutes) soient divisées dans l'ensemble d'apprentissage, tandis que les données augmentées vont dans l'ensemble de validation.
yangjie
Par augmentation, voulez-vous dire ajouter? Les données augmentées sont les données qui prennent en charge les données actuelles à tous les points. Donc, si le fractionnement est aléatoire, alors le fractionnement entraînerait la même quantité de données augmente dans les deux ensembles, que celle des données existantes
Dawny33
Y a-t-il une référence de papier pour cela?
Aadnan Farooq A