Empêcher le surajustement de LSTM sur un petit ensemble de données

13

Je modélise 15000 tweets pour la prédiction des sentiments en utilisant un LSTM monocouche avec 128 unités cachées en utilisant une représentation de type word2vec avec 80 dimensions. J'obtiens une précision de descente (38% avec aléatoire = 20%) après 1 époque. Plus l'entraînement fait baisser la précision de validation à mesure que la précision de la formation commence à grimper - un signe clair de sur-ajustement.

Je pense donc à des moyens de régularisation. Je préfère ne pas réduire le nombre d'unités cachées (128 semble déjà un peu faible). J'utilise actuellement le décrochage avec une probabilité de 50%, mais cela pourrait peut-être être augmenté. L'optimiseur est Adam avec les paramètres par défaut pour Keras ( http://keras.io/optimizers/#adam ).

Quels sont les moyens efficaces de réduire le sur-ajustement pour ce modèle sur mon jeu de données?

pir
la source
J'ai exactement le même problème. Comment avez-vous finalement réussi à régulariser votre LSTM? La précision de validation de mon LSTM est de 41%. Ma forme d'entrée est (200,) et j'ai 1 couche LSTM avec 64 unités, suivie de 2 couches denses avec 0,4 abandon.
Nirvan Anjirbag

Réponses:

7

Tu pourrais essayer:

  • Réduisez le nombre d'unités cachées, je sais que vous avez dit que cela semble déjà faible, mais étant donné que la couche d'entrée n'a que 80 fonctionnalités, il se peut que 128 soit trop. Une règle d'or consiste à faire en sorte que le nombre d'unités cachées soit compris entre le nombre d'unités d'entrée (80) et les classes de sortie (5);
  • Alternativement, vous pouvez augmenter la dimension de l'espace de représentation d'entrée à plus de 80 (mais cela peut également s'adapter si la représentation est déjà trop étroite pour un mot donné).

Un bon moyen de s'adapter à un réseau est aussi de commencer par un réseau surajusté, puis de réduire la capacité (unités cachées et espace d'intégration) jusqu'à ce qu'il ne soit plus surajusté.

Miguel
la source
1
Avez-vous essayé la régularisation l1 et l2? Ça marche vraiment? Cette réponse suggère que vous ne devriez pas faire cela en général
Jakub Bartczuk
Je n'étais pas au courant de cette propriété des RNN, je vais supprimer ce point de la réponse
Miguel
Bonjour, je me demandais comment vous avez obtenu la règle empirique qui stipule "que le nombre d'unités cachées soit compris entre le nombre d'unités d'entrée et les classes de sortie". Y a-t-il un document auquel je peux me référer?
Kong
C'est le truc avec les règles de base, je ne sais pas d'où je viens ...
Miguel