Question Quelle est la différence entre un train, une validation et un ensemble de tests, dans les réseaux de neurones?


j'utilise cette bibliothèque mettre en œuvre un agent d'apprentissage.

J'ai généré les cas de formation, mais je ne sais pas avec certitude quels sont les ensembles de validation et de test.
Le professeur dit:

70% devraient être des cas de formation, 10% des cas de test et le reste 20% des cas de validation.

modifier

J'ai ce code pour la formation, mais je ne sais pas quand Arrêtez entraînement.

  def train(self, train, validation, N=0.3, M=0.1):
    # N: learning rate
    # M: momentum factor
    accuracy = list()
    while(True):
        error = 0.0
        for p in train:
            input, target = p
            self.update(input)
            error = error + self.backPropagate(target, N, M)
        print "validation"
        total = 0
        for p in validation:
            input, target = p
            output = self.update(input)
            total += sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between target and output

        accuracy.append(total)
        print min(accuracy)
        print sum(accuracy[-5:])/5
        #if i % 100 == 0:
        print 'error %-14f' % error
        if ? < ?:
            break

modifier

Je peux obtenir une erreur moyenne de 0,2 avec les données de validation, après environ 20 itérations d'entraînement, cela devrait être 80%?

erreur moyenne = somme de la différence absolue entre la cible de validation et le résultat, compte tenu de la saisie des données de validation et de la taille des données de validation.

1
        avg error 0.520395 
        validation
        0.246937882684
2
        avg error 0.272367   
        validation
        0.228832420879
3
        avg error 0.249578    
        validation
        0.216253590304
        ...
22
        avg error 0.227753
        validation
        0.200239244714
23
        avg error 0.227905    
        validation
        0.199875013416

97
2018-06-04 17:37


origine


Réponses:


Les ensembles de formation et de validation sont utilisés pendant l'entraînement.

for each epoch
    for each training data instance
        propagate error through the network
        adjust the weights
        calculate the accuracy over training data
    for each validation data instance
        calculate the accuracy over the validation data
    if the threshold validation accuracy is met
        exit training
    else
        continue training

Une fois la formation terminée, vous exécutez votre test et vérifiez que la précision est suffisante.

Set d'entraînement: cet ensemble de données est utilisé pour ajuster les poids sur le réseau neuronal.

Ensemble de validation: cet ensemble de données est utilisé pour minimiser le sur-ajustement. Vous ne modifiez pas le poids du réseau avec cet ensemble de données, vous vérifiez simplement que toute augmentation de la précision du jeu de données de formation entraîne une augmentation de la précision sur un ensemble de données qui n’a pas encore été présenté au réseau, ou au moins le réseau ne s'est pas entraîné dessus (c.-à-d. un ensemble de données de validation). Si la précision sur l'ensemble de données d'entraînement augmente, mais que la précision sur l'ensemble de données de validation reste la même ou diminue, vous surévaluez votre réseau neuronal et vous devez arrêter l'entraînement.

Set de test: cet ensemble de données est utilisé uniquement pour tester la solution finale afin de confirmer le pouvoir prédictif réel du réseau.


184
2018-06-04 19:13



Kit de formation: Un ensemble d'exemples utilisés pour l'apprentissage, c'est à dire   les paramètres [c'est-à-dire les poids] du classificateur.

Ensemble de validation:   Ensemble d'exemples utilisés pour ajuster les paramètres [c'est-à-dire l'architecture, pas les poids] d'un classificateur, par exemple pour choisir le nombre d'unités cachées dans un réseau neuronal.

Ensemble d'essai:   Un ensemble d'exemples utilisés uniquement pour évaluer la performance [généralisation] d'un classificateur entièrement spécifié.

De ftp://ftp.sas.com/pub/neural/FAQ1.txt section "Quels sont la population, échantillon, ensemble de formation, ensemble de conception, validation"

La surface d'erreur sera différente pour différents ensembles de données de votre ensemble de données (apprentissage par lots). Par conséquent, si vous trouvez un très bon minimum local pour vos données de jeu de tests, ce n'est peut-être pas un très bon point, et peut être un très mauvais point de la surface généré par un autre ensemble de données pour le même problème. Par conséquent, vous devez calculer un tel modèle qui non seulement trouve une bonne configuration de poids pour l’ensemble d’entraînement, mais devrait également pouvoir prédire de nouvelles données (qui ne font pas partie de l’apprentissage) avec de bonnes erreurs. En d'autres termes, le réseau devrait pouvoir généraliser les exemples pour qu'il apprend les données et ne se souvient pas simplement ou charge l'ensemble de formation en surévaluant les données de formation.

L'ensemble de données de validation est un ensemble de données pour la fonction que vous souhaitez apprendre, que vous n'utilisez pas directement pour former le réseau. Vous formez le réseau avec un ensemble de données que vous appelez l'ensemble de données d'apprentissage. Si vous utilisez un algorithme basé sur le gradient pour entraîner le réseau, la surface d'erreur et le dégradé à un moment donné dépendront entièrement du jeu de données d'apprentissage. L'ensemble de données d'apprentissage est donc directement utilisé pour ajuster les poids. Pour vous assurer de ne pas trop utiliser le réseau, vous devez saisir le jeu de données de validation sur le réseau et vérifier si l'erreur se situe dans une certaine plage. Étant donné que le jeu de validation n’est pas utilisé directement pour ajuster le poids du réseau, une bonne erreur de validation et le jeu de tests indiquent que le réseau prédit bien les exemples de trains, et qu’il devrait bien fonctionner lorsqu’il sera neuf. Des exemples sont présentés au réseau qui n’a pas été utilisé dans le processus de formation.

L'arrêt précoce est un moyen d'arrêter la formation. Différentes variantes sont disponibles, le contour principal est que les erreurs du train et du jeu de validation sont surveillées, l'erreur du train diminue à chaque itération (backprop et frères) et l'erreur de validation diminue d'abord. L'entraînement est arrêté au moment où l'erreur de validation commence à augmenter. La configuration du poids à ce stade indique un modèle qui prédit bien les données d’entraînement, ainsi que les données qui n'est pas vu par le réseau . Mais parce que les données de validation réellement affecte indirectement la configuration du poids pour sélectionner la configuration du poids. C'est là que le jeu de test entre en jeu. Cet ensemble de données n'est jamais utilisé dans le processus de formation. Une fois qu'un modèle est sélectionné en fonction de l'ensemble de validation, les données de l'ensemble de tests sont appliquées sur le modèle de réseau et l'erreur pour cet ensemble est détectée. Cette erreur est représentative de l’erreur que nous pouvons attendre de données absolument nouvelles pour le même problème.

MODIFIER: 

En outre, si vous ne disposez pas de suffisamment de données pour un jeu de validation, vous pouvez utiliser validation croisée pour régler les paramètres et estimer l'erreur de test.


50
2018-04-16 19:33



L'ensemble de validation croisée est utilisé pour la sélection du modèle. Par exemple, sélectionnez le modèle polynomial avec le moins d'erreurs pour un ensemble de paramètres donné. L'ensemble de test est ensuite utilisé pour signaler l'erreur de généralisation sur le modèle sélectionné. D'ici: https://www.coursera.org/learn/machine-learning/lecture/QGKbr/model-selection-and-train-validation-test-sets


2
2018-02-25 07:57



En termes simples, définissez Ensemble de formation, Ensemble de test, Ensemble de validation

Kit de formation: Utilisé pour trouver les voisins les plus proches. Ensemble de validation: Permet de trouver différents k qui s'appliquent à un ensemble de trains. Test set: Utilisé pour trouver la précision maximale et les données invisibles à l'avenir.


0
2017-07-05 14:16