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,
...,
)
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? –