2017-05-24 3 views
0

Lorsque j'entraînais un CNN pour classer des images de chiffres déformés variant de 0 à 9, la précision de l'ensemble d'apprentissage et de l'ensemble de test s'est évidemment améliorée.MxNet: Précision tombe au prédiciton aléatoire après quelques itérations

Epoch[0] Batch [100] Train-multi-accuracy_0=0.296000 
... 
Epoch[0] Batch [500] Train-multi-accuracy_0=0.881900 

En Epoch [1] et Epoch [2] la précision oscille légèrement entre 0,85 et 0,95, cependant,

Epoch[3] Batch [300] Train-multi-accuracy_0=0.926400 
Epoch[3] Batch [400] Train-multi-accuracy_0=0.105300 
Epoch[3] Batch [500] Train-multi-accuracy_0=0.098200 

Depuis lors, la précision est d'environ 0,1 ce qui signifiait le réseau n'a donné au hasard prédiction. J'ai répété l'entraînement plusieurs fois, ce cas s'est produit à chaque fois. Qu'est ce qui ne va pas avec ça? La stratégie de taux d'apprentissage adaptée est-elle la raison?

model = mx.model.FeedForward(..., 
          optimizer = 'adam', 
          num_epoch = 50, 
          wd = 0.00001, 
          ..., 
          ) 
+0

Il est possible que vous ayez commencé à surenchérir ou que vous ayez atteint un point où vous devez réduire le taux d'apprentissage ou si le modèle diverge. Utilisez-vous un programme d'apprentissage ou est-ce avec un taux d'apprentissage fixe? Pouvez-vous surveiller la perte plutôt que la précision? –

Répondre

0

Quel est exactement le modèle que vous entraînez? Si vous utilisez l'ensemble de données mnist, généralement une simple MLP à 2 couches avec sgd vous donne une très grande précision.

+0

Mon jeu de données n'est pas MNIST, c'est une bibliothèque synthétique de caractères déformés. Ce qui me préoccupe, c'est la raison de la chute abrupte. J'ai besoin de quelques suggestions pour analyser ce problème. – Lolith